I’m a big believer in user automation. Not everyone is a programmer, but most of us perform repetitive tasks on our devices that can be eliminated by a judicious application of automation. Whether it’s a task that’s so specific that it only applies to one person, or a task that bridges a bunch of different apps and services that just aren’t focused on working together, automation can make our devices do the work so that we don’t have to.
For years, Apple has been a leader in user automation. AppleScript was an early attempt to demystify scripting for a lay audience; Automator was sold as an easy building-block interface for performing tasks; and Shortcuts on iOS brought a modern sensibility to Automator’s premise.
The problem is that today, everything about user automation on Apple’s platforms is fractured. On the Mac, the technologies feel old-fashioned, adrift, and increasingly unsupported. On iOS, Shortcuts has some weaknesses and an every-app-for-itself mindset prevails. And between the two platforms there’s no connectivity at all.
This has to change.
On the Mac, power and complexity
Perhaps I reveal too much about myself as an old-school Mac user when I admit that I run AppleScript scripts and Automator actions almost every day. I use them to sync files for podcast editing, upload files to my web and podcast servers, and even build the weekly Six Colors newsletter.
But the truth is, AppleScript never really caught on, and what cachet it did have has long since evaporated. Its syntax is impenetrable, and as a veteran user, I still have to google for examples if I’m going to attempt to script an app I’ve never controlled before. Beyond simple control-flow steps, most of what I do in AppleScript (and Automator) these days is issue unix commands. It’s incredibly powerful, but it’s probably telling that in the last year I’ve built widgets for both iOS and macOS in PHP, JavaScript, and Python. I’m branching out.
As much as I like the impetus behind Automator—automation for the masses!—it died on the vine. Apps didn’t support it well, and Apple failed to provide a robust enough library of actions to make it work well on its own. If I ever thought Automator was okay, one glance at Shortcuts (or its predecessor, Workflow) would disabuse me of the notion. Still, I end up using Automator regularly because it allows me to integrate AppleScript and unix/shell scripting directly into the Finder.
These days most of the automation delight I get on the Mac comes from two sources: those aforementioned unix commands and shell scripts, and Stairways Software’s $36 Keyboard Maestro. Keyboard Maestro has been the solution to almost every this-seems-impossible problem I’ve encountered on my Mac. It owes its power to some mind-boggling methods, like emulating keyboard shortcuts, invoking menu items, and monitoring what’s displayed on the screen itself.
Keyboard Maestro’s existence is a credit to the Mac. But the fact that I need to use its brute-force techniques is actually a symptom of the larger disease: Great modern Mac-only apps like Rogue Amoeba’s $59 Audio Hijack are frequently released without any scripting support whatsoever. It’s great that I can use Keyboard Maestro to make Audio Hijack do what I want, but it shouldn’t be necessary.
And here’s the real tragedy of it: I have been tempted to email Rogue Amoeba to beg them for AppleScript support in Audio Hijack, but every time I consider what to say, I decide not to bother. It’s clear to me that AppleScript and Automator are outmoded technology that’s been parked. Why should I ask a developer to add support for old tech that’s probably going to be replaced in the near-ish future? It seems like a waste of their efforts.
This is yet another reason why Apple should start the Mac on its transition to the user automation of the future. And the good news is, there is a clear path for Apple to take. The future of user automation on all of Apple’s platforms should be Shortcuts.
On iOS, power with limits
Shortcuts has the same premise as Automator, but benefits from being designed more than a decade later—and of being aggressively improved, year after year. It’s a codeless system of building blocks. I wouldn’t call it easy to use—there’s a lot of work that Apple could do to make Shortcuts more readable, learnable, and shareable—but it provides a lot of power to people who are probably never going to write a line of code. It fulfills the promise of AppleScript and Automator.
The more I use Shortcuts, the more I realize that in many ways, user automation on iOS has outpaced automation on the Mac. Let me give you an example: On iOS I built a shortcut to grab the contents of selected text in Safari and open the results in a text editor—converted to Markdown, with the title of the page set as the title and its URL set as a link. It’s not remotely the most complicated shortcut I’ve built, but it’s great—and has saved me a lot of time while improving the quality of my link posts. (Copying and pasting text from Safari straight into a text editor strips out hyperlinks and formatting; converting the rich HTML to Markdown brings them along.)
I love it so much, I decided to build the same automation on the Mac. The results were ugly. My Keyboard Maestro macro forces Safari to copy the selected text to the clipboard, moves to BBEdit, opens a new window, pastes in the HTML, runs an HTML to Markdown Service on the selection, then runs an AppleScript script that cleans up the results. It’s ridiculous.
More broadly, iOS still suffers from a scattershot environment where every app seems to be inventing its own method of automating. Some apps use JavaScript or Python, others have built their own building-block interfaces, and still others mix both. I love the idea of letting different apps approach automation differently, and having third-party apps like Pythonista and Scriptable allows users who are comfortable with those languages to use them on iOS, since Apple steadfastly refuses to provide that kind of support itself. (What does it say that “do shell script” is my most used command in AppleScript, and yet it’s impossible to do it on iOS?)
As vibrant as it is, this burgeoning collection of automation options on iOS is a symptom of a larger problem: A lack of leadership from Apple. Would an app like Taio have felt the need to build its own Shortcuts-lite macro interface if there were a solid, systemwide approach to scripting that was adopted by most iOS productivity apps? Maybe. It just feels to me like all these apps are busy reinventing the wheel because Apple’s been reluctant to place itself in the center of things. That leads to a great flowering of options—but it also leads to chaos. I’d love Apple to apply at least a little more order by extending Shortcuts and offering App developers even more tools for automation, cross-app communication, better in-app Shortcuts support, and more.
So what’s next?
It’s clear to me now: Apple needs to make Shortcuts available everywhere. It’s the logical successor to Automator, and already does more than Automator—and better, too. Apple should hide Automator away somewhere for a while for compatibility reasons, but otherwise embrace Shortcuts on the Mac.
This will require a lot of work, of course. Apple will need to build a more robust library of actions that can exist on the Mac (shell scripting, anyone?), but also parallel all the actions that are available on iOS. And of course, Apple will need to allow Mac apps to connect with Shortcuts in the same ways that iOS apps do, allowing scriptable apps to support Shortcuts. Some features—like Automator’s Finder-based Quick Actions—might be replaced by items that work via the Share icon, since that’s how it works on iOS already.
That’s a lot to ask, but since I’m on a roll, I’ll once again suggest that Apple needs to more explicitly support scripting languages on both platforms. If we agree that AppleScript probably needs to fade away, and that there are numerous modern scripting languages that could be used to control applications for those who want to push things further than Shortcuts can, wouldn’t it be nice if Apple were to bless one or more of those languages? (Yes, there’s some JavaScript support in macOS already, and Apple could use that, but it seems more likely that it would just start again from scratch. Consider what the Omni Group has done with cross-platform JavaScript automation as a good example of what could be done.)
Apple has done excellent work in the last few years with Shortcuts on iOS. It’s time for the next step. Shortcuts is the future of user automation on all of Apple’s platforms. It’s time for the Mac to return to its rightful place on the cutting edge of user automation.
If you appreciate articles like this one, support us by becoming a Six Colors subscriber. Subscribers get access to an exclusive podcast, members-only stories, and a special community.