Data Sanitizer
Expected result: Eight values are replaced: the email address (both times as [EMAIL_1]), the phone number, the card, the IBAN, the IP address, the bearer token and the password. The name Alice Smith stays unless AI detection is on.
Limitations: Patterns only recognise values with a known structure. Names, addresses and ID numbers need the optional AI pass, which is most accurate on Latin-script text. Always read the output before sharing it.
Automatic detection misses things. Read the output before you share it.
Nothing you enter here is stored, logged or shared.
Paste a log, a support ticket or a prompt and every email address, phone number, card number, IP address and API key in it is replaced before you share it. Optional on-device AI also catches names and street addresses.
How to use
- Paste the text you want to share.
- Choose how values are replaced and which kinds to look for.
- Turn on AI detection if the text contains names or addresses.
- Read the highlighted output, then copy it.
Two layers: patterns and a model
Most sensitive values have a shape, and a shape can be checked. Card numbers are validated with the Luhn checksum, IBANs with the ISO 13616 mod-97 check, IPv4 addresses octet by octet and IPv6 addresses with the same parser as the subnet calculator. API keys are recognised by the prefixes their issuers publish - GitHub, AWS, Stripe, Slack, Google, npm and the sk- style keys used by AI providers - along with private key blocks, Authorization headers and assignments such as DB_PASSWORD=. This layer runs on every keystroke and costs nothing to download.
Names, street addresses and document numbers have no shape at all. Nothing distinguishes the word Rose in a garden from Rose the customer except the sentence around it, which is why the second layer is a model rather than a pattern. It is Rampart, a small token classifier published by National Design Studio under CC BY 4.0: six transformer layers, about 15 MB, trained to label given names, surnames, street lines, and tax, passport and licence numbers. It runs in a background worker on your device and only once you turn it on.
When the two layers disagree about the same characters, the pattern wins. A number that passes a checksum is stronger evidence than a model's guess, and a value is always replaced whole - half of an email address left behind is worse than either answer.
What it will miss
No automatic redaction is complete, and this one is no exception. The model's own published evaluation measures about 98% recall on its Latin-script test set, which means roughly one private value in sixty slips through even on text that resembles its training data. On names written in other scripts it is far weaker: the model card reports about 46% for Japanese names, 15% for Korean and 9% for Chinese. The pattern layer works in any language, but names are not patterns.
Some identifying information is not a value at all. A job title, a small town and a date together can point at one person without containing anything a redaction tool could remove. Internal identifiers are the other blind spot: customer numbers, case references, hostnames and project code names are unique to your organisation, so nothing outside it can recognise them. Replace those by hand before or after using this tool.
Hence the highlighting. Every replacement is marked in the output, and anything the model found has a dashed outline because it is a judgement rather than a match. Read the result before pasting it anywhere - the point of the tool is to make that reading quick, not to make it unnecessary.
Choosing a replacement style
Numbered tags are the default because they keep the text usable. The same value always gets the same tag, compared without regard to case, so a log still tells a coherent story: [EMAIL_1] failed to log in three times, then [EMAIL_2] succeeded from the same [IP_1]. An AI assistant reading the redacted version can still reason about who did what, which it cannot do if every address becomes the same word.
Plain tags drop that link. Use them when even the pattern of repetition is sensitive - how many distinct customers appear in an incident, for example - or when you simply want the least information to survive.
Asterisks keep the original length and layout, which suits fixed-width output and screenshots. The cost is that length is itself a small leak: a four-letter name and a twelve-letter one stay distinguishable.
Be careful with the word anonymous. Under data protection law such as the GDPR, removing obvious identifiers usually produces pseudonymised data, which is still personal data. This tool keeps no mapping from tags back to values, but the context that remains may still identify someone.
Where your text goes
Nowhere. The pattern layer runs in the page. The model, when you turn it on, downloads once from this site - about 30 MB, made up of the ONNX Runtime WebAssembly engine and the model weights - and is cached by your browser. It then runs in a Web Worker, and neither your text nor the results leave your device. You can confirm it in the Network tab of your browser's developer tools: after the download, scanning produces no requests at all.
This matters more here than for most tools. The usual reason to sanitize text is that it is about to go somewhere else - an AI assistant, a public issue tracker, a forum post, a vendor's support desk. A sanitizer that uploaded the unredacted text in order to redact it would defeat its own purpose.
Frequently asked questions
- Does it catch every piece of personal data?
- No, and no automatic tool does. Values with a fixed format are found reliably, names and addresses are found most of the time when AI detection is on, and context that identifies someone indirectly is not found at all. Read the highlighted output before you share it.
- Why are names not replaced?
- Because a name has no pattern to match. Turn on AI detection, which downloads a small on-device model to recognise names, street addresses and ID numbers. Without it, only values with a recognisable format are replaced.
- Which languages does name detection support?
- English, Spanish, French, German, Italian, Portuguese and Dutch, where the model's published recall is around 98%. Names written in Japanese, Chinese, Korean and other non-Latin scripts are mostly missed. Pattern detection - emails, cards, keys, IP addresses - works in any language.
- What exactly does the AI download?
- About 30 MB from this site: the ONNX Runtime WebAssembly engine and the Rampart model with its tokenizer. Nothing comes from a third party, the files are cached, and the download only starts when you tick the box.
- Why was an order number or a date left alone?
- Numbers are only replaced when their format can be checked - a card number must pass Luhn, an IBAN must pass mod-97 - because replacing every long number would wreck the log you are trying to share. Dates are not treated as personal data on their own. Replace anything specific to your organisation by hand.
- Can I undo the redaction?
- No. No mapping from tags back to the original values is kept anywhere, by design. Keep your original text if you will need it.
Last updated:
Include the steps, expected result, and actual result. Remove secrets and personal data.
