This runs entirely inside your own browser, on your own device. There is no server, no account, no API key, and nothing you type or attach is ever sent to any server of ours — the model answering you (Gemini Nano) is built into Chrome itself and runs locally.
One disclosed exception: if you paste a link to a GitHub repo, a Wikipedia article, or a Hacker News item, chrome-chat fetches that page's public data directly from GitHub's/Wikipedia's/Hacker News's own API (never through any server of ours) so the model can see it. Only the URL you pasted is sent, only to that one service, and only when the link is recognized.
What's stored, and where: conversations live in this browser's own localStorage; any attached images or audio live in this browser's own IndexedDB. Both stay on this device — clearing your browser data removes them for good, and nothing here is backed up anywhere else.
Offline Wikipedia (optional): connect a Kiwix .zim file (from library.kiwix.org) and /wiki:offline <question> answers from it. It's read in place on this device by Kiwix's own reader running inside this page -- never uploaded, never copied -- so the whole question-and-answer round trip needs no network at all.
Not connected.
Sums, dates and letters: for things a small model gets wrong in its head — arithmetic, percentages, dates, clock times, counting letters — it writes a few lines of Python instead, which run in this page, in a sandbox with no network access. Plain code checks the working before you see it: the code has to compute from your question's own values (a typed-in answer is sent back), the answer has to have the right type (a date, a whole number…), and the model's sentence must contain the computed result unchanged. Every such answer has Show the working. The Python runtime (Pyodide, about 12 MB) downloads once from cdn.jsdelivr.net the first time it's needed — no question or data is sent with it. Not checked: whether the code understood the question (a logic slip can still give a wrong answer — that's why the code is shown); anything that needs live data; and follow-ups that refer back to an earlier message ("and at 20%?"), which go to the normal chat. Dates written like 3/4/2027 are read as day/month and the answer says so. On unseen questions it took the model from 61% to 87% right — how it was measured.
Weather and currency: questions like "weather in Edinburgh tomorrow" or "£50 in euros" are answered from live data, not the model: weather from Open-Meteo, exchange rates from the European Central Bank via Frankfurter (daily reference rates — not what a bank or card will charge). The answer is written by plain code from the numbers, with its source. Only the place name, or the two currency codes, is sent to those services. With no place or currency in the question, it uses your saved ones below, or guesses from your browser (time zone for the place, language region for the currency) and says so.
Facts, checked: a factual question ("capital of…", "when was… born", "who is the current…", "what was the Tay Bridge disaster?") is looked up rather than answered from the model's memory — single facts from Wikidata, checked against the Wikipedia article and written by plain code; anything else answered only from the article, with the supporting sentence quoted and checked to be really there. If it can't confirm an answer it says so rather than guessing. The thing you're asking about (not the rest of the conversation) is sent to Wikipedia/Wikidata. Creative, advice and how-to requests aren't looked up.
Requirements: branded Google Chrome (desktop), a recent enough version to support the on-device Prompt API. It won't work in other browsers, or in plain Chromium.
Fully open source (GPL-3.0) — every line of what's running is in the public repository linked in the sidebar, nothing hidden. Offline Wikipedia uses Kiwix's libzim (GPL-3.0); Wikipedia text is CC BY-SA 4.0.