Skills · Publisher repository

xxd-strip-ai-meta

An Agent Skill and standalone Python CLI that uses ExifTool to batch-remove supported C2PA, Content Credentials, OpenAI/gpt-image provenance, and common EXIF, XMP, IPTC, comment, and software metadata while preserving pixel data, ICC color profiles, and modification times by default.

28 StarsMITPythonUpdated today
01

Project overview

xxd-strip-ai-meta is an Agent Skill and Python CLI for local image files. It hands selected paths to ExifTool to batch-remove supported C2PA, Content Credentials, OpenAI/gpt-image provenance, and common EXIF, XMP, IPTC, comment, and software metadata. The script avoids pixel decoding or re-encoding and preserves ICC color profiles and modification times by default. It is intended for privacy, internal processing, and metadata hygiene on images you are authorized to modify. It should not be used to misrepresent origin and is not a universal AI-watermark remover.

02

Core capabilities

01

Local batch discovery and deduplication

Accepts one or more local files or directories, recursively discovers supported formats, skips hidden and common cache directories, and resolves overlapping inputs into deduplicated absolute paths.

02

Metadata removal without pixel re-encoding

Uses ExifTool -all= while excluding ICC profiles by default and preserving file modification time with -P. Exact format support depends on ExifTool.

03

Preview, backup, and failure isolation

--dry-run only lists files, --backup keeps ExifTool originals, and a failed batch is retried per file so one bad input does not mark the whole batch as failed.

04

Concurrent and background execution

The script uses bounded chunks and ExifTool argument files with five concurrent batches by default. Background mode prints ready-to-use stop, follow, and status commands.

05

Post-clean keyword verification

After cleanup, the script reads metadata again and matches a defined set of provenance-related keywords. This is a limited heuristic check, not universal watermark detection.

03

Installation and usage

Install Python 3.10+, Git, and ExifTool, then clone the repository into an agent Skill directory or a normal working directory. Start with a nonsensitive test copy, run dry-run first, and use --backup for the first cleanup.

AI AGENT INSTALL

Let an AI Agent install it

Send this prompt to Codex, Claude Code, or another AI agent that can work with your local environment.

Help me install and minimally verify the xxd-strip-ai-meta image metadata cleanup Agent Skill from https://github.com/nevertoday/xxd-strip-ai-meta. Read README.md, SKILL.md, scripts/clean_image_provenance.py, tests/test_cleanup.py, and LICENSE first. Confirm the current OS, shell, Python version, ExifTool availability, and the target agent's Skill directory. Ask before installing ExifTool, requesting administrator privileges, changing PATH, replacing an existing Skill directory, or writing to a user-global location. Clone the documented repository, then use only a nonsensitive test-image copy that I explicitly authorize. Run --dry-run first and --backup for cleanup; do not disable verification, delete backups, or modify original production assets. Report the script path, Python and ExifTool versions, exact commands, exit codes, backup location, and any residual markers. Ask before credentials, additional permissions, overwriting files, or any risky action.
01Before you start
  • Python 3.10+ and Git
  • ExifTool available on PATH; the README's macOS command is brew install exiftool
  • An agent host that supports SKILL.md or a terminal that can run the Python script directly
  • Authorization to read, modify, and remove metadata from the selected images
  • A nonsensitive test-image copy and enough space for backups
02Copy the install command or configuration
git clone https://github.com/nevertoday/xxd-strip-ai-meta.git ~/.claude/skills/xxd-strip-ai-meta
03Complete the setup steps
  1. 1
    Install dependencies and check versions

    Confirm `python3 --version` is 3.10 or newer and run `exiftool -ver`. The README documents `brew install exiftool` for macOS and `sudo apt install libimage-exiftool-perl` for Debian or Ubuntu.

  2. 2
    Clone the Skill

    The Claude Code example is `git clone https://github.com/nevertoday/xxd-strip-ai-meta.git ~/.claude/skills/xxd-strip-ai-meta`. For other hosts, confirm the correct Skill directory first and back up any existing directory with the same name.

  3. 3
    Preview selected files

    From the repository root, run `python3 scripts/clean_image_provenance.py /path/to/images --dry-run`. Review every listed path to ensure the selection is authorized and excludes production originals.

  4. 4
    Clean while retaining backups

    Run `python3 scripts/clean_image_provenance.py /path/to/images --backup` on test copies. The script retains *_original files and scans for provenance-related keywords after cleanup.

  5. 5
    Inspect exit codes and logs

    Exit code 0 means no failure or residual was reported, but can also mean no images were found. Code 1 indicates cleanup failure and code 2 indicates residual markers. Also inspect missing, skip, Cleaned, and residual-marker messages.

