Shortcuts Playground in Claude Code.

Today, I’m pleased to introduce something I’ve been working on for the past six months: Shortcuts Playground, a plugin for Claude Code and Codex that can create any shortcut for Apple’s Shortcuts app using natural language. With Shortcuts Playground, you can simply prompt Claude Code or Codex with a sentence requesting a shortcut of any kind; a few minutes later, you’ll end up with a real shortcut in Finder, ready to be imported into the Shortcuts app. It’s as simple as that.

Shortcuts Playground is free and open source: anyone can download the plugin from this GitHub repo, where I extensively documented how it works behind the scenes and where you can also inspect the code yourself.

Just point your preferred desktop agent to the repo, and it’ll find the plugin marketplace to install it for you. You can also check out the dedicated mini-site we launched for it at macstories.net/shortcuts-playground.

For Club MacStories+ and Premier members, I’m also releasing Shortcuts Playground as a generative shortcut. It’s quite meta: once you have the main plugin installed on a Mac, you can use a shortcut to make more shortcuts and install them directly on an iPhone, iPad, or other Mac. The Shortcuts Playground shortcut is highly customizable, and I’ve shared a detailed guide for Plus and Premier members here.

As part of this announcement, we’re also launching the completely redesigned MacStories Shortcuts Archive. The new archive is easier to browse with new categories and filters, and it also includes 100 shortcuts that were entirely generated by Shortcuts Playground and verified by me. I figured that it’d be nice to offer concrete evidence of Shortcuts Playground’s capabilities; I think 100 shortcuts should do the trick.

You can read more about the new MacStories Shortcuts Archive here.

How Shortcuts Playground Started, and Why I’m Doing This

Shortcuts Playground started as a fork of an open-source skill; since January, I iterated on it every single day with Claude and Codex, reverse-engineered how Shortcuts actions work on Apple’s latest operating systems, and ended up creating something vastly more complex and reliable than the original skill I discovered at the beginning of the year. Eventually, I landed on a native plugin format that is especially nice to use in Claude Code since it supports dedicated commands, agents, and hooks.

I tested Shortcuts Playground with hundreds of shortcuts. Like any other non-deterministic output generated by agents, it does not generate shortcuts that are guaranteed to be 100% accurate. I strongly advise you to always take a look at a generated shortcut and make sure it is doing what you requested. You may occasionally need to connect a few of the missing variables yourself.

The way I see it, Shortcuts Playground can take you 90% of the way to a complete, fully-functioning shortcut; the remaining 10% needs to be checked and refined by you. In my tests, Shortcuts Playground was able to one-shot dozens of simple shortcuts based on Apple’s built-in actions as well as complex shortcuts that involved web APIs, advanced conditional logic, SSH and shell scripting, and more.

All these shortcuts were autonomously created by Shortcuts Playground and Claude Code.

Shortcuts Playground’s output is heavily influenced by which coding agent and model you use. I recommend using Shortcuts Playground with either Claude Opus 4.6/4.7 (at Medium/High reasoning level) or GPT-5.5 (Medium or High level) as the underlying model for best results. Opus 4.7 with Fast mode at High reasoning is very nice and speedy; GPT-5.5 at High with Fast mode is also quite impressive.

All of this may seem strange coming from me.

For the better part of my career writing at MacStories since 2009, I explored the then-nascent field of iOS automation and eventually embraced Workflow, which was then acquired by Apple and relaunched as Shortcuts. Beyond my iPad coverage and annual iOS reviews, I’ve made a name for myself in a tiny corner of the Internet by being the guy who wanted to automate everything with Shortcuts. With Shortcuts Playground, I am, in many ways, obviating the need for someone like myself – an expert in building automations by hand, the old-fashioned way. If you think about it, releasing Shortcuts Playground seems like a counterintuitive move from a financial standpoint for me: if anyone can now make shortcuts with natural language, they’ll no longer need my articles and guidance, right?

The reason I’m doing this is twofold.

On one hand, my goal has always been to democratize automation on Apple platforms by helping others be more efficient with their iPhones, iPads, and Macs. Shortcuts Playground is the ultimate democratization tool for Shortcuts: with it, you can just write down an idea and will it into existence without needing any advanced Shortcuts knowledge. I see that as an incredibly powerful thing for people who may not even know that their computers can automate something for them.

My goal has always been to democratize automation on Apple platforms.

