ProjectMac · iPhone · iPad · Shipped

I'm John Doe app icon

Mask your identity before AI sees it.

on-device50+ detectorszero networkMac · iPhone · iPad

I'm John Doe


The Leak

You paste things into an AI chatbot — emails, contracts, messages. Your name, phone number, account details, API keys. It goes to the server before you think about it.

I'm John Doe catches that data and swaps it with typed placeholders like [name], [email], [address], [number]. Not stars. Not random strings. Typed labels — so the AI still understands the structure of your text and gives you a useful answer back.

Nothing leaves your device. No server, no account, no network — it even works offline. Whichever device you're on, the masking happens right there.

I'm John Doe app — split pane showing original text and masked output

First Run

Pick a few seed words. I'm John Doe learns their shape — capitals, lowercase, plurals — so "Acme", "ACME", and "acmes" all get caught in the same pass.

Onboarding step 1: Before you begin — disclaimer about on-device processing, best-effort detection, user review responsibility, and no regulatory compliance guarantee
step 1 — before you begin
Onboarding step 2: enter your name
step 2 — always-mask seed
Onboarding step 3: choose detection categories
step 3 — category toggles
Onboarding step 4: setup complete
step 4 — ready to paste

Before and After

Names become [name], emails become [email]. The shape of the message stays intact, so ChatGPT or Claude still understands what you're asking — just without knowing who.

Empty app state — blank prompt box on the left, Detect placeholder on the right, 0 / 20,000 counter
empty canvas
Before masking — original text with personal data
raw paste
After masking — PII replaced with [name], [email], [number]
masked output

The Sweep

Paste a whole email thread, hit mask, watch every match light up at once. The highlights stay up for a beat so you can see what got caught before you decide what to do with it.

Source text with individual PII highlighted
detected, highlighted
Bulk masking with all PII highlighted in source
drag to select range

Bulk Mask

Drag to select a range and pick a placeholder — [masked], [name], [email], or something you type yourself. The whole selection collapses into that one label in a single pass.

Mask Selection popup with placeholder buttons and a custom placeholder input, [masked] selected by default
pick a placeholder
Selected paragraph replaced with a single [masked] label after confirming the choice
whole range, one label

Detection Rules

Ten categories, each labeled with what it actually catches — Person (names, orgs), Contact (email, phone), Address (city, postal code). Toggle off what you don't need without guessing what's behind the switch.

Mask Settings — Categories panel with 10 toggleable detection categories
10 categories, toggle per context

Always Mask

Add the things detection misses — a codename, an internal project, a client's nickname. Works alongside Never Mask to cover the gaps automatic rules leave behind.

Always Masked settings — adding a new email
add with custom placeholder
Always Masked settings — list with name and email entries
saved entries, per-row delete

Never Mask

Keep the words that should pass through — your own product name, public figures, technical terms. If a word ends up on both lists, the app catches it before it becomes a problem.

Never Mask settings panel with John Doe added
keep-as-is list

The Conflict

Add a word to Always that's already on Never, and the app stops to ask. Whichever list had it first keeps it, unless you move it — so the two lists never quietly contradict each other.

Duplication check dialog — conflict between Always Masked and Never Mask
conflict prompt on save

Read Comfort

Bump the text size up or down with limits on both ends, so the layout doesn't break. Whatever you pick sticks on the next launch — long drafts, low-vision users, same setting every session.

Text size toggle set to maximum — both original and masked views render in large type, "2 items masked" header visible with A and AA buttons.
maxed, still readable
Text size toggle set to minimum — same masked and original content renders in compact type, leaving generous whitespace around the canvas.
minimum, room to breathe

Now on iPhone & iPad

The Mac app came first. The same on-device engine — 50+ detectors, zero network — now runs on iPhone and iPad too, catching the same PII the same way on all three. One purchase of $3.99 covers Mac, iPhone, and iPad; there's no subscription and nothing new to learn.

I'm John Doe on iPhone — onboarding screen 'Before you begin' stating No AI, no cloud, no exposure, with on-device and best-effort-detection disclosures
same disclaimer, small screen
I'm John Doe on iPhone — empty state with Auto Mask toggle on, 'Processed on this device' lock label, and a Paste & Mask button
paste text to mask
I'm John Doe on iPhone — masked result with [name], [email], [number], and [address] placeholders highlighted inline, Copy and Clear buttons below
masked inline, on device

entity types
15+
regex detectors
50+
char input cap
20K
network calls
0
on-device
100%

"Your data never leaves your device."