Skip to content
Latchkey

magick vs convert: ImageMagick 7 vs 6 in CI

On ImageMagick 7 the entry point is magick; convert still works but is deprecated, and the policy.xml path differs between v6 and v7.

CI scripts break when a runner image jumps from ImageMagick 6 to 7 (or vice versa). The command name, option ordering strictness, and config file location all changed.

What it does

ImageMagick 7 unifies the tools under one magick binary: magick input output replaces convert, and legacy names work as magick convert .... ImageMagick 7 is stricter about command-line ordering (operators must come before the output) and its config lives in a different path than v6.

Common usage

Terminal
# v7 preferred form
magick input.png -resize 50% output.png
# v7 legacy compatibility
magick convert input.png output.jpg
# v6 (and v7 deprecated alias)
convert input.png output.jpg
# check which you have
convert -version || magick -version

Options / Differences

AspectImageMagick 6ImageMagick 7
Primary commandconvert / mogrifymagick (convert deprecated)
policy.xml path/etc/ImageMagick-6/policy.xml/etc/ImageMagick-7/policy.xml
Option orderingLenientStricter (operators before output)
Default version onDebian/Ubuntu LTS, older CentOSNewer distros, Homebrew

In CI

Write scripts to magick and fall back, or detect the version first. When editing the PDF policy or resource limits, edit the path matching the installed major version; editing the v6 file on a v7 host (or vice versa) silently does nothing.

Common errors in CI

"magick: command not found" on a v6-only host means you must call convert; "convert: command not found" on a strict v7 image means you must call magick. Edits to /etc/ImageMagick-6/policy.xml that "do nothing" are usually because the host runs v7 and reads /etc/ImageMagick-7/policy.xml. A v6 script that errors with "unrecognized option" on v7 is hitting the stricter operator ordering; move operators before the output filename.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →