Detects real PII
Two engines: a built-in regex engine for structured data, and an optional ML / NER engine (OpenAI Privacy Filter) for free-form names and addresses.
Anonimal is the mask your data wears before you send it to an LLM. It detects and replaces personally identifiable information (PII) — names, emails, phone numbers, addresses, national IDs, cards, secrets — and it does it 100% on your own machine. The model runs on your CPU, offline; the original data never leaves your infrastructure.
Anonimal is the privacy specialist of the Escriba Suite. It is the single
owner of serious anonymization in the ecosystem: the satellites (Escriba,
Fisherboy, Extracta) delegate to it over HTTP through ANONIMAL_URL. It runs
standalone too — as a service or as an embeddable library.
Detects real PII
Two engines: a built-in regex engine for structured data, and an optional ML / NER engine (OpenAI Privacy Filter) for free-form names and addresses.
Five replacement modes
typed, anon, pseudo (reversible), mask and hash. Opaque markers
such as EMAIL_1 or fully reversible re-hydration — your choice per request.
Reversible anonymization
The pseudo mode returns a token → original map. Anonymize before the LLM,
re-identify the answer afterwards with /deanonymize.
Runs 100% local
CPU-bound, offline, no network egress. Self-hosted via Docker; the original PII never leaves the machine.
Format-preserving
Anonymizes txt, md, log, srt, html, CSV (keeps columns) and
JSON (keeps structure and keys) — plus visual PDF redaction.
REST API + library
A small REST API (/detect, /anonymize, /deanonymize, …) for automation,
plus anonimal_lite as an installable Python fallback.
Anonimal owns anonymization so the rest of the suite does not have to. A satellite
that has ANONIMAL_URL set calls the service (full ML engine); without it, it
falls back to the bundled anonimal_lite regex library. One place to maintain
privacy logic, shared by every product.