A Quick and Dirty List of Shell-Scriptable Tools You'll Rarely Ever Need

…and indicate you should’ve used Python

jq - JSON processing as a CLI

Grepping and cutting within minified JSON APIs is…not fun, to say the least. What if you had a way to parse it properly? jq lets you do just that — and everything else you could possibly want to do to arbitrary structured data — by either vibe coding with your LLM of choice, querying a search engine you still haven’t decided on, or by reading the man page, like a nerd.

XMLStarlet - Doing absolutely everything you can imagine to well-formed XML

Similarly to jq, xmlstarlet also deals with structured data — Because apparently we can’t agree on a one-size-fits all standard.

Aside from escaping and unescaping streamed data, it can also edit, beautify (format, as it calls it), extract data from, list the filesystem as, canonicalize — an euphemism for ‘fix your weird misuses of insignificant whitespace’ — validate and do magic on pretty much arbitrary XML, as long as it’s valid…enough.

zopflipng - For when you have too much time and a high-fidelity scan

Don’t you just hate when you have to downscale the document you scanned at 1200dpi — for no reason at all — to something sane because it’s over five megabytes? Then zopflipng can’t help you, unless you actually have way, way too much time on your hands. If you don’t, it’s still useful for shaving off a few bits from lower-resolution icons. (Of course, you can still waste time by spamming -m enough times.)

ImageMagick/Graphicsmagick - when GIMP is too heavy

Two related tools for image conversion and procedural(?) editing. gm is slightly less powerful but should be nicer on licensing, while magick is the upstream and has a less stable interface. Use what you prefer, or use neither.

I primarily use it for when I need to operate on a ton of images — mogrify is your friend, although nowadays it should be invoked as (magick|gm) mogrify — I’m sure they’re not deprecating the legacy variant any time soon, though, too much breakage.