Browser extension
Use the big chat assistants without handing them Swiss, EU or international identifiers. The extension redacts them before the request leaves your browser and restores them in the reply, so the conversation still reads normally — 100% local, no API key, no server.
Works across
One guard, three sites. It hooks the request each app makes to its model — Gemini over XHR, ChatGPT and Claude over fetch — and rewrites the outgoing prompt.
Checksum-only
It matches an identifier only when the regex shape and its check digit agree, so ordinary text is never touched. The exact same detector runs here on this page.
You stay in control
Per-category toggles decide what to block. An activity log records type, time and site only — never the value. The value↔placeholder map never leaves page memory.

Prefer to build it yourself? The source is in extension/ — load it unpacked (Developer mode → Load unpacked → extension/dist).
See what stays local — before you send
A live count sits above the chat box and names what the guard will keep local before you hit send — so the redaction is something you watch, not something you take on trust. It reads the composer in page memory only and never touches the network.

See it on the wire
A real Gemini session with the guard on. The prompt includes a Swiss AHV number, and the request Gemini actually sent to Google — StreamGenerate, open in DevTools on the right — carries [AHV_1], never the digits. The real number, restored only in your browser, is what you read in the drafted reply on the left. Search the whole network log for the real number and you get zero hits.
![A Gemini chat drafting an email that contains a Swiss AHV number, beside Chrome DevTools showing the outgoing StreamGenerate request carries the placeholder [AHV_1] instead of the real number](/gemini-redaction-proof.png)
[AHV_1], eight times, in the request the extension rewrote (Initiator: interceptor.js).Try the detectors
All twenty identifier types the extension can redact — Swiss AHV, IBAN, card, and the Italian, Spanish, French, Dutch, German, Polish, Portuguese, Belgian, UK, Brazilian, South African, Chinese, Canadian and Indian identifiers — checked live, in your browser.
Click a type to load a synthetic, checksum-valid sample, or type your own. Everything runs in your browser — nothing is sent anywhere.
Detected 3
- AHV / AVS no.
756.XXXX.XXXX.97✓ checksum - NHS number (UK)
nhs:…19✓ checksum - CPF (BR)
cpf:…35✓ checksum
What the model receives
Client [AHV_1], NHS [NHS_1], CPF [CPF_1] — please summarise the case.
Each identifier is swapped for a stable placeholder before it leaves the page, then restored in the reply. Clean text passes through untouched.