How to verify the setup

Run `python3 --version` and `exiftool -ver`, then execute `python3 scripts/clean_image_provenance.py /path/to/test-image --dry-run` and confirm only the intended file is listed. Run the same path with `--backup`. Success means exit code 0, a Cleaned result with no residual-marker report, and a retained *_original backup.

Before using it
  • The default behavior modifies originals in place; explicitly use --backup or work only on copies for the first run
  • --drop-color-profile can affect appearance and should be enabled only when required
  • --no-verify skips residual-keyword scanning and is unsuitable for initial verification
  • Keep the stop, follow, and status commands printed by every background run
  • Use metadata stripping for privacy, internal processing, or hygiene, not to misrepresent image origin
  • The repository has no explanatory screenshots or diagrams, so this page intentionally uses no decorative media
04

Use cases

SCENARIO 01

Remove private metadata before publishing

Remove unneeded camera, software, comment, and provenance-path metadata from your own images while retaining pixels and the default color profile.

SCENARIO 02

Internal media metadata hygiene

Apply a consistent cleanup process to an authorized asset directory with dry-run, backups, and logs that can be reviewed afterward.

SCENARIO 03

Agent-driven image preprocessing

Let a SKILL.md-compatible agent prepare dependencies, resolve local paths, run the script, and report exit codes and residuals while asking before installation or overwrite operations.

SCENARIO 04

Large local directory processing

Use bounded chunks, concurrency, and background logs for large image sets while retaining stop, follow, and status controls.

05

Assessment

README.md, SKILL.md, the script, and the test show a restrained wrapper around ExifTool's broad deletion capability: ICC profiles and modification times are preserved by default, while dry-run, backups, per-file failure isolation, and residual scanning are built into the workflow. The cautions are equally important. Files are modified in place by default, verification is only a keyword scan, and the project is extremely new with one commit and one test. This assessment is based on public code and read-only checks; ExifTool was not installed and no real image was cleaned.

Why it may be useful

  • README, Skill rules, implementation, and test are concentrated in a small, reviewable repository
  • Pixel data is not re-encoded, and ICC profiles plus modification times are preserved by default
  • Dry-run, backups, failure isolation, background logs, and exit codes cover common batch-operation needs
  • The documentation rejects universal watermark-removal claims and warns against misrepresenting origin
  • The MIT license is clear and there are no third-party Python package dependencies

What to know first

  • In-place modification is risky unless users deliberately start with copies or --backup
  • Verification only matches a known list of provenance keywords and can miss other residuals
  • Format support and metadata-removal results depend on the external ExifTool version and the file
  • The repository is newly created with one commit and no release, so long-term maintenance is unproven
  • ExifTool was not installed during review, so real-image behavior and the unit test were not executed
06

README

xxd-strip-ai-meta


Overview

An Agent Skill and standalone Python CLI that uses ExifTool to batch-remove supported C2PA, Content Credentials, OpenAI/gpt-image provenance, and common EXIF, XMP, IPTC, comment, and software metadata while preserving pixel data, ICC color profiles, and modification times by default. Batch-remove AI provenance and image metadata with ExifTool. CLI + Agent Skill, preserving pixel data.

Getting started

  • Install Python 3.10+, Git, and ExifTool, then clone the repository into an agent Skill directory or a normal working directory. Start with a nonsensitive test copy, run dry-run first, and use --backup for the first cleanup.
  • The project can run as a standalone CLI or be placed in a compatible agent's Skill directory. The root SKILL.md defines dependency setup, cleanup workflow, and safety boundaries.
  • It recursively finds PNG, JPEG, WebP, TIFF, HEIC, HEIF, and AVIF files, accepts mixed file and directory inputs, and deduplicates overlapping paths.
  • Run `python3 --version` and `exiftool -ver`, then execute `python3 scripts/clean_image_provenance.py /path/to/test-image --dry-run` and confirm only the intended file is listed. Run the same path with `--backup`. Success means exit code 0, a Cleaned result with no residual-marker report, and a retained *_original backup.

Configuration

git clone https://github.com/nevertoday/xxd-strip-ai-meta.git ~/.claude/skills/xxd-strip-ai-meta
Read the complete README on GitHub