← All skills
photo-metadata
80 / 100 · Low risk
Fine to try.
By jamditis/claude-skills-journalism (GitHub) · media · 452 stars · scanned at commit a6383bd
Embeds photo IPTC/EXIF/XMP metadata, caption, credit, alt text, license, AI-source label, GPS stripping, and C2PA credentials.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
The author does not mention this.
Found in 31 places.
Show 17 more
- journalism-core/skills/photo-metadata/SKILL.md, line 124
exiftool -G1 -a -jumbf:all incoming.jpg # report the C2PA/JUMBF manifest (no signature check) - journalism-core/skills/photo-metadata/SKILL.md, line 138
exiftool -gps:all= "-xmp:GPS*=" -overwrite_original photo.jpg - journalism-core/skills/photo-metadata/SKILL.md, line 149
exiftool -XMP-xmpRights:Marked=True \ - journalism-core/skills/photo-metadata/embed.py, line 310
out = subprocess.run( - journalism-core/skills/photo-metadata/embed.py, line 348
out = subprocess.run( - journalism-core/skills/photo-metadata/embed.py, line 438
result = subprocess.run(cmd, capture_output=True, text=True) - journalism-core/skills/photo-metadata/test_embed.py, line 31
out = subprocess.run( - journalism-core/skills/photo-metadata/test_embed.py, line 40
return subprocess.run([sys.executable, str(EMBED), *args], - journalism-core/skills/photo-metadata/test_embed.py, line 115
subprocess.run(["exiftool", "-overwrite_original", - journalism-core/skills/photo-metadata/test_embed.py, line 122
out = subprocess.run(["exiftool", "-G1", "-j", "-IPTC:DateCreated", - journalism-core/skills/photo-metadata/test_embed.py, line 140
out = subprocess.run( - journalism-core/skills/photo-metadata/test_embed.py, line 180
out = subprocess.run(["exiftool", "-G1", "-j", *[f"-{k}" for k in g1_keys], - journalism-core/skills/photo-metadata/test_embed.py, line 188
exif = subprocess.run(["exiftool", "-s3", "-EXIF:Artist", "-EXIF:Copyright", - journalism-core/skills/photo-metadata/test_embed.py, line 229
out = subprocess.run(["exiftool", "-s3", "-XMP-iptcExt:DigitalSourceType", - journalism-core/skills/photo-metadata/test_embed.py, line 252
out = subprocess.run(["exiftool", "-s3", "-XMP-iptcExt:DigitalSourceType", - journalism-core/skills/photo-metadata/test_embed.py, line 269
out = subprocess.run(["exiftool", "-s3", "-XMP-iptcExt:DigitalSourceType", - journalism-core/skills/photo-metadata/test_embed.py, line 289
out = subprocess.run(["exiftool", "-s3", "-XMP-iptcExt:DigitalSourceType",
and 11 more places
Downloads and installs other software
The author does not mention this.
Found in 2 places.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'photo-metadata' ] || [ -L ~/.agents/skills/'photo-metadata' ]; then echo 'A skill folder named photo-metadata already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/jamditis/claude-skills-journalism' "$d" && git -C "$d" checkout --quiet 'a6383bd0c4cb22cc04056875f4d50603489b003b' -- 'journalism-core/skills/photo-metadata' && mkdir -p ~/.agents/skills && cp -R "$d"/'journalism-core/skills/photo-metadata' ~/.agents/skills/'photo-metadata' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'photo-metadata' ~/.claude/skills/'photo-metadata' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for jamditis/claude-skills-journalism shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/jamditis/claude-skills-journalism/)
Score history
| Date | Version | Score |
|---|
| 2026-11-13 | a6383bd | 80 |
| 2026-11-07 | e1f38cb | 80 |