On the other hand, I fundamentally believe that manual coding has always been an obstacle to productivity, and that a tool like Shortcuts Playground is another layer of abstraction in the long history of programming that is going to make software easier to make and more accessible. I’m convinced that in the near future, Apple will release an official version of Shortcuts Playground that is more capable and natively integrated than my tool can ever aspire to be. AI-generated coding is the new reality today, and we’re increasingly seeing programmers reinventing themselves as managers of agents rather than people who know how to type code into a text editor. I believe the same will happen with Shortcuts. And so, I want to get ahead of it and reinvent myself as a new kind of Shortcuts creator – one who teaches readers how to leverage AI and become automators who orchestrate agents for Shortcuts.

But enough about me. Let’s dig into Shortcuts Playground and how you can use it.

Using Shortcuts Playground

There are some mandatory pieces of software and components you will need to start using Shortcuts Playground.

First, you’re going to need a computer with either Claude Code or Codex installed. I’m not going to write a tutorial on how to do that here. You can use either the native apps or CLIs, and it won’t matter as far as the plugin is concerned. The easiest way to install Shortcuts Playground is to simply point Claude Code or Codex to the repo and ask the agent to set up the plugin for itself. The repo contains marketplaces for both Claude Code and Codex, with separate plugin files and instructions for each.

Shortcuts Playground installed in Codex.

If you’d rather do a manual installation, you can run the respective claude and codex commands from the repo to add plugin marketplaces, then download the plugin.

The two plugins are identical in terms of knowledge and bundled skills, but the Claude Code plugin offers a nicer experience thanks to Anthropic’s more advanced plugin architecture – at least for now.

The Claude version of Shortcuts Playgrounds supports dedicated commands to /build and /remix shortcuts with standalone agents; you can issue those slash commands to Claude, and it’ll know how to spin up dedicated sub-agents for creating a brand new shortcut or remixing an existing one starting from an XML file. (You can, in fact, export any shortcut as XML on Apple devices.)

Both plugins also support hooks. As soon as the agent writes a shortcut draft file to disk, a hook fires a so-called Craig Loop – my take on a Ralph Loop – that validates the shortcut’s syntax and either tells the agent to fix some issues or proceed with signing the resulting .shortcut file.

The Claude Code version of the plugin supports dedicated agents and commands.

That’s essentially all you need to get started with Shortcuts Playground. On first run, the plugin will create a /Shortcuts Playground subfolder inside /Documents, which is where all the signed .shortcut files will live. When the agent is done, you can double-click a .shortcut file and add it to the Shortcuts app. You’ll then be able to read the description of the shortcut, follow along the actions created by the agent, learn why it added them, and fix the occasional mistakes left by AI.

The folder used by Shortcuts Playground and the resulting .shortcut files you can install.

You can start simple with Shortcuts Playground: ask for “a funny and unhinged Hello World shortcut”, or perhaps a shortcut that “takes my 5 most recent screenshots and sends them to a contact on iMessage”, or maybe one that “shows me how much time I have left until my next calendar event”. Yes, those are considered “simple” shortcuts in Shortcuts Playground. Start a new session in your favorite agent, enter your idea, and wait a few minutes (depending on the complexity of your idea). Once it’s done, you’ll have a validated and signed shortcut waiting for you. In my experience, I’ve found Opus 4.7 with High reasoning and Fast mode to be the sweet spot of performance-to-intelligence; however, since leaving agents running in the background is pretty common these days, I think you’ll have a good time without Fast mode, too. Just type a few ideas, let multiple Claudes make shortcuts in the background for you, and reap the rewards later.

You can also…do this. Croak.

Shortcuts Playground will just make whatever shortcut you want.

Or you can start dipping your toes into advanced shortcut creation. This is where you can go nuts with Shortcuts Playground. I generated shortcuts to append either some text or images to a daily note in Notion. I created a shortcut that got my tasks due today in Todoist and allowed me to select which ones to reschedule with a date picker. I made one that lets me record audio, transcribes it with the Gemini API, and copies the transcribed text to the clipboard. I just had to type what I wanted, then Shortcuts Playground + Claude searched the web and ran tests before creating functioning shortcuts for all these ideas.

For this shortcut, Shortcuts Playground in Codex researched the Todoist API, tested it with my token from the 1Password CLI, wrote a test script, then created a matching shortcut grounded in those actual tests.

Since Shortcuts Playground is running on your computer, it has access to your Mac and can create shortcuts that invoke the shell on macOS. For example, I created a shortcut that lists all the cron jobs I have running on my machine; I made another that let me control OpenClaw from Shortcuts. If you’re an Obsidian user, you can make shortcuts that deal with the Obsidian CLI locally or over SSH. The possibilities are endless, and once you realize that Shortcuts Playground will just…make something for you, it becomes kind of exhilarating to just try ideas out and see what happens.

