Image Metadata Cleaner
by @aiwork4me
Clean privacy-sensitive metadata (C2PA, EXIF, XMP, IPTC, GPS) from user-owned images by writing sanitized copies. For privacy hygiene and file preparation.
clawhub install image-metadata-cleanerπ About This Skill
name: image-metadata-cleaner slug: image-metadata-cleaner version: "1.0.1" description: "Clean privacy-sensitive metadata (C2PA, EXIF, XMP, IPTC, GPS) from user-owned images by writing sanitized copies. For privacy hygiene and file preparation." os: ["windows", "macos", "linux"]
Image Metadata Cleaner
Clean privacy-sensitive metadata from user-owned images by writing sanitized copies. Designed for legitimate privacy hygiene, file preparation, and reproducible publishing workflows.
Use only for: images you own or are authorized to process, for privacy protection, file-size optimization, and clean publishing.
What it does
metadata-cleaned/ subdirectoryUsage
Single file
User: clean metadata from this image: photo.png
User: remove EXIF data from IMG_2024.jpg
Folder batch
User: clean metadata from all images in "C:\Users\me\Downloads"
User: remove privacy data from /path/to/folder
Steps
1. Confirm the task is for privacy hygiene on images the user owns or is authorized to process.
2. Preview with dry-run (optional):
uv run --with "pillow>=10.0" scripts/strip.py "" --dry-run
3. Run the cleanup:
uv run --with "pillow>=10.0" scripts/strip.py "" --manifest
Options:
- -o β Output file path (single file only)
- --output-dir β Output directory (batch mode)
- -f preserve|jpg|png β Output format (default: preserve β JPEG stays JPEG, others become PNG)
- -q <1-100> β JPEG quality (default: 95)
- --recursive β Process subdirectories
- --overwrite β Overwrite existing output (only after user confirmation)
- --dry-run β Preview without writing files
- --manifest [path] β Write JSON manifest
If uv is not available:
pip install "pillow>=10.0" && python scripts/strip.py "" --manifest
4. Report results: - Files processed, failed, or dry-run previewed - Output filenames and location - File size before β after - Dimensions preserved - Verification scan results (any residual metadata keys or provenance markers)
Note: this removes file-level metadata only. Pixel-level watermarks and external platform records are outside the scope.
Error Handling
| Error | Cause | Fix |
|-------|-------|-----|
| "No supported image files found" | Folder has no matching extensions | Check input path and file types |
| "Output already exists" | Explicit output path exists | Use --overwrite after user confirmation |
| "Refusing to overwrite input file" | Output path = input path | Choose a different output path |
| "Unsupported image extension" | File extension not in supported list | Use PNG, JPEG, WebP, BMP, or TIFF |
| "cannot identify image file" | Corrupted or non-image file | Skip and continue with other files |
| Pillow ImportError | Missing dependency | Run pip install "pillow>=10.0" |
What gets removed
| Metadata Type | Notes | |---|---| | EXIF | Camera, GPS, device tags. Orientation applied before saving. | | XMP | Adobe and application metadata | | IPTC/Photoshop | Press and photo metadata | | ICC Profile | Color profile (not copied to output) | | C2PA/JUMBF | Provenance containers removed by re-encoding |
Output behavior
preserve β JPEG inputs stay JPEG, others written as PNG{name}-clean.{ext} (e.g., photo-clean.png)metadata-cleaned/ subdirectorySupported inputs
.png, .jpg, .jpeg, .webp, .bmp, .tiff, .tif
Known limitations
π‘ Examples
Single file
User: clean metadata from this image: photo.png
User: remove EXIF data from IMG_2024.jpg
Folder batch
User: clean metadata from all images in "C:\Users\me\Downloads"
User: remove privacy data from /path/to/folder