···11-- Open source on Tangled -- https://tangled.org/ellioth.co/summarizer-extension
-128
info on the extension/project-readme.md
···11-# Lede — page summarizer & chat (WIP)
22-33-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.
44-55-In **Beta**. Not yet in the Chrome Web Store or Firefox Addons.
66-77-## Features
88-99-- 📄 **One-Click Summaries** - Summarize page content efficiently
1010-- 🤖 **Follow Up Questions** - Ask questions about the current webpage and summary
1111-- 🔌 **OpenAI-Compatible** - Works with Ollama, OpenAI, Groq, and LM Studio
1212-- ⚙️ **Configurable** - Choose your own model and API endpoint
1313-- 🔒 **Privacy-first** - Keep summaries local with Ollama, or use a cloud provider when you choose one.
1414-- ⌨️ **Quick access** - Keyboard shortcut of `Ctrl/Cmd+Shift+U`, use the right click menu, or click the extension icon.
1515-1616-## About
1717-Made to solve a very simple problem I had as a user of the Helium web browser.
1818-1919-## Installation (in dev mode)
2020-2121-### Chrome
2222-2323-1. Open Chrome and navigate to `chrome://extensions/`
2424-2. Enable **Developer mode** (toggle in top right)
2525-3. Click **Load unpacked**
2626-4. Select the `webai-summarizer` folder
2727-5. The extension icon should appear in your toolbar
2828-6. Optionally set up the keyboard shortcut at `chrome://extensions/shortcuts`
2929-3030-### Firefox
3131-3232-1. Open Firefox and navigate to `about:debugging#/runtime/this-firefox`
3333-2. Click **Load Temporary Add-on**
3434-3. Select the `manifest.json` file in the `webai-summarizer` folder
3535-4. The extension icon should appear in your toolbar
3636-3737-**Note:** Firefox requires you to manually enable the keyboard shortcut:
3838-1. Type `about:addons` in the address bar
3939-2. Click the gear icon (⚙️) → **Manage Extension Shortcuts**
4040-4141-## TODO
4242-4343-- [x] Better branding / icon / logo
4444-- [ ] Similar to "branding" -- Rename extension to something more unique and not placeholder-y
4545-- [ ] Publish to Chrome Web Store
4646-- [ ] Publish to Firefox Add-ons
4747-4848-### Build for Specific Browser
4949-5050-If needed, you can build for a specific browser:
5151-5252-```bash
5353-# For Chrome
5454-./build.sh chrome
5555-5656-# For Firefox
5757-./build.sh firefox
5858-```
5959-6060-## Usage
6161-6262-1. **Navigate to any webpage**
6363-2. **Click the extension icon** in your toolbar, **or press `Ctrl/Cmd+Shift+U`**
6464-3. **Click "Summarize Page"** for an instant summary, **or**
6565-4. **Type a question** about the page content and press Enter
6666-6767-6868-## API Mode Explained
6969-7070-### Ollama Native Mode
7171-- Uses Ollama's native `/api/generate` endpoint
7272-- Works out of the box if Ollama is installed
7373-- Recommended for local Ollama installations
7474-- Base URL should NOT include `/v1`
7575-7676-### OpenAI-Compatible Mode
7777-- Uses the `/v1/chat/completions` endpoint
7878-- Required for OpenAI, Groq, and other cloud providers
7979-- Can work with Ollama if you set the `OPENAI_API_BASE` environment variable
8080-- Base URL MUST include `/v1` for Ollama compatibility mode
8181-8282-## Privacy Notes
8383-8484-- In **Ollama Native** mode, your content stays on your machine (local model/server).
8585-- In **OpenAI-compatible** mode, page content is sent to the provider endpoint you configure.
8686-- The extension now extracts page text on-demand when you trigger summarize/chat, rather than running a persistent content script on all pages.
8787-8888-## Troubleshooting
8989-9090-### "Cannot connect to localhost:11434"
9191-1. Make sure Ollama is running: `ollama serve`
9292-2. Check that you pulled the model: `ollama list`
9393-3. If using Ollama, make sure your URL doesn't have `/v1` in Native mode
9494-4. Check browser console for detailed error messages
9595-9696-### "HTTP 403" or "HTTP 405"
9797-This means the API endpoint is wrong. Try:
9898-1. Switch API Mode from settings
9999-2. For Ollama Native: use `http://localhost:11434` (no /v1)
100100-3. For OpenAI mode: use `http://localhost:11434/v1` (with /v1)
101101-102102-## File Structure
103103-104104-```
105105-webai-summarizer/
106106-├── manifest.json # Extension configuration (active)
107107-├── manifest-chrome.json # Chrome-specific manifest
108108-├── manifest-firefox.json # Firefox-specific manifest
109109-├── build.sh # Build script for browser switching
110110-├── BROWSER_SUPPORT.md # Browser compatibility documentation
111111-├── popup/
112112-│ ├── popup.html # Chat interface
113113-│ ├── popup.css # Styling
114114-│ ├── popup.js # Popup logic
115115-│ └── marked.min.js # Markdown parser
116116-├── scripts/
117117-│ ├── content.js # Webpage text extraction
118118-│ └── background.js # API communication
119119-├── options/
120120-│ ├── options.html # Settings page
121121-│ ├── options.css
122122-│ └── options.js
123123-└── icons/
124124- ├── icon16.png
125125- ├── icon32.png
126126- ├── icon48.png
127127- └── icon128.png
128128-```