Paste Shield: hide names and keys from AI
Removes names, addresses, account numbers, keys and passwords before you paste text into ChatGPT. Your browser does the work.
- Type
- Our own project
- Who it is for
- Companies whose staff paste text into AI chats
- Built
- 2026
- Similar project
- Application or system: from 15,000 PLN. Studio pricing and contact
At a glance
The name, the address and the account number leave the text before you paste it into an AI chat. Your browser does the work.
An email, a log or a config file holds names, account numbers and keys
You paste an email, a log or a config into an AI chat and easily leave names, addresses, account numbers and keys in it.
Three detection layers, all on your computer
Context reader
Names and addresses: data with no fixed shape.
Checksum rules
Keys, IBANs, cards, national and tax IDs, emails: they run instantly.
Your "Always hide" list
Your own sensitive words, saved in this browser only.
Hidden data becomes labels such as PERSON_1, and "Put back" mode turns them into your data again in the chat's answer.
A check on invented texts
- Rules and model94 of 96
- Rules alone61 of 96
The model card does not list Polish: check names in inflected Polish forms. The app warns about this beside every result.
Zero requests carrying your text
- 0
- network requests carrying your text
- ~140 MB
- downloaded once and kept in your browser (measured download size)
- No model, no copy
- if the model fails to load, the Copy button stays locked, because without the model names and addresses stay visible
"Zero requests" counts requests carrying your text. The only connection is the model download from huggingface.co. Checked in Chromium.
For engineers: the technology stack
| Layer | Choice | What it does |
|---|---|---|
| Model | distilbert-base-multilingual-cased-ner-hrl, q8 | Recognizes names and addresses on the processor. |
| Runtime | @huggingface/transformers, ONNX Runtime | The model runs in the background, so typing never stutters. |
| Offline | Service worker + CacheStorage | After the first download it works with no internet. |
Hits from all three layers merge into one list. A miss is a leak, so the program hides too much rather than too little. Where a rule and the program describe the same span, the rule wins: a NIP proven by its checksum stays COMPANY, not ACCOUNT.
Methods, limits and the full description
The problem with pasting
You paste an email, a log or a config into an AI chat. It easily carries names, addresses, account numbers, keys and passwords. Tools that clean text on a server only move the leak. Our filter removes the data before it leaves the browser tab, with no install and no account.
Three detection layers
Context reader: names, addresses and places, that is, data with no fixed shape. The program understands sentence context and runs on the processor, with no graphics card. Checksum rules: data with a fixed shape: keys, tokens, IBANs, cards, national and tax IDs, emails, phones, dates, passwords. They run instantly, before the context reader loads, because a leaked key is catastrophic. Your "Always hide" list: words only you know are sensitive: client names, project codenames. The list is saved in this browser only.
Labels and Put back mode
Hidden values become labels such as PERSON_1 or SECRET_1. After you click a label you can see whether a rule or the model found it (with its score), and show the value or put it back in the copy. "Put back" mode turns the labels in the chat's answer back into your data.
Accuracy check: method and limits
The bar above the panels shows the accuracy check result from the first screen, and a click opens its method and date. The check also runs in your browser: 27 invented texts with 96 marked items. In our measurement it hid 94 of 96, and the rules alone, without the model, 61 of 96. It is a regression check: it shows whether changes to the program made the result on these texts worse. The model card lists ten languages and Polish is not one of them. Check names in inflected Polish forms: the app warns about this beside every result.
Zero requests: method
Your text never leaves your browser. "Zero requests" is about your text, not about the whole page. The one thing that does leave the machine is the model download. Click the bar above the panels and the app lists it as its own row, "huggingface.co, the model", with the MB count. The file model_quantized.onnx is 135,359,829 bytes, plus a 2.9 MB tokenizer. The model and its runtime download once and stay in your browser. Measured: 142 MB, of which the model file is 135,359,829 B. That is about a minute on a 20 Mbit line. The minute is arithmetic, not a timing: 142 MB at 20 Mbit/s takes 57 s. The app ships no analytics and no telemetry of any kind. If the model fails to load, the Copy button stays locked, and "Copy anyway…" needs a confirmation in a dialog that warns names and addresses stay visible.
What we checked
The download comes from huggingface.co, and the app counts the requests this page makes live and lists them by host. We measured it in Chromium.
The screenshot
After clicking "Example": your text on the left, the copy with items hidden in the middle, the list of hidden items on the right. The bar above the panels shows the request counter, the model state and the check result.
