imagemagick-skill@0.10.0
VERIFIED· startup onlyPublisher claims: "Agent Skill that gives coding agents (Claude Code, Cursor, Codex) a local ImageMagick image editor that never overwrites originals: probe, convert, resize, thumbnail, EXIF/GPS strip, trim, check. Formerly image-skill." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Startup only; authenticated tool behavior not tested.- Tested
- server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
- Not tested
- the tool list (the server exited before answering) · what the tools do when called with real credentials
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-14 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 20 s · 2 scenarios · 0 deviationsStatic findings
"""Start the child as the leader of a new process group, so a timeout can killFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.except subprocess.TimeoutExpired: # a pipe still held open by something the kill missedFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.policy = subprocess.run([magick, "-list", "policy"], capture_output=True, text=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen(cmd, stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.PIPE,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen(cmd, stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.PIPE,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out."the libheif decoder plugin is missing (Debian/Ubuntu: `sudo apt install libheif-plugin-libde265`)"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.formats = subprocess.run([magick, "-list", "format"], capture_output=True, text=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc.kill() # the direct child, in case the group kill did not reach itFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.version = subprocess.run([magick, "-version"], capture_output=True, text=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([_taskkill(), "/T", "/F", "/PID", str(proc.pid)], capture_output=True, timeout=10)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(magick_argv([magick, "identify", "-format", "%m", path]),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.npx imagemagick-skill contract --jsonFix: Pin versions and sources; vendor anything fetched at install time.console.warn(" Debian/Ubuntu: sudo apt install imagemagick");Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.console.warn(" Then check: npx imagemagick-skill doctor");Fix: Pin versions and sources; vendor anything fetched at install time.subprocess.run(magick_argv([magick, "-size", "16x16", "xc:#808080", path]),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.out = subprocess.run([path, "-version"], capture_output=True, text=True, timeout=10).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.const USAGE = `usage: npx imagemagick-skill [target] [--uninstall]Fix: Pin versions and sources; vendor anything fetched at install time.npx imagemagick-skill doctor [--json]Fix: Pin versions and sources; vendor anything fetched at install time.npx imagemagick-skill --helpFix: Pin versions and sources; vendor anything fetched at install time.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for imagemagick-skill@0.10.0 as of 47 min ago. This is the package itself, not its dependencies.