

Privacy-first LLM gateway — mask PII in ChatGPT & Claude (Chrome/Firefox), or in Documents, Chat, and Data in the app. Only tokens reach the model; unmask the reply. Free account: sync, OpenAI-compatible proxy, and TypeScript SDK.
How it worksMask PII, then paste a model reply to restore — share an anonymized risk report (never includes real values).
3/3 free runs left today
Metered Check PII and Send uses across Chat, Documents, Data, demo, API proxy, and browser extension (not pageviews).
Visitors who tried
5
Feature uses
177
By surface
Same mask → send → unmask pipeline on the web app and browser extension. ROS Policy masks and restores; audit stores entity types only, never PII values.
Step 1
Type in ChatGPT/Claude, write in Documents, chat in the app, or paste JSON/CSV/YAML — names, phones, emails, CCCD, and Vietnamese identifiers.
Step 2
Check PII highlights in place (web) or confirm before send (extension). Dismiss false positives, force-mask a selection, or import a noun dictionary.
Step 3
Only masked text reaches the model. Web: OpenAI, Claude, Grok, Gemini, LiteLLM, or stub. Extension: replace in the composer, then you click Send.
Step 4
Restore original values in the answer. Toggle Show masked to see exactly what the model saw — on the web and in the extension dock.
Shared dictionary, Check PII, and mask/unmask path — pick the surface that matches your workflow.
Chrome & Firefox on ChatGPT and Claude.ai — composer dock, mask before send, Unmask & Show masked on replies.
See extensionTipTap rich text, Markdown/tables paste, inline PII review; cloud sync when signed in.
Open documentsThreaded chat, explicit Check PII, heatmap review, Show masked toggle, unmask in the reply.
Open chatPaste JSON, CSV, or YAML → Check PII → copy masked output in the same format → send masked.
Open dataMV3 on Chrome and Firefox. On Send, the extension masks PII (and workspace dictionary terms), replaces the composer — you send the masked draft. Dock Unmask restores the reply; Show masked peeks at tokens again. Needs a pg_… key from Account.
Confirm Masked | Original → replace in the box; the next Send goes through — we never auto-submit for you.
Replies keep {Token} until you click Unmask; Show masked lets you peek at what the model saw.
Sync CSV/nouns from Account; same {DictMask_n} tokens as on the web.
Install: load unpacked from the Chrome/Firefox pack in the repo (see each extension’s INSTALL.md).
Protect ChatGPT and Claude.ai in-page — composer-anchored dock, mask before Send, Unmask & Show masked on replies.
CSV/TXT → {DictMask_n} on web and extension; sign in to sync dictionary, chats, and documents across devices.
Create pg_… keys on Account; call /api/v1/chat/completions (streaming SSE) or npm i @royalsolution/pii-guard as an OpenAI drop-in.
500 prompts/month for guests; 3 homepage demo checks/day; anonymized PDPD-style report after Check PII; usage on Account.
Ready to try it?
Try Mask/Unmask on the homepage — or create a free account for an extension/proxy key, sync, and usage on Account.