How it works

The gateway keeps personal data on-shore while you use any public LLM. It sits on the egress path, swaps every identifier for a placeholder before the prompt crosses the border, lets the model answer on the placeholders, and restores the real values on the way back β€” so nothing sensitive ever leaves your network.

The round-trip

Draft a reply to Hans Muster (AHV 756.1234.5678.97, IBAN CH93 0076 …)
        β”‚  πŸ›‘  the only thing that crosses the border ↓
Draft a reply to [PERSON_1] ([AHV_1], [IBAN_1])
        β”‚  the model answers on placeholders ↓
"Dear [PERSON_1], we'll refund CHF 240 within five business days…"
        β”‚  πŸ›‘  restored on the way back ↓
"Dear Hans Muster, we'll refund CHF 240 within five business days…"

The model produces a correct, personalised answer having only ever seen [PERSON_1]. Even if the provider logs every prompt, it logged placeholders.

Deterministic by design

The detection is not an LLM and not a cloud API β€” both would defeat the purpose (you cannot use an unreliable thing as your reliability boundary, and a cloud β€œPII API” means you have already sent the data away to find it). It is regex plus checksums, run locally:

The checksums are what make it trustworthy: a random 13-digit string is not flagged, and a real AHV cannot slip through by being reformatted. It runs air-gapped and fails closed β€” if something looks like an identifier, it is withheld, not waved through. The principle is old and dull and correct: never trust the model to police itself; put a deterministic code boundary around it.

See it run β€” pick an identifier type, then change any digit and watch the check fail:

βœ“ valid
7Γ—15Γ—36Γ—11Γ—32Γ—13Γ—34Γ—15Γ—36Γ—17Γ—38Γ—19Γ—37check
weight the first 12 digits 1Β·3Β·1Β·3… Β· Ξ£ = 123 Β· check = (10 βˆ’ 123 mod 10) mod 10 = 7computed 7 = digit 13 (7) β†’ valid βœ“
No lookup, no network, no AI β€” pure arithmetic. Change any digit and the check fails, which is exactly why a random string can't pose as a real identifier.

In production

Where it stops

Defence in depth, deliberately dumb β€” the outer layer, not the only one.

← Try the live gateway Β Β·Β  Does it cost utility? β†’