Skip to content
SPECIFICTION
Get listed

BleachPDF

github.com

Free plan Open source macOSLinuxSelf-hosted
Visit github.com
Spec score 8.8 #2 of 27 in Document Redaction Software

What it is

BleachPDF is a free desktop utility for Linux and macOS that redacts sensitive information from PDF files, including scanned pages. It converts each page into an image, applies OCR to locate text you specify, covers matches with black boxes, and writes a new PDF. The resulting file contains images only, so it has no hidden text layer that could reveal redacted wording through copying and pasting. Matching can use exact text or more complex patterns, including case-insensitive rules and digit patterns. Its command line accepts a folder or file pattern for batch processing. After redaction, BleachPDF rescans the output; if matching text is still exposed, verification fails and processing stops. It runs locally without uploading documents. Installation uses pip and requires Tesseract, with OCR language selection such as eng or eng+kor. Handwriting, unusual fonts, poor scans, and tiny dense text can cause recognition errors, so manual checking is advised.

Spec sheet

What it does
BleachPDF is a command-line utility that blacks out sensitive information in PDF files.Read 15 Oct 2026 · github.com
Purpose
BleachPDF blacks out sensitive information in PDF files, including scanned documents.Read 3 Oct 2026 · github.com
Privacy
The README says it runs on the user's computer and does not upload documents.Read 3 Oct 2026 · github.com
License
The package is licensed as GNU AGPL-3.0-or-later and is classified as OSI-approved AGPLv3+.Read 15 Oct 2026 · github.com
Maker
The README identifies the author as John Byrd.Read 3 Oct 2026 · github.com
Batch processing
The CLI accepts folders and glob patterns to process multiple PDF files.Read 15 Oct 2026 · github.com
Benchmark testing
The project says its tests use Allen Institute for AI's olmOCR-bench and rescan outputs to check that redacted text is hidden.Read 15 Oct 2026 · github.com
Case-insensitive matching
Pattern syntax supports case-insensitive literals using the i modifier.Read 15 Oct 2026 · github.com
Configuration files
Configuration can be selected explicitly, through BLEACHPDF_CONFIG, or from user and system configuration locations.Read 15 Oct 2026 · github.com
Dependencies
Declared dependencies include pytesseract, Pillow, ReportLab, PyMuPDF, PyYAML, parsimonious, platformdirs, and psutil.Read 15 Oct 2026 · github.com
Developer interface
The package exposes a bleachpdf console-script entry point calling bleachpdf:main.Read 15 Oct 2026 · github.com
Digit and letter patterns
The pattern language can match arbitrary digits or letters, such as nine-digit or ten-digit sequences.Read 15 Oct 2026 · github.com
Exact matching
Users can supply literal strings with the -m or --match command-line option.Read 15 Oct 2026 · github.com
Exit statuses
The CLI documents distinct codes for configuration errors, file errors, no matches, and verification failures.Read 15 Oct 2026 · github.com
External benchmark details
The olmOCR-bench dataset page identifies it as an Allen Institute for AI benchmark with 1K to 10K document examples and English-language data.Read 15 Oct 2026 · huggingface.co
Image-only output
The resulting PDF contains page images without a hidden text layer that could expose redacted text through copying.Read 15 Oct 2026 · github.com
Installation dependency
Installation requires the Tesseract OCR engine, with Ubuntu/Debian and macOS setup commands documented.Read 15 Oct 2026 · github.com
Language support
The OCR language can be selected with --lang, with examples including eng and eng+kor.Read 3 Oct 2026 · github.com
Limit: censorship restriction
The accompanying license states that permission is not granted to use the software for censorship as defined in the license text.Read 15 Oct 2026 · github.com
Limit: manual checking
The author says users must inspect results themselves because automated redaction is not perfectly reliable and may over-redact.Read 15 Oct 2026 · github.com
Limit: OCR accuracy
The README warns that handwriting, unusual fonts, poor scans, and very small or dense text can be misrecognized.Read 15 Oct 2026 · github.com
Limitations
Handwriting, unusual fonts, low-quality scans, and very small or dense text can cause recognition errors, so the README advises checking output manually.Read 3 Oct 2026 · github.com
Local privacy
The README says processing occurs on the user's computer without uploads, accounts, or subscriptions.Read 15 Oct 2026 · github.com
Maker platform claim
John Byrd stated that the tool works on both vector PDFs and scanned PDFs.Read 15 Oct 2026 · linkedin.com
Maker statement
John Byrd described BleachPDF on LinkedIn as a Python command-line tool for removing PII such as Social Security and bank-account numbers from PDFs.Read 15 Oct 2026 · linkedin.com
Maker testing claim
John Byrd said he ran the tool on tax returns and bank statements and found it cleaned them successfully.Read 15 Oct 2026 · linkedin.com
Notable update: language support
A February 3, 2026 commit added multilingual OCR support through the --lang option.Read 15 Oct 2026 · github.com
Notable update: parallelism
A repository commit added parallel processing intended to speed redaction.Read 15 Oct 2026 · github.com
Notable update: verification
A repository commit added post-redaction verification and improved command-line user experience.Read 15 Oct 2026 · github.com
OCR controls
Users can set output location, DPI, OCR languages, worker count, verbosity, and relaxed matching behavior.Read 15 Oct 2026 · github.com
OCR workflow
The tool converts pages to images, applies OCR, matches configured text, draws black boxes, and creates a replacement PDF.Read 15 Oct 2026 · github.com
Output
The output PDF contains images only, without a hidden text layer that could expose redacted text through copying and pasting.Read 3 Oct 2026 · github.com
Package installation
The documented package installation command is pip install bleachpdf.Read 15 Oct 2026 · github.com
Pattern composition
Patterns can combine fixed text with reusable subpatterns and repetition using the plus operator.Read 15 Oct 2026 · github.com
Patterns
Users can specify exact text or configure more complex patterns, including case-insensitive matches and digit patterns.Read 3 Oct 2026 · github.com
Repository classification
GitHub's redact topic page lists johnwbyrd/bleachpdf as a Python repository updated February 3, 2026.Read 15 Oct 2026 · github.com
Repository topics
GitHub labels the repository with PDF, OCR, AI, markup, Adobe, redact, blackline, and blackllist topics.Read 15 Oct 2026 · github.com
Runtime requirement
The package metadata requires Python 3.9 or newer.Read 15 Oct 2026 · github.com
Scanned PDF support
It processes scanned PDFs as well as PDFs containing digital text.Read 15 Oct 2026 · github.com
Strict mode
By default, no matches are treated as an error; --relaxed changes that case to a warning.Read 15 Oct 2026 · github.com
Support and documentation
Usage, pattern syntax, configuration locations, options, exit codes, limitations, and development instructions are documented in the repository README.Read 15 Oct 2026 · github.com
Testing tools
Development extras include pytest, pytest-xdist, Ruff, and Hugging Face Hub tooling; pytest is configured for automatic parallel workers.Read 15 Oct 2026 · github.com
Text normalization
Matching removes spaces, dashes, and punctuation before comparison.Read 15 Oct 2026 · github.com
Verification
A post-redaction scan checks whether matched text remains visible, and verification failure returns exit code 4.Read 15 Oct 2026 · github.com

Plans and prices

BleachPDF Free No subscriptions · no accounts · local processing Read 15 Oct 2026 · github.com

Every BleachPDF plan and price →

Strong points and limits

Strong points

  • Free plan with no subscription
  • Processes scanned PDFs through OCR
  • Batch redaction from folders or patterns
  • Output has no hidden text layer
  • Verification failure stops processing

Limits

  • Requires pip installation and Tesseract
  • OCR may miss handwriting or poor scans
  • Manual checking is advised for recognition errors
  • AGPL license restricts censorship use

Who it suits

BleachPDF suits Linux or macOS users who need local, automated PDF redaction, including batch work and scanned documents. It is useful when keeping documents off external servers matters.

Verdict

BleachPDF combines OCR redaction, batch processing, and a local-only workflow in a free desktop package. Its recognition limits mean every output should be reviewed manually.

Where Specifiction places it

Alternatives to BleachPDFAll alternatives →