cd /news/artificial-intelligence/explain-this-select-text-get-an-expl… · home topics artificial-intelligence article
[ARTICLE · art-79894] src=github.com ↗ pub= topic=artificial-intelligence verified=true sentiment=· neutral

Explain This – select text, get an explanation from a local LLM

A new Chrome extension called Explain This lets users select text on a page, right-click, and get a plain-language explanation from a local LLM running entirely in the browser via WebGPU, with no server or API key required. Developer Vishwamitra built the extension using WebLLM and Llama 3.2 1B (quantized, ~880MB) to test browser-based AI, and it works on Chrome 113+ with WebGPU support. The extension uses a chrome.offscreen document to work around Manifest V3 service worker limitations, streaming tokens through three separate contexts.

read2 min views1 publishedJul 30, 2026
Explain This – select text, get an explanation from a local LLM
Image: source

Select any text on a page, right-click, hit "Explain This," get a plain-language explanation. Runs entirely in your browser tab using a local LLM over WebGPU. No server, no API key, nothing ever leaves your machine.

I was messing around with Ollama and vLLM locally for privacy-sensitive stuff (translating docs, RAG over my own notes) and got curious about WebLLM, which runs models straight in the browser via WebGPU instead of needing a separate server process. It used to be pretty slow and limited. Turns out it's gotten a lot better lately, so I built this to actually test it on something real instead of just reading benchmarks.

Chrome or Edge, recent desktop version (needs WebGPU, which is Chrome 113+ roughly). Won't work on browsers without WebGPU support, and the extension will tell you that instead of just failing silently.

The first time you use it, it downloads the model (Llama 3.2 1B, quantized, about 880MB) and caches it in the browser. That happens once. Every explanation after that is instant and fully offline. You'll see a progress bar the first time so it's obvious what's happening.

git clone https://github.com/Vishwamitra/explain-this.git
cd explain-this
npm install
npm run build

Then in Chrome: go to chrome://extensions

, turn on Developer mode, click "Load unpacked," and point it at the dist

folder.

The tricky part of this project isn't the AI, it's Chrome's extension architecture. Manifest V3 background scripts are service workers, and service workers don't have access to WebGPU. So the model can't just live in the background script.

The fix is a chrome.offscreen

document: a hidden page Chrome lets extensions spin up that has full DOM/WebGPU access, unlike a service worker. That's where the actual model lives and runs.

So the flow is:

  • You right-click selected text, the background script gets the selection and the tab id from Chrome directly
  • Background creates the offscreen document if it's not already running, and forwards the text to it
  • The offscreen document runs the model and streams tokens back
  • Background relays those streamed tokens to the content script in your tab, since the offscreen document has no way to talk to a tab directly
  • The content script renders them into a small popup near your selection

Three separate contexts talking to each other through chrome.runtime

messages, because that's genuinely the only way to do this under MV3 right now.

The model is a single constant in src/shared/config.ts

. WebLLM supports a lot of models at different sizes, the one here is picked for a small first download, not necessarily the best quality. Swap it if you want something bigger/better and don't mind a longer first download.

MIT, see LICENSE.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @vishwamitra 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/explain-this-select-…] indexed:0 read:2min 2026-07-30 ·