Shell Scripting and macOS

If I do something on the command line more than a couple of times, I start thinking about how to stop doing it by hand. That instinct is the thread running through all of these articles. Most of them came straight out of my own workflow: a small annoyance, a few lines of shell, and a task that never needs my full attention again.

It adds up. Individually none of these scripts is impressive. Together they are the difference between a machine that works the way I think and one I am constantly fighting. The most complete version of this is my bootstrap script, which sets up an entire Mac from nothing in one command, but it started with exactly the kind of small one-off functions you will find in the first section.

Shell scripting

Reusable shell techniques: writing functions that accept named or abbreviated arguments, switching Node versions automatically per project, and batch-converting files from the command line.

macOS automation

Bending macOS to fit how I work: spacing out the Dock, hiding the desktop for screen shares, tiling windows with yabai, and automating a full machine setup with a single script.

Want to get in touch? Connect on LinkedIn or send an email .