ProductsPrivacyLibraryDocsPricingGitHubAdd to ChromeDownload for Mac

// CONCEPTS

PII categories

Every time you send data to an AI, you risk exposing personal information about the people in it — customers, employees, patients. Omna's local Rust kernel scans every row and replaces each value with a typed placeholder before a single byte leaves your machine. No cloud service, no API call — everything runs on-device.

3 min readWhat Omna detects

How masking works

Omna detects personal data across ten categories and replaces each value with a typed placeholder — a bracketed label plus a sequential number. The original value is stored in a local token registry that maps each placeholder back to its real value.

text
John Smith      →  [PERSON_1]
john@acme.co    →  [EMAIL_1]
(415) 555-0132  →  [PHONE_1]
123-45-6789     →  [GOVT_ID_1]
sk-live-9f2a…   →  [SECRET_1]

The AI receives only the masked text. It reasons about [PERSON_1] the same way it would about "John Smith" — the placeholder preserves grammar and column relationships — but it never learns the real value.

The token registry

The registry lives entirely on your machine. There are two variants:

  • Session registry (browser extension) — lives in memory for the session and clears when you close the browser.
  • Persistent registry (desktop app) — stored at ~/Library/Application Support/Omna/registry.tsv, so the same value always maps to the same placeholder across sessions (John Smith is always [PERSON_1]).

The ten categories

CategoryExamplesPlaceholder
IdentityNames, nicknames, dates of birth[PERSON_N], [DOB_N]
ContactEmail addresses, phone numbers, physical addresses[EMAIL_N], [PHONE_N], [ADDRESS_N]
Government IDsSSNs, passport numbers, driver's licences[GOVT_ID_N]
FinancialsCredit cards, bank accounts, IBANs[FINANCIAL_N]
HealthcareDiagnoses, prescriptions, insurance policy numbers[HEALTH_N]
Digital footprintIP addresses, cookies, device IDs[DEVICE_N]
EmploymentSalaries, performance reviews, HR records[EMPLOYMENT_N]
Corporate secretsInternal codes, pricing strategies, roadmaps[INTERNAL_N]
CredentialsPasswords, API keys, OAuth tokens[SECRET_N]
Custom patternsEnterprise-defined patterns[CUSTOM_N]
Note: Context matters. A 16-digit number is only treated as a credit card if the surrounding text implies a financial context — the same number in a product-catalog column is left alone. Custom patterns (e.g. ACME-\d{5}) are available on the enterprise tier.

Multi-name detection

When a sentence contains several names, Omna masks all of them — including contrast and comparison phrases (X not Y, X vs Y, rather than Z, instead of W):

text
"I'd recommend Smith, not Johnson."
→ "I'd recommend [PERSON_1], not [PERSON_2]."

Known limitations

Omna is built to minimize missed PII while keeping false positives low, but a few edge cases apply:

  • Unusual name formats — single-name identifiers or highly culture-specific constructions may occasionally be missed. Test with a sample if your data has unusual names.
  • Initials — short initials like "J.S." are ambiguous and not flagged, to avoid excessive false positives.
  • Context-dependent numbers — a 16-digit number is only masked as a card in a financial context.
Warning: Omna is a privacy layer, not a compliance certification. No automated system achieves 100% recall on all data shapes. If you're subject to HIPAA, GDPR, or CCPA, consult your legal team about whether Omna's approach meets your specific obligations.

What's next