imagemagick
Edit and convert images with the ImageMagick `magick` CLI — resize, crop, convert format, compress, rotate, montage, annotate. Use for any still-image transformation.
git clone --depth 1 https://github.com/AtomicBot-ai/atomic-agent /tmp/imagemagick && cp -r /tmp/imagemagick/starter-skills/imagemagick ~/.claude/skills/imagemagickSKILL.md
# imagemagick
Transform still images with [ImageMagick](https://imagemagick.org/) v7
(`magick` command). Pairs well with `vision.describe` — describe an image to
decide what to do, then operate on it here. Always write to a new output file.
> ImageMagick v7 uses `magick in.png out.jpg`. Legacy v6 uses `convert`; if only
> `convert` exists, substitute it for `magick` in the examples below.
## Setup health check (run first, every session)
Verify with **one solo step**:
```
[{ "tool": "os.shell.run", "args": { "cmd": "magick", "args": ["--version"] } }]
```
Outcome map:
- `exit 0` + `Version: ImageMagick 7…` → ready, proceed.
- `command not found: magick` → try `convert --version` (v6); if also missing →
enter **Setup playbook → "imagemagick missing"**.
## Setup playbook (when prerequisites are missing)
### imagemagick missing
Reply (solo `reply` step):
> "ImageMagick is not installed. I can install it: `brew install imagemagick`. Install it?"
On yes:
```
[{ "tool": "os.shell.run", "args": { "cmd": "brew", "args": ["install", "imagemagick"] } }]
```
On Linux: `apt-get install imagemagick`.
## When to use
- "Resize / crop / rotate this image", "convert PNG to JPG / WebP".
- "Compress this image", "make a thumbnail", "combine images into a montage".
- "Add a text caption / watermark to this image".
## When NOT to use
- Understanding image *content* — use `vision.describe` instead.
- Video frames / animation encoding — use the `ffmpeg` skill.
- Multi-page PDF assembly from images — use the `pdf` skill (`magick` can make a
PDF but page-level control lives in `pdf`).
## Common operations
All examples invoke `os.shell.run` with `cmd: "magick"`. The approval gate
surfaces each write.
| Goal | args |
|---|---|
| Inspect dimensions/format | `["identify", "in.png"]` |
| Convert PNG → JPG | `["in.png", "out.jpg"]` |
| Convert → WebP | `["in.png", "-quality", "82", "out.webp"]` |
| Resize to 800px wide | `["in.jpg", "-resize", "800x", "out.jpg"]` |
| Thumbnail (fit 200x200) | `["in.jpg", "-thumbnail", "200x200", "thumb.jpg"]` |
| Crop 300x300 from 10,10 | `["in.png", "-crop", "300x300+10+10", "+repage", "crop.png"]` |
| Rotate 90° | `["in.jpg", "-rotate", "90", "rot.jpg"]` |
| Compress JPG quality 75 | `["in.jpg", "-quality", "75", "small.jpg"]` |
| Montage 2x2 grid | `["montage", "a.png", "b.png", "c.png", "d.png", "-tile", "2x2", "-geometry", "+4+4", "grid.png"]` |
| Add caption | `["in.jpg", "-pointsize", "36", "-annotate", "+20+40", "Hello", "out.jpg"]` |
## Rules
1. Always write to a NEW output path; never overwrite the source image.
2. Use `magick identify` first to learn dimensions/format before transforming.
3. After a transform, optionally `vision.describe` the result to confirm it
matches the user's intent for visual tasks.
4. Echo the output path and final dimensions after each operation.Read macOS Calendar events via the `icalBuddy` CLI and create events via AppleScript (osascript). Use to check the user's calendar, agenda, upcoming events, or add an event on macOS.
Manage Apple Notes via the `memo` CLI on macOS — create, view, search, edit, export.
Manage Apple Reminders via the `remindctl` CLI on macOS — list, add, complete, delete, manage lists.
Transcribe speech from audio files (mp3, m4a, wav, ogg, flac, webm) to text using the local `whisper` CLI — no API key. Use whenever a task hinges on the spoken content of an audio attachment.
Currency exchange rates and conversion via the Frankfurter API (no key). Use for FX rates, "convert X to Y", or historical/time-series rates.
Manage Docker containers, images, volumes, and Compose stacks via the `docker` CLI — list, inspect, logs, run, build, stop, remove, compose up/down. Use for local container ops.
Process audio and video with the `ffmpeg` / `ffprobe` CLIs — convert, trim, extract audio, resize, change format, make GIFs, inspect media. Use for any audio/video transformation.
Drive GitHub via the official `gh` CLI — repos, issues, pull requests, releases, gists, Actions runs, and raw REST through `gh api`. Use when the user asks to inspect or manage GitHub.