Secure, client-side image redaction powered by OCR.
All processing happens 100% in your browser. Your images never touch a server.
- π Automatic Detection - Finds emails, IP addresses, credit cards, and API keys
- π― Precise Redaction - Uses OCR word-level bounding boxes for accurate redaction
- π Privacy First - Everything runs locally via Tesseract.js
- π¦ Batch Processing - Process unlimited images at once
- β‘ ZIP Download - Download all redacted files in one click
# Option 1: NPM (Local Dev)
npm install
npm run dev
# Option 2: Docker (Easiest)
docker run -p 8080:8080 karantdev/autoredact:latest
# Option 3: Docker Compose
docker compose up -dOpen http://localhost:5173 and drop your images.
AutoRedact now supports a fully offline CLI mode using the same powerful engine. (jpg and png support only, for now. PDF support incoming)
# Process a single image
npm run cli -- input.jpg
# Disable specific redactors
npm run cli -- input.jpg --no-emails --no-ips
# Use custom rules
npm run cli -- input.jpg --block-words "Confidential" --custom-regex "Project-\d+"| Type | Pattern |
|---|---|
| π§ Emails | user@example.com |
| π IPs | 192.168.1.1 |
| π³ Credit Cards | 4242-4242-4242-4242 |
| π API Keys | Stripe, GitHub, AWS |
- React + Vite + TypeScript
- Tesseract.js v6 (OCR)
- JSZip (batch exports)
- Tailwind CSS
src/
βββ adapters/ # Interface implementations (Browser/Node)
βββ components/ # UI Components
βββ core/ # Pure Logic (Regex, Math, Image Proc)
βββ hooks/ # Custom Hooks
βββ utils/ # Helpers
βββ types/ # TS Interfaces
βββ cli.ts # CLI Entry Point
βββ App.tsx # Main Entry
GNU General Public License v3.0
The CLI processes one file at a time. Use a shell loop to process entire folders:
# Process all JPGs in 'input' dir and save to 'output' dir
mkdir -p output
for f in input/*.jpg; do
npm run cli -- "$f" -o "output/$(basename "$f")"
doneEnable strict blocking for sensitive documents:
npm run cli -- invoice.jpg \
--block-words "Confidential,SSN,Account" \
--custom-regex "(?i)account\s*#?\s*\d+" \
--no-ips # Disable IP scanner if irrelevant to boost speedPrevent redaction of known internal terms or headers:
npm run cli -- internal-doc.jpg \
--allowlist "CorpCorp,192.168.1.1,ProjectX"The Docker API runs on port 3000 by default. It uses standard detection settings (Emails, IPs, Keys, PII) by default, but is fully configurable via the settings parameter.
π View Full API Documentation for detailed usage, schema, and Python/Node.js examples.
curl -X POST http://localhost:3000/redact \
-F "image=@/path/to/doc.jpg" \
-o redacted.png