Skip to content

Anonimal

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.

Install Anonimal View on GitHub