Verdict
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.
Receipts
Claim table
| Where | Claim | Confidence | Source | Caveat |
|---|---|---|---|---|
| Workflow | Replace personally identifiable spans in free text. | High | scrubadub maintainers | Source-qualified product description; no independent performance test was run. |
| Setup | Python package invoked inside local scripts. | High | scrubadub maintainers | Source-qualified product description; no independent performance test was run. |
| Setup | Free-text strings. | High | scrubadub maintainers | Source-qualified product description; no independent performance test was run. |
| Decision | Apache-2.0 software; dependency and operation costs separate. | High | LeapBeyond | Observed source wording; regional pricing, billing cadence, and future plan changes are not inferred. |
| Workflow | Detectors identify spans; postprocessors control replacement. | High | scrubadub maintainers | Source-qualified product description; no independent performance test was run. |
| Workflow | Optional address, spaCy and Stanford detector packages; locale configuration. | High | scrubadub maintainers | Source-qualified product description; no independent performance test was run. |
| Caveats | Extra detector dependencies are needed for some entity types. | High | scrubadub maintainers | Source-described boundary; no comparative failure-rate test was performed. |
Sources
How this was built
| Publisher | Source | Type | Accessed |
|---|---|---|---|
| OpenAI | Privacy Filter repository and CLI | Official | 2026-10-18 |
| Data Privacy Stack | Presidio overview | Official | 2026-10-18 |
| Data Privacy Stack | Presidio Anonymizer | Official | 2026-10-18 |
| LeapBeyond | scrubadub README and license | Official | 2026-10-18 |
| scrubadub maintainers | scrubadub stable documentation | Official | 2026-10-18 |
| Limina | Pricing and deployment FAQ | Official | 2026-10-18 |
| UCSF / BCHSI | Philter UCSF README | Official | 2026-10-18 |
| Gaurav Vij / GitHub | GLiNER large-v2.1 vs Privacy Filter case study | Community | 2026-10-18 |
| UCSF authors / JAMIA Open | A certified de-identification system for all clinical text documents | Review | 2026-10-18 |