Scrub before
you send.
CleanPaste lives in your menu bar. Copy something from Slack, email, or a doc — hit ⌘⇧V to scrub before sending, then ⌘⇧⌥V to restore real names in the AI's reply. It cleans your clipboard on the way out, stripping every name, number, and private detail before any AI ever sees it.
Scrub in. Chat. Unscrub out.
CleanPaste doesn't just protect what you send to the AI — it also restores real data in the AI's response before you paste it back into emails, Slack, or documents.
Session-persistent mapping. Within a single
session, [NAME_1] always maps back to the same real
name — even across multiple messages. Close the app and the
mapping is gone forever. No data is ever stored to disk.
You pause before you paste.
Every time.
You've got something in your clipboard and you want AI help with it — but you hesitate, because it's full of real people's details. So you either don't use AI, or you do and feel vaguely uncomfortable about it.
- You've copied an email thread about a patient. You want to ask AI to help you write a response — but it has their NHS number and address in it.
- You've copied a Slack conversation with a colleague. You want AI to help you draft a reply — but it uses their real name and mentions confidential project details.
- You've copied a legal document to ask AI to summarise it — but it has your client's full name, SSN, and contact details throughout.
- You've copied a config file to ask AI to debug it — but it's full of API keys, database passwords, and connection strings.
- You've copied a CRM export to ask AI for help with outreach — but every row has a lead's personal email and direct phone number.
- You've copied a personal message you want help replying to — but it names your friend, their partner, and details you'd rather not share with OpenAI.
One shortcut.
That's it.
CleanPaste lives in your menu bar. It doesn't open a window. It doesn't interrupt your flow. It just cleans your clipboard the moment you paste.
Now paste it clean.
You copy an email, a Slack message, a document — whatever.
It's in your clipboard with real names, phone numbers, and
private details in it.
Instead of hitting
⌘V and sending all of
that to ChatGPT, you use your CleanPaste shortcut. In the time
it takes to paste, the PII is gone. The AI gets the scrubbed
version. You never even see it happen.
Copy as normal
Copy anything from anywhere — a Slack DM, a patient record, an email thread, a config file. CleanPaste doesn't touch it yet.
Use your shortcut instead of ⌘V
Hit your CleanPaste shortcut (default ⌘⇧V, or set
your own). CleanPaste reads your clipboard, scrubs it in
milliseconds, and puts the clean version in its place.
[NAME_1], [EMAIL_1] etc. before
anything reaches the AI.
The AI gets clean text
The scrubbed text pastes into ChatGPT, Claude, Cursor — wherever your cursor is. The AI has everything it needs to help you. It just doesn't have the names.
Unscrub the AI's reply
When the AI responds with [NAME_1] or
[EMAIL_1] in its output, hit
⌘⇧⌥V (your unscrub shortcut). CleanPaste
restores the real names, numbers, and details — then pastes
the fully restored text wherever your cursor is.
⌘⇧V scrubs on the way
in. ⌘⇧⌥V restores on the way out. The mapping is
preserved for the entire conversation and vanishes when you
close the app.
See the difference it makes
Real text from our test library. Hit Clean it to watch the scrub happen — then see the receipt that gets generated.
Built to be trusted with
your most sensitive text
Nine things CleanPaste does that nothing else does — and one deliberate thing it never does.
Three ways to replace PII
Choose how scrubbed data looks when it's sent to the AI. Switch mode per session or set a default.
Tokens like
[NAME_1] are unambiguous.
Realistic fakes
(locale-matched names, plausible emails) let the AI reason more
naturally.
Labels like Person
A are for maximum clarity.
Consistent identity mapping
"Alice" always maps to the same replacement within a session. "Alice Smith" maps to the same fake full name. Across every mention in a long document, the substitution is identical — so the AI's response reads coherently.
100% offline — always
No cloud processing. No telemetry. No servers at all. CleanPaste runs entirely on your Mac — detection, scrubbing, receipt generation, and unscrubbing. The session mapping lives only in memory and vanishes when you close the app. Air-gapped mode blocks all outbound sockets if you need to verify it.
Receipt for every scrub
A machine-readable JSON log records every original→replacement
mapping, salted with SHA-256 so the receipt itself isn't a PII
store. This same mapping powers the
unscrub feature — when the AI replies with
[NAME_1], CleanPaste knows exactly which real name
to restore.
Bring Your Own Model
Ships with a domain-tuned DistilBERT NER model. Not good enough for your use case? Export any HuggingFace token-classification model via ONNX and drop it in. English, French, Spanish, German, or your own custom domain-trained model — all supported.
Bring Your Own Rules
Hot-load custom regex patterns via JSON config — no restart needed. Write rules for your internal identifiers: employee IDs, order numbers, proprietary formats. Region patterns for NHS, SSN, SIRET, DNI, SIN are pre-built. 96% of patterns are Rust-regex portable.
Scrubs identity, not meaning
Medical terms, legal citations, academic vocabulary, and technical terminology are preserved. A drug name isn't scrubbed because it sounds like a name. "NHS" stays in a clinical note but an NHS number gets replaced. Eight domain personas control what's protected.
Multi-region, multi-locale
Six regions (US, UK, FR, DE, CA, AU) and four locales (en, fr, de, es) are fully composable. Run French NER with Canadian SIN patterns, or English tokenisation with German postcodes. Locale and region are orthogonal — mix and match.
Works with every AI
Because it intercepts your clipboard — not a specific app — it works with absolutely anything: ChatGPT, Claude, Gemini, Copilot, Cursor, Open WebUI, or any internal tool your company runs. No browser extension. No API key. Just paste.
Anyone who works with
other people's information
CleanPaste has specialized modes for different types of work. Each one knows what to protect and what to leave alone.
Healthcare
Scrubs patient names, NHS numbers, and contacts. Keeps diagnoses and medication names intact.
Legal
Protects client identity while preserving case numbers, citations, and court names.
Finance
Catches account numbers, sort codes, and IBANs. Preserves instrument names and regulatory terms.
Developers
Detects API keys, tokens, and credentials. Preserves framework names and code architecture.
Sales & CRM
Scrubs lead names and contact info. Preserves deal sizes, timelines, and competitor mentions.
Education
Protects student and parent identity. Keeps IEP goals, services, and academic terms in place.
Journalism
Protects source identity and confidential informants. Preserves publications and legal precedents.
Personal
Aggressive scrubbing for diaries, letters, and family messages. The emotional context stays, the names go.
Works with every AI tool
you already use
AI Chatbots
ChatGPT, Claude, Gemini — use them freely without second-guessing what you paste.
Self-hosted AI
Open WebUI, LibreChat, and private AI setups — an extra layer even on private deployments.
Coding tools
Cursor, GitHub Copilot, Claude Code — get AI coding help without leaking credentials from config files.
Your own apps
Building something that handles user data? Use the CleanPaste engine to protect customers before API calls go out.
Coming first to macOS
CleanPaste is in active development. Join the waitlist to get early access and help shape what it becomes.
Get early access
Tell us a bit about how you'd use CleanPaste. We're onboarding early users personally and would love to hear from you — whether you're an individual, a team, or just curious.
- Early access to the Mac app
- Help shape features before launch
- Enterprise and team pricing
- Custom setup for your industry