# scrubadub Guide

A source-qualified guide to when scrubadub fits the locally deployable text redaction job.

scrubadub is a locally embedded Python option for relatively simple text-cleaning pipelines with configurable detectors.

Site: Field Guides
Category: Software
Version: 2026-10-18.1
Published: 2026-10-18
Updated: 2026-10-18
Freshness: Checked 2026-10-18 against the cited sources. Official product claims, independent review/community signals, and evidence limits are reported; no hands-on benchmark, installation test, or privacy audit is claimed.
Tags: software, privacy, pii, redaction, scrubadub-text-redaction
Canonical: https://fieldguides.co/g/scrubadub-text-redaction
Markdown: https://fieldguides.co/g/scrubadub-text-redaction.md
Versioned Markdown: https://fieldguides.co/g/scrubadub-text-redaction/2026-10-18.1.md
JSON: https://fieldguides.co/api/guides/scrubadub-text-redaction

## Quick Read

- Verdict: Choose it for embedded Python text cleaning. - scrubadub is a locally embedded Python option for relatively simple text-cleaning pipelines with configurable detectors. Some entity types need extra detector dependencies.
- Workflow: Replace personal information in free text. - Run text through the configured detectors and review the spans they identify before using the cleaned output. Add detector dependencies for the entity types your pipeline needs.
- Boundary: Check the limit before committing - The key constraint is Extra detector dependencies are needed for some entity types. No source here proves a universal performance, privacy, or reliability outcome.

## Decision

**Choose scrubadub when its documented boundary matches the job.**

scrubadub is a locally embedded Python option for relatively simple text-cleaning pipelines with configurable detectors. The cited sources describe it as a locally deployable redaction option. Choose it when an embedded Python cleaning pipeline is the job. Some entity types need extra detector dependencies.

## Setup

**Start by confirming deployment and the data path.**

Confirm this setup detail before you build a routine: Python package invoked inside local scripts. Then verify the processing boundary — Detectors identify spans; postprocessors control replacement — and keep the first sample low-risk until the account, device, or runtime behavior matches the source description.

## Workflow

**Workflow: replace personally identifiable spans in free text.**

Use scrubadub to replace personally identifiable spans in free text. Customization is described as optional address, spaCy and Stanford detector packages; locale configuration. Keep the workflow small enough to review its output and control settings; the cited sources do not establish a universal quality or speed result.

## Alternatives

**Compare scrubadub by the constraint that decides the work.**

The five-guide table retains the current guide and four siblings in the locally deployable text redaction group. Values come from the cited source cells; an Unknown cell means the sources did not support a stronger statement.

| Guide | Workflow | Deployment | Input | Entry cost | Method | Customization | Limitation |
| --- | --- | --- | --- | --- | --- | --- | --- |
| OpenAI Privacy Filter | Model-based text redaction with a local CLI and Python API. | Local CPU or GPU; checkpoints downloaded if absent. | Text strings, files and pipes. | Open repository; compute and operational costs remain. | Token classification with span decoding. | Runtime precision/recall presets, evaluation and fine-tuning commands. | Validate detection on the target corpus; community scores change with matching criteria. |
| Presidio | PII identification followed by configurable anonymization. | Python module or self-hosted HTTP service/container. | Text and detected entity spans. | Open-source deployment; self-hosting/integration cost separate. | Analyzer plus separate anonymizer operators. | Replace, mask, redact or encrypt; reversible operators need corresponding metadata and keys. | Anonymizer acts on supplied detections; missing detections are not repaired by replacement. |
| scrubadub | Replace personally identifiable spans in free text. | Python package invoked inside local scripts. | Free-text strings. | Apache-2.0 software; dependency and operation costs separate. | Detectors identify spans; postprocessors control replacement. | Optional address, spaCy and Stanford detector packages; locale configuration. | Extra detector dependencies are needed for some entity types. |
| Limina on-premises | Detect and de-identify sensitive data; this comparison covers text. | Container in customer on-premises environment or VPC. | Text; product also supports documents, images and audio. | Enterprise custom pricing; free hosted Starter is not the local-deployment price. | Commercial entity detection and de-identification engine. | Enterprise model-version pinning and guided integration/tuning. | Local availability and commercial terms require vendor agreement. |
| Philter UCSF | Remove protected health information from clinical plain text. | Local Python command-line package. | Plain-text file or directory of clinical notes. | BSD-3-Clause software; integration and compute separate. | Configurable filtering pipeline with optional evaluation annotations. | Filter configuration and input/output paths. | Clinical-domain focus; general chat/email quality is not established. |