In this case, Codex SSH’d into my Mac Studio first, then created a shortcut with a script to list my cron jobs on that computer.

That’s what makes creating automations with desktop agents so great: with enough permissions, they can close the loop on themselves in terms of making new automations based on tools they can independently test. For example, if you ask Shortcuts Playground to make a shortcut to transcribe audio with the Google Gemini API and tell it that your Gemini credentials are in 1Password, Claude will test the Gemini API on its own first, then create a shortcut based on the API response it verified beforehand.

There are also some nice-to-have features that are optional for the execution of the Shortcuts Playground plugin, but which will produce better results in my experience.

In my Claude Code, I use the MCP servers for SerpAPI and Firecrawl for searching the web and scraping webpages, respectively, instead of Claude Code’s built-in web search and web fetch tools. In my tests when creating shortcuts that involved searching the web for documentation upfront (such as when making shortcuts for the Notion or Todoist APIs), those MCPs gave Claude better results from the web than its built-in tools. Once again, the advantage of this system is that Claude Code can research and test APIs before building a shortcut; if you give Claude Code access to those tools beforehand, the generated shortcut will be more reliable and grounded on real tests.

Shortcuts Playground works in the CLI as well. Just type /build in Claude Code to start creating shortcuts.

How Shortcuts Playground works behind the scenes in Claude Code.

I can’t stress this enough, however: since this is an unofficial project not affiliated with Apple, the quality of AI-generated shortcuts is as good as it can be for something that’s largely based on reverse-engineering the shortcuts syntax and giving my personal feedback to the AI for nearly six months. You’ll always have to double-check the output of Shortcuts Playground; even though the plugin can one-shot so many ideas now, I strongly recommend always opening generated shortcuts in the Shortcuts app and verifying them yourself.

In my experience as a veteran Shortcuts user, creating shortcuts with Shortcuts Playground had some unexpected positive effects: I started learning new techniques from the AI for building advanced shortcuts I didn’t even know were possible. I never bothered to learn the intricacies of the Gemini or Notion APIs; by prompting Shortcuts Playground and inspecting the results, not only did I verify the plugin’s output, but I also finally learned how to parse those API responses from Shortcuts. On several occasions, I found myself staring in near disbelief at novel Shortcuts techniques that Claude or Codex came up with, which I didn’t think of myself in the almost 12 years I’ve been building automations in first Workflow, then Shortcuts.

If you don’t believe me, try creating a shortcut with Claude Code and Shortcuts Playground, then ask Claude to explain step-by-step how everything works behind the scenes in plain language. You’ll be surprised.

How Shortcuts Playground Works, and How I Made It

I’m going to offer a deeper technical explanation below, but the gist of how Shortcuts Playground works is the following:

Under the hood, shortcuts in the Shortcuts app have always been XML files that get signed and encrypted into a proprietary .shortcut file format. This has been the case since the Workflow days; the file format changed to .shortcut with the Apple acquisition. Any shortcut in your library can be exported to XML. On a Mac, the entire Shortcuts database (which contains actions, App Intents, parameters, etc.) can be accessed at /Users/username/Library/Shortcuts/Shortcuts.sqlite. The Shortcuts Playground plugin is powered by extensive documentation that teaches an LLM how Shortcuts actions work, what syntax they use, and how they’re supposed to be connected to one another. A built-in skill tells agents how to generate an XML shortcut, which is then signed using Apple’s own shortcuts CLI that is installed by default on macOS.

The plugin never accesses your Shortcuts database at runtime. Effectively, the plugin is turning your prompts into XML and converting them to native shortcuts using a command-line utility made by Apple itself.

That’s the short version. If you’re interested in the longer version of the story:

Toward the beginning of January, I found a skill on GitHub created by drewocarr that promised to let you create shortcuts using Claude Code. I tested the skill directly in Claude Code on my Mac, and while it worked, there were a lot of issues with hallucinated actions, missing variables, and shortcuts that simply did not work. But in taking a look at the skill, I saw potential: the skill was based on a bunch of Markdown files that explained to Claude Code how the Shortcuts XML syntax worked, what action identifiers were, and so forth. I figured that perhaps drewocarr created the skill based on older documentation or with a limited subset of shortcuts, and I wanted to try my hand at improving it.

This is where I got to work with OpenAI’s Codex, which rewrote the entire skill and extended it with various validation tests and examples. For starters, I had Codex analyze my own Shortcuts database and modernized the skill, going from ~1,000 actions and intents to ~2,000. Then, over the course of nearly six months, I generated hundreds of shortcuts and tested them. Whenever something was generated that wasn’t quite right, I went back to Codex, attached the output and my prompt (and often some screenshots), and asked it to understand what went wrong. During that process, Codex painstakingly documented a series of findings, best practices, and other common techniques to write valid shortcuts. I also steered the skill’s best practices by drawing from my own expertise and telling Codex to prefer certain actions or specific techniques over others. This was a slow but fun process that took a lot of trial and error.

