Prompt PII Scrubber

Remove personal information from prompts before sending to any LLM

Client-side regex heuristics detect and redact emails, phone numbers, credit cards, SSNs, IP addresses, and URLs from your prompt before it leaves the browser. Choose numbered placeholders or uniform redaction. Nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Does my text leave the browser?

No. All detection and redaction runs locally in JavaScript on this page. Nothing is uploaded or stored, which is the whole point — you scrub before any data reaches a third-party model.

Prompt PII scrubber

Before you paste a prompt into ChatGPT, Claude, or any API, it is worth stripping out the personal data you do not need to share. This tool detects common structured identifiers — emails, phone numbers, credit cards, SSNs, IP addresses, and URLs — and redacts them right in your browser. No text is uploaded; the scrubbing happens locally so the sensitive data never reaches a server in the first place.

How it works

You paste your prompt text, tick the categories you want redacted, and pick a replacement style: numbered placeholders such as [EMAIL_1] that preserve which matches refer to the same entity, or a uniform [REDACTED]. The tool runs a set of ordered regular expressions — URLs and emails first so the greedier phone matcher does not eat their digits — and reports how many items of each category it removed. The phone matcher ignores runs shorter than seven digits to avoid false positives.

Why scrub before sending?

LLM providers process your messages on their servers, and depending on the service’s privacy policy, that data may be used to improve models, retained for a period, or accessible to human reviewers. For business use cases — where prompts commonly contain customer emails, internal account numbers, or snippets of support conversations — this is a real compliance exposure.

The core principle is data minimisation: the model does not need the actual email address [email protected] to help you draft a response to her query. It only needs the structural signal that a customer email is present. Replacing it with [EMAIL_1] gives the model everything it needs while keeping the actual value off their servers.

When to use numbered placeholders vs uniform redaction

The choice between [EMAIL_1] style and a uniform [REDACTED] comes down to whether the model needs to track cross-references:

Use numbered placeholders when the prompt asks the model to reason about specific entities — for example, “compare the two accounts” or “write a response addressing all the concerns in this ticket.” The model needs to know that [EMAIL_1] in paragraph two is the same entity as [EMAIL_1] in the complaint text.

Use uniform redaction when the model only needs to know that sensitive data is present, without tracking which is which. Draft-writing, summarisation, and classification tasks usually fall into this category.

What the regex approach misses

Structured identifiers — emails, phone numbers, credit cards, SSNs, IPs — have known patterns that regex handles well. What it cannot reliably detect:

  • Full names — “Jane Doe” could be a real person or a fictional character; no pattern distinguishes them
  • Physical addresses — too many formats and no structural anchor
  • Account or reference numbers — these look like arbitrary number sequences
  • Indirect identifiers — “the customer from the Manchester branch who called last Tuesday” is identifying without containing any structured PII

For these, review the scrubbed output and remove any remaining identifiers by hand before sending. This is especially important for prompts drawn from support tickets, customer communications, or internal reports, which tend to carry narrative identifiers that regex cannot catch.

Tips and notes

Regex is good at structured patterns but blind to names and addresses, which have no consistent shape — so treat the output as a first pass and remove any remaining sensitive details by hand before sending. Numbered placeholders are the better choice when the model needs to reason about the same person or account more than once, because the references stay distinguishable. Because everything stays on your machine, you can safely scrub even highly confidential text here; the tool’s value is precisely that the data never has to travel to be cleaned.