The same firewall ships as fogclaw for OpenClaw agents — openclaw plugins install @datafog/fogclaw — and more enforcement points are on the way. Follow the roadmap →
Defaults to the high-precision entity set — EMAIL · PHONE · CREDIT_CARD · SSN. Noisier types, German locale packs, and allowlists are opt-in. Presidio-style entity names are accepted as aliases.
Why in-process
100x+ faster than NER-based scanners.
DataFog's guardrail runs inside your gateway process. The common alternative is a NER service beside it, which adds a deployment to manage and a network hop to every request. Benchmarked on identical payloads and entity types; reproduce it with one command.
DataFog guardrail
Sidecar scanner (e.g. Presidio)
Deployment
in-process — pip install datafog
separate service to run and scale
Extra dependencies
pydantic only
spaCy + language models
Latency per scan
231µs on a 1.2KB document
22.8ms on the same document
Network calls
none
HTTP to the sidecar
Latency figures are medians from the reproducible benchmark suite (Apple M5 Pro, CPython 3.13), measured 103–170x faster than Presidio across payload sizes — python benchmarks/run.py reproduces every number on your hardware. Fair-play note: NER-based scanners catch unstructured entities — names, organizations — that regex alone can't. DataFog ships spaCy and GLiNER engines as opt-in extras for exactly that. This comparison is about speed and where enforcement runs, not recall.