A privacy-focused browser extension that translates web pages using local LLMs (Ollama or LMStudio). Your data never leaves your machine.
- 🔒 100% Private - All translations happen on your local machine via Ollama or LMStudio
- 🎯 Smart Prioritization - Visible content and headings are translated first
- 🌍 Many Languages - Supports many many languages :3
You need one of these running locally:
With a translation-capable model loaded (e.g. TranslateGemma, tencent.hunyuan-mt, qwen3, etc.)
- Go to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select the
manifest.jsonfile
- Go to
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select the extension folder
Coming Soon: Extension in Chrome Web Store and Firefox Add-ons
- Click the extension icon
- Select a model from the dropdown
- Choose your target language
- Click Translate Page
The extension will:
- Extract all visible text from the page
- Prioritize headings and visible content
- Translate in batches with progress percentage
- Auto-translate new content (infinite scroll)
This extension is designed to be privacy-focused:
- ✅ Only connects to
localhost- no external network requests - ✅ No analytics or tracking
- ✅ No data collection
- ✅ Minimal permissions (only
localhosthost permissions)
Click Advanced Settings to configure:
| Setting | Description |
|---|---|
| Provider | Auto-detect, Ollama only, or LMStudio only |
| URLs | Custom endpoints for Ollama/LMStudio |
| Max tokens/items per batch | Control batch sizes |
| Temperature | Model creativity (lower = more consistent) |
| Request Format (work in progress) | Default JSON, Hunyuan-MT, Simple, or Custom |
| Show Glow | Toggle visual indicator on translated text |
├── manifest.json # Extension manifest (MV3)
├── background.js # Background script (LLM API, settings)
├── content.js # Content script (DOM manipulation)
├── popup/
│ ├── popup.html # Popup UI
│ ├── popup.css # Styles (Everforest Dark theme)
│ └── popup.js # Popup logic
└── icons/ # Extension icons
The codebase is intentionally simple with no build step or dependencies:
- Pure vanilla JavaScript
- No external libraries
- No bundler required
- Works directly in the browser
MIT