An example of the documentation I added over the course of several months to Shortcuts Playground’s built-in skill.

Despite all that, Claude Code was still generating shortcuts that had the occasional missing variable, empty parameter, or action connected to nothing. That’s when another breakthrough took place: I had the idea of adopting the popular Ralph Loop technique to shortcut generation and created a validator script that an agent runs over and over when making shortcuts. In case you’re not familiar, Ralph is a technique that – and I’m simplifying here – runs a coding agent in a loop until the task is done and all errors are fixed. My technique is called a Craig Loop, and it’s based on the same concept: there’s a Python script inside the skill that the agent runs over and over when making a shortcut until validation passes. This approach has added latency to the whole process of running Shortcuts Playground, but it has vastly improved the output because the agent can self-correct when it sees that a shortcut is not passing validation. Like I mentioned above, due to the nature of the project, generated shortcuts are not 100% perfect all the time, but I think a 90% average is pretty good for vibe-coding shortcuts like this.

I then fed Codex my entire archive of shortcuts I created over the years and shared on the MacStories Shortcuts Archive. Codex scraped the entire archive, downloaded 300 shortcuts, converted them back to XML, and studied them all for useful patterns, style, and techniques. It then compiled a list of “golden examples” that are bundled in the plugin for additional guidance in addition to a very long ‘Best Practices’ document.

Then, over the course of several weeks, I put Claude Code, OpenClaw, and Codex in a loop to imagine, create, install, and test hundreds of shortcuts. All these agents used the same skill to create shortcuts, tested them, found the parts that were broken, and went back to self-correct until they were happy with the results. (The agents were able to test the actual shortcuts by either relying on computer-use tools or simply checking the output of a shortcut using Apple’s own shortcuts shell command.) Once I reached 1,000 shortcuts created and tested with different agents and realized the skill was good enough for a 1.0, I decided to wrap up my work on it for the time being. Before I was completely done, however, I decided to turn the skill into a nicer plugin package that, at least in Claude Code, supports /build and /remix commands, has dedicated agents, and uses hooks to run the validation script on each file write.

At the end of this saga, I ended up with something that is very different from drewocarr’s skill, but which wouldn’t be possible without their original idea and the many, many people who contributed on Reddit, GitHub, and other places over the years in an effort to make sense of Shortcuts’ file format and syntax. It’s only thanks to the open-source community that this plugin exists and can understand thousands of actions, how to create shortcuts with specific glyphs and colors, and lots of other nice touches.

The result of all this is a system that lets an agent such as Claude Code use a plugin that can produce modern, valid shortcuts of varying degrees of complexity. You can use Shortcuts Playground to make shortcuts that implement the ‘Use Model’ action released in iOS 26; you can make shortcuts that interact with any web API; you can ask it to create Mac-specific shortcuts that support actions to control windows, run AppleScript, and more.

If you can think it – and if Shortcuts supports it – you can make it with Shortcuts Playground.

The Future of Shortcuts Playground

Here’s the “fun” part for me: I fully expect all of this work to be Sherlocked by Apple in three weeks. In fact, I hope that Apple makes this entire body of work useless with a better, native, official Apple Intelligence-backed generative tool for Shortcuts in iOS, iPadOS, and macOS 27.

I have two thoughts I keep coming back to. The first one: if I was able to make something that generates shortcuts with a prompt, imagine what Apple could create with its teams of engineers, proprietary knowledge, and access to an Apple Intelligence-optimized version of the Gemini family of models. I’m sure that, in hindsight, my version of this idea will look as primitive as the many other workarounds I published over the years until Apple came in and built a native feature that was faster, easier to use, and more powerful. I’m just a guy, and I’m not nearly as cool as John Ternus.

The second thought: for me, creating shortcuts has always been about scratching my own itch and making it easy for my friends and readers to be more efficient on their computers. We’re not supposed to spend all day clicking around and doing boring work stuff on a screen! The computer is supposed to enable us to do our best work, with the least amount of friction possible, and then get out of the way. Life isn’t “the computer”.

Generating shortcuts with Shortcuts Playground and AI is simply another step toward that goal of making the computer do more for us, so we can spend time doing something else.

Have fun with Shortcuts Playground. The plugin is free, open source, and available here.

Blog

Leave a Reply

Your email address will not be published. Required fields are marked *