
seemenot-pii-redaction
This skill should be used when the user asks to "redact PII from an image", "remove personal informa
seemenot PII Redaction Skill
Redact personally identifiable information (PII) from images using local OCR. No cloud APIs—everything runs locally using Tesseract.
Prerequisites
Tesseract OCR must be installed:
- macOS:
brew install tesseract - Linux (Debian/Ubuntu):
sudo apt install tesseract-ocr - Windows:
winget install UB-Mannheim.TesseractOCR
Install the CLI from GitHub:
uv tool install git+https://github.com/waldekmastykarz/seemenot
Or run without installing:
uvx --from git+https://github.com/waldekmastykarz/seemenot seemenot <image> -r <text>
Core Workflow
Basic Redaction
Redact specific text strings from an image:
seemenot <image> -r <text-to-redact> [-r <more-text>...]
Output is saved as <image>-nopii.<ext> by default.
Common Options
| Option | Short | Description |
|---|---|---|
--output | -o | Custom output path |
--redact | -r | Text to redact (repeatable) |
--exclude | -e | Text to exclude from detection (repeatable) |
--redact-style | box (default), blur, or pixelate | |
--types | Auto-detect PII types: email, ip, jwt | |
--interactive | -i | Confirm each detection before redacting |
--dry-run | Preview detections without modifying | |
--json | Output as JSON (with --dry-run) | |
--from-manifest | Apply redactions from JSON file | |
--verbose | -v | Show detection details |
Typical Tasks
Redact Specific Text
When the user specifies exact strings to redact:
seemenot screenshot.png -r "waldek" -r "mypassword" -r "secret-hostname"
Auto-Detect PII Patterns
Automatically find and redact emails, IPs, and JWTs:
# Detect all supported types
seemenot screenshot.png
# Only specific types
seemenot screenshot.png --types email,ip
# Combine with explicit redactions
seemenot screenshot.png -r waldek --types jwt
Exclude False Positives
Prevent specific text from being redacted:
seemenot screenshot.png -r waldek -e "waldek-public-repo"
Choose Redaction Style
# Black box (default)
seemenot screenshot.png -r secret --redact-style box
# Gaussian blur
seemenot screenshot.png -r secret --redact-style blur
# Pixelate
seemenot screenshot.png -r secret --redact-style pixelate
Preview Before Redacting
Dry run shows what would be detected without modifying:
seemenot screenshot.png -r waldek --dry-run -v
Interactive Review
Review each detection before redacting:
seemenot screenshot.png -r waldek -i
Manifest Workflow (Fine-Grained Control)
For complex images requiring manual review:
# 1. Generate detection manifest
seemenot screenshot.png -r waldek --dry-run --json > detections.json
# 2. Edit detections.json to remove false positives
# 3. Apply from manifest
seemenot screenshot.png --from-manifest detections.json
Execution Guidelines
- Always use absolute paths for images to avoid path resolution issues
- Preview with
--dry-runwhen uncertain about what will be detected - Use
-v(verbose) to show detection details for verification - Combine
-rand--typeswhen both explicit strings and pattern detection needed - Use
--excludefor known false positives rather than editing manifests - Prefer
--redact-style blurwhen context around redacted content should be partially visible - Prefer
--redact-style pixelatefor a less aggressive anonymization
Supported PII Types
| Type | Examples | Notes |
|---|---|---|
email | john@example.com | Standard email pattern |
ip | 192.168.1.1, 10.0.0.1:8080 | Excludes localhost 127.x.x.x |
jwt | eyJhbGciOiJ... | JSON Web Tokens |
For usernames, hostnames, API keys, or other text—use -r <text>.
Error Handling
- Exit 0: Success or no PII detected
- Exit 1: Error during detection or redaction
- Exit 2: Invalid input (e.g., unknown PII type)
Check stderr for error messages. Use -v to debug detection issues.
Example Scenarios
Clean a screenshot for documentation
seemenot docs/screenshot.png -r "john.doe@company.com" -r "192.168.1.100" -o docs/screenshot-clean.png
Anonymize terminal output
seemenot terminal.png --types email,ip -r "$(whoami)" --redact-style blur
Batch processing with manifest
# Generate, review, apply
seemenot image.png -r sensitive --dry-run --json > manifest.json
# (manually edit manifest.json)
seemenot image.png --from-manifest manifest.json -o image-safe.png