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.

None of these scripts is impressive on its own. Stacked up over a few years, they make the machine work the way I think. 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'll 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 .