on-device PII · Expo · browser · Node

The PII never
leaves the device.

local-pii redacts names, emails, phones and more on device — only placeholders reach your LLM, and the reply is rehydrated locally. The mapping never leaves.

on your device

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

leaves →
what the LLM sees

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

runs onExpo / React Native·Browser·Node

On-device model

A 14.7 MB Rampart model runs in your app or the browser — names, addresses and IDs, fully offline.

Tool calls, solved

Placeholders survive JSON and tool-call arguments. Your tools run with real values; the provider never sees them.

Any LLM

Drop-in adapters for the Vercel AI SDK and OpenAI / Grok. Anonymize, call, rehydrate — 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 NER (names · addresses · IDs)
     ─▶ placeholders ─▶ LLM
                          │
        reply ─▶ rehydrate(reply) ─▶ restored text

See it redact, live.

Type a note and watch PII turn to placeholders in your browser — the model runs on device.

Open the playground