Choose the automation
Choose the smallest tool
Select Shortcuts, a shell script, AppleScript, or launchd according to the boundary the task actually crosses.
10 minute lesson
macOS gives you several automation tools, and they overlap. The mistake I see most often is reaching for the most powerful tool available. Pick the smallest one that crosses the boundary your task actually crosses.
The four main options
Use Shortcuts when the workflow connects supported app actions and benefits from Finder, Share Sheet, or keyboard triggers. It is the friendliest place to glue app features together, and the only option here that also runs on iPhone and iPad.
Use a shell script for files, text, commands, and reliable non-interactive work. If the task is “take these files, transform them, put them there”, a script in ~/bin is usually the whole answer.
Use AppleScript when a scriptable application exposes the operation through Apple events. That is the sanctioned way to ask Finder, Mail, or Notes to do something app-specific from the outside.
Use launchd when the question is when, not what: start a command at login, on a schedule, or when a watched path changes. launchd starts things. It does not transform data.
A quick decision test
Ask what boundary the task crosses:
only files and text -> shell script
needs actions inside an app -> AppleScript, or a Shortcuts action
needs a Finder or hotkey trigger -> Shortcuts wrapping the script
needs to run unattended -> launchd starting the script
These compose. A common shape in this course: a shell script does the work, a Shortcut triggers it from Finder, and a LaunchAgent runs the same script on a schedule. Each tool stays in its lane.
The tool to avoid
Do not begin with UI clicking. UI automation simulates a user moving through windows and menus, so it is fragile and requires powerful Accessibility permission. It breaks when a button moves, a label changes, or an unexpected dialog appears. Reach for it last, after every other interface has failed you. A later lesson covers how to contain it when you truly have no choice.
One warning sign that you picked wrong: friction. If your Shortcut has become one giant “Run Shell Script” action, the task wanted a script. If your script is mostly osascript calls, the task wanted AppleScript from the start.
Lesson completed