Select a term on any web page and get it explained — in your language, grounded in the page you're reading, using your own API key.
Linglens is a Chrome (Manifest V3) extension for reading technical documentation in a language that isn't your first. You know the words; what you don't know is what a term means here — "runner" in a CI doc, "sink" in a streaming doc, "hydration" in a frontend doc. Highlight it, click the icon, and Linglens explains it in the context of that page, written in the language you read best.
Open source · no servers · no telemetry. Bring your own key: it's stored locally and never leaves your browser except in the request you trigger to the provider you choose. Nothing goes to us — there is no "us" backend. (One caveat you own, not us: a provider's free tier may train on your prompts — Google Gemini's does, its paid tier doesn't. Use a paid key or a local model if that matters. See PRIVACY.md.)
Full-page translators translate words but don't explain a term's meaning in context, and they mangle code. Most AI explainers are English-only and run on someone else's key, someone else's cost, and someone else's server. Linglens is different on three axes:
- Your language. Explanations come back in the language you configure (English, 中文, 日本語, and more) — not just English.
- Your key, your control. BYOK: OpenAI, Anthropic, Google Gemini, DeepSeek, or any OpenAI-compatible endpoint — including a local model that never leaves your machine. Real provider-reported token counts are shown per explanation, so you always know exactly what each answer used.
- A conversation, not a one-shot. Ask a follow-up right in the popup — "give an example", "how is this different from X?" — and keep the thread.
- Click-to-explain: a selection shows a small icon; only clicking it calls the LLM, so an accidental highlight never costs a token.
- Streaming answers rendered in a floating dark-glass popup that reads on any page (light or dark).
- Concise ↔ detailed length toggle; per-explanation token readout.
- Follow-up thread with running token-usage totals.
- Local, searchable history of the terms you've explained (no API call to re-read), with a configurable cap.
- Configure provider, model, key, language, and length from a toolbar popup.
Install from the Chrome Web Store.
git clone https://github.com/ZGhey/linglens
cd linglens
npm install
npm run build # outputs to dist/Then in Chrome: open chrome://extensions, enable Developer mode, click
Load unpacked, and select the dist/ folder. Pin the toolbar icon.
- Click the pinned Linglens icon to open settings.
- Pick a provider and paste your API key (or point the Custom (OpenAI-compatible) provider at a local model — no key needed for most local servers, enter any placeholder).
- Choose your explanation language.
- On any page, select a term → click the icon that appears.
Your key is stored locally and sent only to the provider you chose. See PRIVACY.md.
npm run dev # Vite dev server with HMR
npm run typecheck # tsc --noEmit
npm test # unit tests (Vitest)
npx vitest run tests/providers/stream.test.ts # a single test file
npm run test:e2e # builds, then Playwright drives the loaded extensionArchitecture notes for contributors live in CLAUDE.md.
Issues and pull requests welcome. Dev setup is above; the architecture overview lives in CLAUDE.md. CI (typecheck + unit + e2e) runs on every PR.
MIT.

