A browser extension that lets you summarize any webpage and ask questions using AI.
JavaScript 78.7%
CSS 10.9%
HTML 9.7%
Shell 0.7%
30 1 0

Clone this repository

https://tangled.org/ellioth.co/summarizer-extension https://tangled.org/did:plc:6kqpljoz4r7ttyhofw6sg2km/summarizer-extension
git@tangled.org:ellioth.co/summarizer-extension git@tangled.org:did:plc:6kqpljoz4r7ttyhofw6sg2km/summarizer-extension

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

WIP Summarizer + Chat AI extension#

A browser extension for Chrome and Firefox that lets you ask questions and summarize any webpage using AI (using Ollama or any OpenAI-compatible API). Works best with the GPT-OSS-20b model.

In Beta. Not yet in the Chrome Web Store or Firefox Addons.

Features#

  • 📄 One-Click Summaries - Summarize page content efficently
  • 🤖 Follow Up Questions - Ask questions about the current webpage and summary
  • 🔌 OpenAI-Compatible - Works with Ollama, OpenAI, Groq, and LM Studio
  • ⚙️ Configurable - Choose your own model and API endpoint
  • 🔒 Privacy-first - Keep summaries local with Ollama, or use a cloud provider when you choose one.
  • ⌨️ Quick access - Keyboard shortcut of Ctrl/Cmd+Shift+U, use the right click menu, or click the extension icon.

About#

Made to solve a very simple problem I had as a user of the Helium web browser.

Installation (in dev mode)#

Chrome#

  1. Open Chrome and navigate to chrome://extensions/
  2. Enable Developer mode (toggle in top right)
  3. Click Load unpacked
  4. Select the webai-summarizer folder
  5. The extension icon should appear in your toolbar
  6. Optionally set up the keyboard shortcut at chrome://extensions/shortcuts

Firefox#

  1. Open Firefox and navigate to about:debugging#/runtime/this-firefox
  2. Click Load Temporary Add-on
  3. Select the manifest.json file in the webai-summarizer folder
  4. The extension icon should appear in your toolbar

Note: Firefox requires you to manually enable the keyboard shortcut:

  1. Type about:addons in the address bar
  2. Click the gear icon (⚙️) → Manage Extension Shortcuts

TODO#

  • Better branding / icon / logo
  • Publish to Chrome Web Store
  • Publish to Firefox Add-ons

Build for Specific Browser#

If needed, you can build for a specific browser:

# For Chrome
./build.sh chrome

# For Firefox
./build.sh firefox

Usage#

  1. Navigate to any webpage
  2. Click the extension icon in your toolbar, or press Ctrl/Cmd+Shift+U
  3. Click "Summarize Page" for an instant summary, or
  4. Type a question about the page content and press Enter

API Mode Explained#

Ollama Native Mode#

  • Uses Ollama's native /api/generate endpoint
  • Works out of the box if Ollama is installed
  • Recommended for local Ollama installations
  • Base URL should NOT include /v1

OpenAI-Compatible Mode#

  • Uses the /v1/chat/completions endpoint
  • Required for OpenAI, Groq, and other cloud providers
  • Can work with Ollama if you set the OPENAI_API_BASE environment variable
  • Base URL MUST include /v1 for Ollama compatibility mode

Privacy Notes#

  • In Ollama Native mode, your content stays on your machine (local model/server).
  • In OpenAI-compatible mode, page content is sent to the provider endpoint you configure.
  • The extension now extracts page text on-demand when you trigger summarize/chat, rather than running a persistent content script on all pages.

Troubleshooting#

"Cannot connect to localhost:11434"#

  1. Make sure Ollama is running: ollama serve
  2. Check that you pulled the model: ollama list
  3. If using Ollama, make sure your URL doesn't have /v1 in Native mode
  4. Check browser console for detailed error messages

"HTTP 403" or "HTTP 405"#

This means the API endpoint is wrong. Try:

  1. Switch API Mode from settings
  2. For Ollama Native: use http://localhost:11434 (no /v1)
  3. For OpenAI mode: use http://localhost:11434/v1 (with /v1)

File Structure#

webai-summarizer/
├── manifest.json            # Extension configuration (active)
├── manifest-chrome.json    # Chrome-specific manifest
├── manifest-firefox.json    # Firefox-specific manifest
├── build.sh                # Build script for browser switching
├── BROWSER_SUPPORT.md      # Browser compatibility documentation
├── popup/
│   ├── popup.html         # Chat interface
│   ├── popup.css          # Styling
│   ├── popup.js           # Popup logic
│   └── marked.min.js      # Markdown parser
├── scripts/
│   ├── content.js         # Webpage text extraction
│   └── background.js      # API communication
├── options/
│   ├── options.html       # Settings page
│   ├── options.css
│   └── options.js
└── icons/
    ├── icon16.png
    ├── icon32.png
    ├── icon48.png
    └── icon128.png