Will Keleher spent the first few years of his career unable to tell his computer to do anything: no sequencing, no conditionals, no loops, no pipelines. He ran commands one at a time and treated the terminal as the world’s worst GUI. This essay is what changed, and it is not really about syntax.

The list of things he couldn’t do is a good checklist for the gap:

  • Do one thing, then do another
  • Log an error when a command fails
  • Start a program at boot
  • Run two commands at the same time
  • Loop over every file in a directory
  • Feed one command’s output into the next

His first working script — set +e, capture $?, set -e — was wrong, and it was still transformational. The footnote fixes it in one line: if’s main mode is taking commands, so [[ is just a command and the check collapses to if ! npm install; then.

The central claim is that shell skill is 20% syntax and 80% having a good toolbox, and that this is why tutorials aimed at syntax mostly fail. Each program you actually know multiplies against every other one: fzf for interactive fuzzy selection (his example: git checkout $(git branch --sort=-committerdate | fzf)), xargs for parallel work you build up incrementally, rsync to ship changes to a faster machine and run the heavy job there, sed -i or ast-grep for bulk rewrites, direnv for per-codebase environments, duckdb for SQL over local CSV and JSON inside a larger script.

He is careful not to overclaim. Shell is more ergonomic when you’re gluing two programs together; the moment you want real data types and logic, pick a language that represents and tests them. And rewriting someone else’s shell script in Python doesn’t help if you never learned how the stitched-together programs behave — that’s why he thinks most build-script complaints are made by people who haven’t actually tried the conversion.

The quiet organisational point underneath: a lot of load-bearing build, deploy and validation logic is shell, and engineers who only drive it through a GUI can tell remote servers how to behave but not their own laptop. That’s a maintenance risk wearing a craft-essay costume.