🛡️ Zero-Trust · Runs 100% in your browser

Mask it first.
Send it to AI. Restore it in one click.

When you paste an employee review, an HR incident report, or a client email into ChatGPT to polish the wording, do you actually know what happens to it next? Most people don't. MaskFirst removes the guesswork — mask the sensitive parts before you send anything, restore the AI's reply back to the original wording with one click, and nothing ever leaves your device.

Try the App → See it in action ↓
5
Region rule presets
2
Personas: Personal / Business
0
Bytes ever leave your device

Core features, try them yourself

Each demo below is pre-loaded with realistic sample data. Click the buttons to see exactly what MaskFirst does — no data leaves this page, and nothing here touches the real app's engine.

1
Region-aware rule presets
Switch the active region below, then run the scan — only that region's format is detected, on top of the always-on Global baseline (email, IP, credit card).
Sample text (same for every region)
De-identified result
Session Vault
2
Bulk table masking: catches what rule-based scanning misses
Columns like "Manager" have no fixed format, so regex can't detect them automatically — selecting the whole column for one-click masking exists exactly to fill that blind spot.
Original table
The "Manager" column has no fixed format, so regex rules can't detect it automatically — it needs manual whole-column masking.
De-identified result
Session Vault
3
Selective Disclosure: From Full Redaction to Partial Masking
Posting something publicly doesn’t have to be all-or-nothing. Click any name below to instantly cycle through Original, Full Mask, and Partial Mask (keeps the first and last character) display levels.
Project Falcon — public status update (click a name to try it)
Click a name: the first click switches to a full mask ("■■■"), the second click switches to a partial mask that keeps the first and last character (e.g. "J■■e") — enough to identify who's on the list for a public posting — and the third click restores the original.
4
Quick Mask: Drag-Select and Batch-Apply Without Sending to AI
When you just need a public roster or a quick internal check — not sending anything to an external AI — use the "Quick Mask" tab: paste → detect → drag-select multiple items → batch-apply a mask level → copy. No code lookup table is ever created and nothing is recorded. Names, phone numbers, and emails each get the partial-mask style that fits them best.
Scholarship announcement draft (drag-select multiple items to try it)
Drag to draw a selection box over the text above (items it touches get a green outline), then click a batch button below to apply a mask level — or click a single item directly to cycle through its three states. The real tool's Quick Mask tab also supports manually selecting text to mark it sensitive, and masking a whole table column/row; this demo focuses on the most-used drag-select batch action.
5
Automatic Leak Prevention: High-Risk Content Locks Copying
Personal and Business modes lock different keyword sets. Switch persona, then scan the matching sample note to see the copy button get force-locked.
Sample note
Copy button state
Simulating on-device AI semantic analysis...
6
Custom dictionary & manual masking
Regex can't catch everything — an informal nickname or an unlisted project codename needs a custom dictionary entry or a manual selection.
Sample text
"Sam" and "Project Falcon" have no fixed format — regex alone can't find them. A custom dictionary entry fixes that.
De-identified result
Session Vault
7
Restore, in one click
This is what you'd paste back after the AI replies — every {{TAG_N}} token is matched back to the original value automatically.
Simulated AI reply (tokens intact)
Restored result
8
Custom protection rules: merge vs. replace
Beyond the built-in library, you can import your own regex rules — merged alongside the built-ins, or swapped in to replace them entirely. Try both modes below.
Your custom rule (CSV row)
Sample text
De-identified result
Advanced: beyond bulk import, you can also edit rules one at a time directly in the list below — including built-in rules, not just custom ones:
Rule Actions
Test text (updates live as you edit rules)
The real tool also supports manually importing a config file and exporting your rules as a file — both involve local file-system operations (picking or downloading a file), so they can't be simulated in this hosted demo. See the technical docs for details.
9
Tag reference table: staying consistent across batches
The same piece of data normally gets a different tag number each time it's processed in a new batch. Export the reference table and import it next time to keep tags consistent — the full tool also offers an encrypted (JSON) export option.
Known tag reference (simulating a previously exported file)
Today's new message
This run's de-identified result
Tags produced this run

Three ways to run it, for any network environment

From a quick online sandbox to a fully air-gapped closed network, pick the deployment that matches your organization's security requirements.

Evaluation only

Online Sandbox

Try the feature set quickly via GitHub Pages — all processing runs locally in your browser and nothing is uploaded. For production use, download the offline version so you can verify exactly what code is running.

Recommended

Offline Single File

Download MaskFirst.html and double-click it. No install, no server, everyday use with real documents.

Air-gapped

No Internet / Closed Network

Keep MaskFirst.html and style.css in the same folder for government machines and closed intranets.

An air-gapped setup also needs style.css — available in the GitHub repo above