seemenot-pii-redaction
This skill should be used when the user asks to "redact PII from an image", "remove personal information from a screenshot", "blur sensitive data in an image", "hide emails/IPs in a screenshot", "anonymize an image", "mask usernames in a screenshot", or mentions redacting text, credentials, or private information from images.
SKILL.md
| Name | seemenot-pii-redaction |
| Description | This skill should be used when the user asks to "redact PII from an image", "remove personal information from a screenshot", "blur sensitive data in an image", "hide emails/IPs in a screenshot", "anonymize an image", "mask usernames in a screenshot", or mentions redacting text, credentials, or private information from images. |
name: seemenot PII Redaction description: This skill should be used when the user asks to "redact PII from an image", "remove personal information from a screenshot", "blur sensitive data in an image", "hide emails/IPs in a screenshot", "anonymize an image", "mask usernames in a screenshot", or mentions redacting text, credentials, or private information from images. version: 1.0.0
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