Automation for the Rest of Us
“The power of the computer should reside in the hands of the one using it.” — Sal Soghoian
“It’s very empowering to give somebody that ability to suddenly change the way they work and enable them to do great, complex things to grow their business.” — Sal Soghoian
Apple ships an extraordinary automation stack — AppleScript, Automator, Shortcuts, App Intents, JXA, ASObjC, sdef, NSUserScriptTask, Vocal Shortcuts, Apple Foundation Models — and almost no one outside the power-user circle knows how to wire it together. This site (and the esaruoho/apple repo behind it) is the working pattern book: every layer, every trigger surface, every recipe, in one place, runnable today.
Start here: Trigger surfaces · Eleven-tier atlas · Sal corpus · Trigger→worker chassis · ASObjC · Finder-tag pipeline · Spotlight · WWSD · Automator vs Shortcuts
One verb. One result. Local first. The Mac doing what the Mac is already capable of, without a roundtrip across the world to fetch a value it already holds.
Ask Siri on a HomePod Mini “what’s the temperature in this room?” or “how humid is it in here?” and watch the query travel to Apple’s servers, get transcribed, get processed, and come back as outside weather from your nearest WeatherKit-tracked city — sometimes wrong, sometimes “I don’t know what you mean,” always a cloud roundtrip. The HomePod Mini has a built-in thermo-hygrometer. The sensor is in the same room as you. Siri won’t surface its reading by voice; Apple routes the query to the cloud instead. So this repo built the HomePod climate-sensor pipeline — a 15-minute HomeKit-Shortcut poll (shortcuts run "HomePod Sensors") calibrated against a professional olosuhdemittaus instrument (HomePod reads 0.45 °C and 4.5 % low — both deltas now corrected), writing JSONL into Syncthing-mirrored storage so any Mac on the share reads identical live numbers. Zero cloud roundtrip. The data was already there. Siri on the Mac does the same outside-weather thing for the same query. Meanwhile, Sal Soghoian’s WWDC 2016 Session 717 — Beyond Dictation: Enhanced Voice Control for macOS Apps (33 minutes, recovered from archive.org after Apple pulled it a week after he gave it — four months before his position was eliminated) demonstrated on-stage, in 2016, voice-controlled Mac automation that resolved entirely on-device, zero roundtrip, with user-author Shortcuts as the dispatch layer. That was ten years ago. The architecture worked. The Mac was ready. What’s up, Apple? (Full 524-line transcript and line-by-line analysis in the repo. Vocal Shortcuts on Sequoia 2024 — eight years late — is the user-author re-implementation of what Session 717 already showed working.) Meanwhile, Sal Soghoian’s WWDC 2016 Session 717 — Beyond Dictation: Enhanced Voice Control for macOS Apps (33 minutes, recovered from archive.org after Apple pulled it a week after he gave it — four months before his position was eliminated) demonstrated on-stage, in 2016, voice-controlled Mac automation that resolved entirely on-device, zero roundtrip, with user-author Shortcuts as the dispatch layer. That was ten years ago. The architecture worked. The Mac was ready. What’s up, Apple? (Full 524-line transcript and line-by-line analysis in the repo. Vocal Shortcuts on Sequoia 2024 — eight years late — is the user-author re-implementation of what Session 717 already showed working.)
What’s in the repo right now
- 304 workflow scripts across 34 apps — Mail, Calendar, Reminders, Notes, Finder, Safari, Music, Photos, Pages, Numbers, Keynote, Voice Memos, Messages, iCloud, System Events, and 19 more — generated by a four-stage pipeline (
sdef-extract → workflow-gen → spotlight-export → shortcut-gen). - 105 CLI tools in
bin/— Apple-native, no Homebrew, no pip. Each is a single verb with one result. - 35 slash commands under
commands/— zero-roundtrip Claude Code entry points:/tag-app,/spotlight-export,/grand-export,/voicebox-submit,/hey-sal, etc. - 20 bulk exporters — flatten Mail / Notes / Safari / Voice Memos / iMessage / Calendar / Reminders / Contacts / Photos into markdown vaults for searchable archival.
- 68 scripting dictionaries probed and structured into YAML.
- AppleToolbox.app — Apple-native Swift menu-bar app (NSStatusItem, no SwiftBar/xbar). Lives at
/Applications/AppleToolbox/. Hosts global Carbon hotkeys, FSEvents watchers, and live-status rows (HomePod climate, Mail, Music, Whisp queue). - The Sal corpus — ZIPs, downloads, articles, transcripts of every WWDC session, the cmddconf.com Wayback mirror, the WWSD voice-signature catalog driving the
what-would-sal-sayskill.
Full catalogs (auto-generated, always in sync):
- Wiki index — 82 pages across entities, concepts, lessons, operations
- Workflows index — 304 scripts across 34 apps
- CLI tools index — 105 tools
- Bulk exporters — 20 exporters
- Scripting dictionaries — 68 apps
What this site walks (in progress)
The full public wiki is being built incrementally. Tracked in TODO.md. What’s already drafted:
Seven trigger surfaces
Every automation needs a trigger. Slash command / Spotlight .app / AppleToolbox menu / global Carbon hotkey / Vocal Shortcuts / hardware controller / passive watcher. The triggers page compares latency, hands-free property, and use case for each, with links into the in-repo implementation of every one.
Eleven-tier automation atlas
From Shortcuts.app down to IOKit, every layer macOS exposes for user-author automation. The atlas was 10-tier until 2026-05-22, when Sal pointed out the missing ASObjC tier — a plain .applescript file calling any public Cocoa class. Invisible for 17 years because single-axis taxonomies hide entire tiers. Tiers page has the full coverage matrix.
Trigger → worker chassis (four instances of the same pattern)
Finder tag → action · Voice Memo #process → whisp · Stickies → Claude · Mail flag → routing. All four are the same chassis: (filesystem-or-OS event) → debounce + lock → worker. The chassis page walks the five rules that make the pattern reusable (lock before dispatch, belt + suspenders triggers, run inside AppleToolbox not a bare LaunchAgent, calibrate the sensor, separate the noticer from the doer).
How the Sal corpus is kept alive
Five pipelines: download recovery (WWDC 2016 Session 717 recovered from archive.org), interview / article discovery across 17 sources, two-track transcription (YouTube + Apple Podcasts), WWSD voice-signature extraction (54+ principles catalogued), and voicebox synthesis (SPOKEN-Sal from his actual interview recordings). Sal corpus page has each pipeline + the philosophy.
Philosophy
- The Roundtrip Rule (WWSD #54): “If you did a roundtrip for something that could be done locally, you have wasted everyone’s time.” Articulated 2026-05-11 by Esa Ruoho while reviewing the post-Apple Sal corpus, as the operational synthesis of Sal’s WWSD #2 (local-over-cloud) + #41 (time as the meta-why) + #49 (AI as intern, not director). Full derivation + acid test in the Sal entity page.
- Local first. Cloud only when truly remote. Asking Siri for the temperature in a room with a built-in thermo-hygrometer = structural waste.
- One verb, one result. Sal’s design constraint, applied to every tool in
bin/. - Apple-native only. No Homebrew, no pip, no npm. Every tool ships with macOS.
Status
Site went live 2026-05-26 with the landing page + four topic pages (triggers, tiers, sal-corpus, chassis). Each topic page links to the canonical in-repo source under wiki/. The wiki keeps growing as features land; see TODO.md for active work fronts.
The README at github.com/esaruoho/apple is the most-complete narrative; everything here lifts from it and from the in-repo wiki under wiki/.
This site is built with GitHub Pages + the Cayman remote theme. Source: docs/.