## Review signal

**Independent context for scrubadub is bounded.**

The bounded cited sources contain no independent current-version review or community evaluation for scrubadub. Its fit is consequently a documented capability read, with no tested ranking attached.

- No independent current-version review or community evaluation was included for scrubadub among these cited sources.
- Treat official capability statements as the decision input and run your own representative check before a consequential rollout.

## Caveats

**Keep the source boundary visible while you decide.**

The current cited cost statement is: Apache-2.0 software; dependency and operation costs separate. Privacy or processing control is described as: Privacy controls are not fully described in the cited sources. The principal product boundary is: Extra detector dependencies are needed for some entity types. These are source-qualified statements, not an installation result, benchmark, security audit, or retention guarantee.

- No recent credible independent comparative review found in bounded search.
- Old documented Python minimum is not proof of compatibility with every current Python version; no installation tested.

## First check

**Make the first adoption check specific to scrubadub.**

Run a labeled sample from the target corpus through detection and replacement, then inspect misses, over-redaction, and logs before sending real data through the pipeline.

## Claim Table

| Where | Claim | Confidence | Source | Caveat |
| --- | --- | --- | --- | --- |
| Workflow | Replace personally identifiable spans in free text. | High | scrubadub maintainers (scrubadub-docs) | Source-qualified product description; no independent performance test was run. |
| Setup | Python package invoked inside local scripts. | High | scrubadub maintainers (scrubadub-docs) | Source-qualified product description; no independent performance test was run. |
| Setup | Free-text strings. | High | scrubadub maintainers (scrubadub-docs) | Source-qualified product description; no independent performance test was run. |
| Decision | Apache-2.0 software; dependency and operation costs separate. | High | LeapBeyond (scrubadub-repo) | Observed source wording; regional pricing, billing cadence, and future plan changes are not inferred. |
| Workflow | Detectors identify spans; postprocessors control replacement. | High | scrubadub maintainers (scrubadub-docs) | Source-qualified product description; no independent performance test was run. |
| Workflow | Optional address, spaCy and Stanford detector packages; locale configuration. | High | scrubadub maintainers (scrubadub-docs) | Source-qualified product description; no independent performance test was run. |
| Caveats | Extra detector dependencies are needed for some entity types. | High | scrubadub maintainers (scrubadub-docs) | Source-described boundary; no comparative failure-rate test was performed. |

## Sources

- [Privacy Filter repository and CLI](https://github.com/openai/privacy-filter) - OpenAI; Official; accessed 2026-10-18
- [Presidio overview](https://presidio.dataprivacystack.org/) - Data Privacy Stack; Official; accessed 2026-10-18
- [Presidio Anonymizer](https://presidio.dataprivacystack.org/anonymizer/) - Data Privacy Stack; Official; accessed 2026-10-18
- [scrubadub README and license](https://github.com/LeapBeyond/scrubadub) - LeapBeyond; Official; accessed 2026-10-18
- [scrubadub stable documentation](https://scrubadub.readthedocs.io/en/stable/) - scrubadub maintainers; Official; accessed 2026-10-18
- [Pricing and deployment FAQ](https://www.getlimina.ai/en/pricing) - Limina; Official; accessed 2026-10-18
- [Philter UCSF README](https://github.com/BCHSI/philter-ucsf) - UCSF / BCHSI; Official; accessed 2026-10-18
- [GLiNER large-v2.1 vs Privacy Filter case study](https://github.com/gauravvij/pii-filter-model-eval) - Gaurav Vij / GitHub; Community; accessed 2026-10-18
- [A certified de-identification system for all clinical text documents](https://pmc.ncbi.nlm.nih.gov/articles/PMC10320112/) - UCSF authors / JAMIA Open; Review; accessed 2026-10-18

## Agent Retrieval Notes

- This Markdown is generated from the same structured guide package as the public HTML page.
- MCP tools return Markdown text by default to avoid high-token JSON envelopes.
- Agent site map: https://fieldguides.co/llms.txt
