CleanPaste
Early access — macOS

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.

100% offline macOS native No account needed
CleanPaste — ⌘⇧V into ChatGPT
⚠ PII Exposed
4 items at risk
Hi, I'm following up for Sarah Johnson (DOB 04/12/1985). Her account number is 4111-1234-5678 and she can be reached at sarah@company.com.
Scrub Receipt

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.

1. Your original text
Hi, I'm following up for Sarah Johnson (DOB 04/12/1985). Her account number is 4111-1234-5678 and she can be reached at sarah@company.com.
2. What the AI sees
Hi, I'm following up for [NAME_1] (DOB [DATE_1]). Her account number is [ACCOUNT_1] and she can be reached at [EMAIL_1].
3. AI response
Hi there, I'm just following up on behalf of [NAME_1]. Her account number is [ACCOUNT_1] and she can be reached at [EMAIL_1]. Can you help please?
4. What you paste back
Hi there, I'm just following up on behalf of Sarah Johnson. Her account number is 4111-1234-5678 and she can be reached at sarah@company.com. Can you help please?

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.

The idea
You copied something.
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.

V
Paste — sends everything as-is Exposed
swap this habit for
V
Scrub on paste — PII gone before it lands Clean
V
Unscrub on paste — restore real names on the way out Restore
Shortcut is fully customisable. Right-click menu option also available.
📋

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.

Your clipboard contains the original text with all real data intact — nothing has changed.

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.

Names, emails, numbers, addresses — replaced with [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.

A receipt is saved locally so you always know exactly what was replaced and can restore original names if needed.

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.

Two shortcuts, one session. ⌘⇧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.

[NAME_1] Emma Johnson Person A

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.

JSON export GDPR Article 17 SHA-256 hash
Bring your own model

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

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.

NHS · SSN · SIRET SIN · DNI · TFN

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.

🍎 macOS — coming soon
🪟 Windows after Mac
📱 iOS & Android later

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