Skip to content
GitHubOpen source
Product
Docs
Solutions
IndustriesAll industries
CompareCompare all AI data-leak tools
Benchmarks
GitHubApache-2.0

Shadow vs Private AI — open-source Private AI alternative for LLM prompts

Private AI is a commercial PII detection and de-identification engine, delivered mainly as a self-hosted container, with unusually broad language coverage. Shadow is an open-source (Apache-2.0) privacy layer for AI traffic that replaces sensitive values with realistic, reversible fakes and restores them in responses, streams and tool calls. If multilingual detection quality is your main requirement and you have budget, Private AI is a strong option. If you want a free, local layer that sits in front of OpenAI, Anthropic or Gemini without code changes, Shadow fits.

ShadowPrivate AI
Open source / licenceYes, Apache-2.0No, proprietary
DeploymentEndpoint HTTPS proxy, gateway (/gw/<provider>/), Rust libraryContainer API (self-hosted) or vendor cloud; PrivateGPT Headless for LLM workflows
Protection methodReversible realistic fakes from a persona; typed tokens for reports; optional redactionPlaceholders (NAME_1), masks or synthetic values
Restores responsesYes, automaticallyYes, re-identify API
StreamingYes, SSE and NDJSON with split-fake reassemblyNot documented in the docs we reviewed
Tool callsYes, arguments restored locally; intent-awareNot documented
FilesDOCX, XLSX, PPTX masked in place; PDF to text; CSV, JSON, HTMLMany file types (vendor claim)
Self-hostedYes, single binary, no accountYes, container (licence required)
Price modelFreeQuote; limited free tier reported by a third party
  • Multilingual detection. Private AI states it detects more than 50 entity types across 52 languages (vendor claim). That is far broader than most open-source detectors, which are often English-first.
  • Self-hosted container. The engine can run inside your own infrastructure, which matters for regulated teams that cannot send text to a third-party API.
  • Choice of output. You can replace entities with numbered placeholders such as NAME_1, masks, or synthetic values, and re-identify later.
  • An LLM workflow out of the box. PrivateGPT Headless wraps the de-identify, call model, re-identify sequence, so you don’t have to build the round trip yourself.
  • File coverage. Private AI documents support for many file types (vendor claim), useful for document pipelines beyond chat prompts.

Is Shadow a free alternative to Private AI?

Section titled “Is Shadow a free alternative to Private AI?”

Yes. Shadow is Apache-2.0, runs as a single Rust binary on macOS, Linux and Windows, and needs no account, licence key or telemetry. Private AI is licensed commercially. If budget or procurement is the blocker, Shadow lets you start today and audit the code.

Shadow’s default treatment is a format-preserving fake drawn from a per-machine persona: jane@acme.com becomes hui.zhao@zhilan.cn, cards stay Luhn-valid, IBANs pass mod-97. Because the persona and vault persist, the same customer gets the same fake tomorrow, which keeps long conversations and agents consistent. Numbered placeholders work well for analytics, but they read as placeholders to the model.

Shadow restores fakes in server-sent event streams, even when a fake is split across events, and in tool-call arguments before your tools run. We did not find public documentation of equivalent streaming or tool-call handling in Private AI.

Shadow classifies each request as act, report, code or converse and picks a treatment per value: fakes for conversation, typed tokens such as [PERSON_0007] for bulk reports, and an explicit, logged keep for the recipient of a message or action and what a provider-hosted tool’s action needs. See intent-aware policy.

Private AI is an API you call. Shadow is a proxy: set HTTPS_PROXY or a base URL and every tool on the machine that calls a supported AI API is covered, including tools you didn’t write. Web chat in a browser is not. See proxy mode and gateway mode.

  • You need strong detection in many languages and don’t want to assemble models yourself.
  • You process many file types in batch, beyond prompts.
  • You want a supported commercial product with a vendor accountable for accuracy.
  • You already build your own LLM calls and only need a de-identify and re-identify API.
  • You want masking in front of AI providers with no code changes, for every tool on a machine that calls their APIs.
  • You depend on streaming and agents with tool calls.
  • You want realistic, consistent fakes so model answers stay natural.
  • You want Office uploads (DOCX, XLSX, PPTX) masked in place.
  • You need an open-source, free, auditable component with no external account.

Shadow’s detection is pluggable: it can call a local HTTP detector through its NER sidecar contract or a Presidio Analyzer. A team that has licensed Private AI for its language coverage could put a small adapter in front of the Private AI container that returns spans in Shadow’s format, and let Shadow handle fakes, the vault, streaming and restoration. This is not a built-in integration; treat it as a pattern.

  1. List the entity types and languages you rely on, and test them with shadow scan on representative prompts.
  2. Enable the optional open-weight NER sidecar (OpenAI Privacy Filter plus GLiNER) for free-text names, and add your organisation names and codenames as dictionary terms.
  3. Remove your de-identify and re-identify calls around the model call.
  4. Point the SDK base URL at http://127.0.0.1:8877/gw/<provider>/... or set HTTPS_PROXY.
  5. If a language is poorly covered, keep Private AI as a detector behind an adapter rather than dropping it.

Private AI publishes comparisons against Presidio, Google DLP, AWS Comprehend, spaCy and Nightfall; these are vendor-run and, per our research, used 2021 versions of the other tools. We have not been able to test Private AI independently without a licence. Shadow’s benchmark publishes its methodology, datasets and label mappings so results can be reproduced.


Last reviewed: 2026-10-31. Private AI is a trademark of its owner; this comparison is based on public documentation as of the review date.

Frequently asked questions

Is Shadow an alternative to Private AI?

For masking LLM traffic, yes. Both de-identify sensitive values before a model sees them and re-identify the answer. Private AI is a commercial detection and de-identification container with broad language support; Shadow is a free, Apache-2.0 privacy layer that runs as a local proxy, gateway or Rust library.

Does Private AI support more languages than Shadow?

Very likely. Private AI states it detects 50+ entity types in 52 languages (vendor claim). Shadow's built-in detectors are pattern- and dictionary-based, and its optional NER sidecar is strongest on English, with multilingual names from GLiNER. Multilingual recall is being measured on the Shadow benchmarks page.

How much does Private AI cost?

Private AI sells licences by quote. A third-party source mentions a limited free tier of about 75 API calls per day; we could not confirm that on official pages. Shadow is free and open source.

Can Private AI restore values in a streamed LLM response?

Private AI supports re-identification, and PrivateGPT Headless wraps de-identify, LLM call and re-identify. Public docs we reviewed do not describe streaming (SSE) re-identification or tool-call handling. Shadow restores SSE and NDJSON streams and tool-call arguments on the fly.

Can I use Private AI and Shadow together?

Shadow accepts external detectors over HTTP through its NER sidecar contract and Presidio integration. Wiring Private AI's detector in would need a small adapter; it is not a built-in integration.