local PII · Expo · browser · Node

The private mapping stays with you.

local-pii detects names, emails, phones and more inside the caller trust boundary — protected semantic content uses placeholders before the generation model, and the reply is restored locally. Opaque reasoning, metadata, and options stay caller-owned. The private mapping never leaves that boundary.

inside your trust boundary

Ontem encontrei João Silva. Tel +49 151 12345678.

leaves →
protected content to the generation model

Ontem encontrei [GIVEN_NAME_1] [SURNAME_1]. Tel [PHONE_1].

runs onExpo / React Native·Browser·Node

Rampart Detection

A 14.7 MB Rampart Detection model finds names, addresses and IDs in your app or the browser. Inference runs locally; in the browser the model artifacts may download on first use.

Tool calls, solved

Placeholders survive JSON and tool-call arguments. Your tools run with real values; adapters protect supported semantic content toward the generation provider.

Any LLM

Drop-in adapters for the Vercel AI SDK, OpenAI / Grok, and TanStack AI. Protect, call, restore — you barely change your code.

Zero-dep core

The detection + placeholder core has no runtime dependencies and runs in React Native, the browser and Node.

note ─▶ rules (email · phone · card · IBAN · SSN · IP)
     ─▶ your dictionary
     ─▶ Rampart Detection (names · addresses · IDs)
     ─▶ placeholders ─▶ Generation model
                          │
        reply ─▶ restore(reply) ─▶ restored text

See it protect, live.

Type a note and watch personal information turn to placeholders in your browser — Detection runs locally.

Open the playground