Mac Shortcuts Automation: The Practitioner's Reference
# Apple Shortcuts on macOS: the actions catalog, automation triggers, the shortcuts CLI, signing, App Intents, and running shortcuts from scripts and agents.
TL;DR: Shortcuts has shipped on every Mac since macOS Monterey (2021), and macOS Tahoe (26) finally gave it the piece Mac automators waited four years for: personal automations with triggers like folder changes, external drives, Wi-Fi, displays, and app launches.34 The app runs shortcuts from the menu bar, Spotlight, Finder Quick Actions, keyboard shortcuts, and a real command-line tool (
shortcuts run,list,view,sign).12 Every app can add actions through the App Intents framework, which is the same surface Siri, Spotlight, and Apple Intelligence call.13 Scripts and AI agents drive shortcuts three ways: the CLI, theshortcuts://URL scheme, and the scriptableShortcuts Eventsbackground process.1911 The permission model is the part to learn first: consent prompts that are invisible in the app will silently stall an unattended run.
Apple told developers “Shortcuts is the future of Mac automation” at WWDC 2021.5 The future arrived in two halves. The first half shipped immediately: a native SwiftUI app on macOS Monterey with iCloud sync, an Automator migration tool, and full support for shell scripts and AppleScript inside the editor.5 The second half took four more macOS releases. Until macOS Tahoe, a Mac shortcut only ran when something asked for it; there were no triggers, so “automation” meant remembering to click. Tahoe closed that gap with personal automations built for the Mac (folder and external drive triggers) alongside the familiar iOS set (Time of Day, Bluetooth), and added a Use Model action that puts Apple Intelligence in the middle of a shortcut’s data flow.34
The result is a system worth learning properly. Shortcuts on the Mac in 2026 is four things at once:
- A no-code editor with hundreds of built-in actions, from file operations to window management to on-device AI
- An automation engine with system-event triggers, new in macOS Tahoe
- A command-line citizen:
shortcuts runbehaves like any other Unix tool, with stdin, stdout, exit codes, and pipes1 - An action registry for every app: anything an app exposes through App Intents appears in Shortcuts automatically, on the Mac as everywhere else134
The gap between casual and expert use comes down to five systems: the actions catalog (what exists), automation triggers (when things run), the CLI and scripting bridges (how code calls in), signing and sharing (how shortcuts travel), and the permission model (why unattended runs stall). Each gets its own part below.
Every claim in this guide is grounded in Apple’s documentation, WWDC sessions, or direct inspection of macOS 26.5 (Shortcuts 7.0) on the machine it was written on. Where a fact came from the operating system itself (the shortcuts(1) man page, the Shortcuts Events scripting dictionary, the actions in the WorkflowKit framework), the citation says so.
Key Takeaways
- Automations are the headline. macOS Tahoe brought personal automations to the Mac: folder changes, external drives, displays, Wi-Fi, Bluetooth, Stage Manager, app launch/quit, Time of Day, and more, each runnable immediately or after confirmation.34
- The CLI is real, not a toy.
shortcuts run "Name" -i input -o outputsupports stdin (-i -), stdout (-o -), typed output via Uniform Type Identifiers, and exits 0 on success, 1 on error. Pipe it like any Unix tool.12 - Three script entry points, one rule. Use the CLI from shells and CI, the
shortcuts://URL scheme only from other apps, andShortcuts Events(AppleScript/ScriptingBridge) when you need results back in a scripting context without opening the app.1911 - Signing gates distribution. A
.shortcutfile must be signed to travel:shortcuts sign -m anyonenotarizes through iCloud so anyone can import; the defaultpeople-who-know-memode signs locally and limits import to people who have you in Contacts.27 - App Intents is the developer surface. An app that ships App Intents gets Shortcuts actions on the Mac for free, and those same intents power Spotlight and automations, including iOS apps installed on Apple silicon Macs.413
- Consent is the failure mode. Shortcuts asks Allow Once / Always Allow / Don’t Allow per shortcut, per data type. Script-running actions sit behind a global “Allow Running Scripts” switch. A headless run that hits an unanswered prompt just waits.168
How to Use This Guide
| You are… | Start here | Then explore |
|---|---|---|
| New to Shortcuts on Mac | What Is Shortcuts on Mac, Ways to Run a Shortcut | The Actions Catalog, Automation Triggers on macOS |
| Automator or AppleScript veteran | Shortcuts vs Automator vs AppleScript, Scripting Actions | The shortcuts CLI, Scripting the App with Shortcuts Events |
| Developer exposing app features | App Intents: How Apps Add Actions | Spotlight and Automations Run Your Intents, Driving Shortcuts from Scripts and Agents |
| Wiring shortcuts into agents or CI | The shortcuts CLI, Driving Shortcuts from Scripts and Agents | Permissions and Consent, Troubleshooting |
Table of Contents
Part 1: Foundations
Part 2: Actions
- How Actions Compose
- The Actions Catalog
- Scripting Actions
- Window Management Actions
- The Use Model Action
Part 3: Automations
Part 4: The Command Line and URL Schemes
Part 5: Sharing and Distribution
Part 6: The Developer Surface
- App Intents: How Apps Add Actions
- Spotlight and Automations Run Your Intents
- Driving Shortcuts from Scripts and Agents
Part 7: Operations and Reference
What Is Shortcuts on Mac
Shortcuts is Apple’s automation app: you chain actions (single-purpose steps) into a shortcut (a saved workflow), then run it by click, voice, keystroke, trigger, or command line. Apple’s own definition is worth keeping in mind because it explains the entire design: “An action is the building block of a shortcut. Each shortcut comprises a series of actions, and each action is a single step that performs a particular function.”12
The app arrived on the Mac with macOS Monterey in 2021, ported from iOS but written almost entirely in SwiftUI so the same codebase serves both platforms.5 Three design decisions from that first release still define the Mac experience in 2026:
- iCloud sync is the default. Open Shortcuts on a new Mac and your existing library appears, synced from iPhone and iPad. A shortcut built on one device runs on the others, minus platform-specific actions.512
- Apps supply actions. “Like on iOS, any app on the Mac can provide actions to Shortcuts.”5 In 2026 that pipeline is the App Intents framework, covered in Part 6.
- Scripts are first-class. Monterey shipped “full support for AppleScripts and Shell Scripting” with “new actions, built right into Shortcuts, that let you write and run scripts directly inside the Shortcuts editor,” so Shortcuts wraps the older automation stack instead of replacing it.5
What Monterey did not ship was triggers. From 2021 through 2024, a Mac shortcut ran only when something invoked it. macOS Tahoe (26) changed that in 2025 by bringing personal automations to the Mac, with trigger types built specifically for desktop workflows (folder contents changed, external drive connected) plus the established iOS set.34 Tahoe also added the Use Model action, which sends data through Apple Intelligence models mid-shortcut.34
Version landmarks:
| macOS | Year | What it added to Shortcuts |
|---|---|---|
| Monterey (12) | 2021 | Shortcuts app, shortcuts CLI, Automator import, script actions, menu bar and Quick Action integration52 |
| Ventura through Sequoia (13–15) | 2022–2024 | App Intents replaces the old intents plumbing as the developer surface; App Shortcuts appear without setup13 |
| Tahoe (26) | 2025 | Personal automations on Mac, Use Model (Apple Intelligence) action, app intents runnable from Spotlight34 |
Throughout the guide, “verified on macOS 26.5” means checked directly against Shortcuts 7.0 on the Mac used to write it.
Ways to Run a Shortcut
Shortcuts on the Mac is unusually generous with entry points. All of the following invoke the same shortcut; they differ in where the input comes from and where the output lands.1210
| Entry point | How | Best for |
|---|---|---|
| Shortcuts app | Double-click the shortcut, or click ▶ | Building and testing |
| Menu bar | Add the shortcut to the menu bar category, run from the Shortcuts menu bar icon | Frequently used utilities |
| Quick Actions (Finder) | Enable “Use as Quick Action” in the shortcut’s details, then Control-click a file → Quick Actions | File-processing shortcuts that take Finder selections as input10 |
| Services menu | Enable “Services Menu” in details; appears under App menu → Services | Text- or selection-driven shortcuts in any app10 |
| Keyboard shortcut | Details pane → Add Keyboard Shortcut, press a combination | Anything you run many times a day10 |
| Spotlight | Type the shortcut name and run it inline | Keyboard-first invocation without dedicating a hotkey4 |
| Siri | Say the shortcut name | Hands-free |
| Dock | Drag a shortcut out of the app to the Dock | One-click launchers |
| Automations | Trigger-based, macOS Tahoe and later | Unattended runs (Part 3) |
| Command line | shortcuts run "Name" |
Scripts, Makefiles, CI, agents (Part 4) |
| URL scheme | shortcuts://run-shortcut?name=... |
Invocation from other apps9 |
| Shortcuts Events | AppleScript/ScriptingBridge, no UI | Background runs with results returned to the caller11 |
Two details save time later. First, Quick Action and Services entries receive the current selection as shortcut input, which is why file-processing shortcuts should declare their accepted input types (the editor’s “Receive” configuration) rather than assume text. Second, the last three rows are the programmable surface; they get their own sections because their input/output contracts differ.
Shortcuts vs Automator vs AppleScript
All three Apple automation systems still ship with macOS in 2026 (Automator remains in /System/Applications, verified on macOS 26.5), and each still has a job. The framing that holds up: Shortcuts is the integration layer, AppleScript is the app-control language, and shell scripts are the computation layer. Automator is in maintenance: functional, unchanged, and explicitly succeeded by Shortcuts.514
| Shortcuts | Automator | AppleScript / JXA | Shell scripts | |
|---|---|---|---|---|
| Model | Actions + triggers, syncs via iCloud | Actions in .workflow documents | Language sending Apple Events to apps | Unix processes |
| App integration | App Intents (modern, growing) | Legacy action plugins (frozen) | Scripting dictionaries (deep but app-dependent) | CLIs only |
| Triggers | Personal automations (Tahoe+)3 | Folder Actions, Calendar alarms | None built in | cron, launchd |
| Runs on iPhone/iPad too | Yes12 | No | No | No |
| Status in 2026 | Actively developed | Maintained, no new investment | Maintained | Evergreen |
The migration path is real but lossy at the edges. Apple built a converter into Shortcuts: drag a .workflow file into the app (or Control-click → Open With → Shortcuts) and “Shortcuts can convert most Automator workflows into shortcuts that carry out the same functions, events, and automations.”1415 “Most” is Apple’s word, and the practical reading is: standard file, image, and text actions convert cleanly; obscure third-party Automator actions and Watch Me Do recordings are where conversion degrades. Shortcuts even retains a Watch Me Do action name in its internals as part of that compatibility story (visible in the framework’s action table, verified on macOS 26.5).16
When to reach past Shortcuts. Deep per-app control (iterating Mail messages, manipulating Finder windows programmatically, driving apps with rich scripting dictionaries) is still AppleScript’s home turf. Complex text processing, API orchestration, and anything you would write in Python or zsh anyway belongs in a script. The practitioner’s move is composition, not allegiance: a shortcut that gathers input from a trigger, hands it to a shell script for the heavy lifting, and uses native actions for notifications and file placement gets the best of each system. The Scripting Actions section covers the mechanics.
How Actions Compose
Every shortcut is a pipeline. Each action takes input (often the previous action’s output), does one thing, and produces output. Three mechanics make the pipeline expressive:
- Magic variables. Every action’s output is automatically available to later actions as a variable, without declaring anything. Click a parameter field, choose Select Magic Variable, and pick any earlier action’s output. Set Variable and Get Variable exist for explicit naming, and Add to Variable accumulates lists (all three are built-in actions, verified on macOS 26.5).16
- Content types, converted on demand. Actions declare what they accept (files, images, text, URLs, dates). When output and input types differ, Shortcuts coerces where it can: pass a web page to a text action and you get the page text. The editor’s “Receive” configuration at the top of a shortcut declares what the whole shortcut accepts from Quick Actions, Services, or the CLI’s
--input-path. - Flow control as actions. If, Repeat, Repeat with Each, Choose from Menu, Wait to Return, Stop This Shortcut, and Stop and Output are ordinary actions.16 Stop and Output matters more on the Mac than anywhere else: it defines what a shortcut returns to the command line, a pipe, or a calling script.1
The composition primitive is Run Shortcut: one shortcut invoking another by name, with input.16 Apple’s guidance is explicit that nesting should use the action, not URL schemes: “If you’d like to run one shortcut from another shortcut, use the Run Shortcut action instead of a URL scheme.”9 Treat shortcuts like functions: small single-purpose shortcuts (normalize a filename, post to a webhook, resize to thumbnail) composed by a coordinator shortcut scale far better than one 60-action monolith, and each piece stays independently testable from the CLI.
The Actions Catalog
The built-in library is large: the English strings table inside macOS 26.5’s WorkflowKit framework (the private framework behind Shortcuts) lists 361 distinct action names.16 The number overstates what you’ll see in the editor: the table includes iOS-only actions and legacy integrations from the app’s Workflow-era ancestry. What follows is the Mac-relevant catalog, organized by what automators actually reach for. Every action name below appears verbatim in that table, verified on macOS 26.5.16
Files and Finder
| Action | What it does |
|---|---|
| Get File from Folder / Get Contents of Folder | Read files or folder listings |
| Save File / Move File / Rename File / Delete Files / Label Files | File lifecycle |
| Create Folder / Get Parent Directory / Get Link to File | Folder plumbing |
| Filter Files / Get Details of Files | Query by name, extension, date, size |
| Get Selected Files in Finder / Reveal Files in Finder | Bridge to the Finder selection |
| Make Archive / Extract Archive | Zip and unzip |
| Make Disk Image / Mount Disk Image / Eject Disk | Disk images and volumes |
| Append to Text File | Log-style writes |
System and Apps
| Action | What it does |
|---|---|
| Open App / Quit App / Hide App | App lifecycle |
| Split Screen Apps | Arrange two apps side by side |
| Set Focus / Get Current Focus | Focus modes |
| Set Volume / Play Sound / Start Screen Saver | Ambient controls |
| Show Notification / Speak Text | Feedback channels |
| Get Device Details / Get Network Details / Get Current IP Address | Environment probes |
| Get Details of Appearance | Light/dark appearance introspection |
| Print / Quick Look | Output to paper or preview |
Web and Data
| Action | What it does |
|---|---|
| Get Contents of URL | The HTTP client: GET by default, configurable method, headers, and body for API calls |
| Get Contents of Web Page / Get Article using Safari Reader | Page extraction |
| Get Current Web Page from Safari | Safari integration (see also Run JavaScript on Web Page, under Scripting Actions) |
| Get Headers of URL / Get Component of URL / URL Encode | HTTP and URL plumbing |
| Get Items from RSS Feed / Get RSS Feeds from Page | Feeds |
| Get Dictionary from Input / Get Text from Input / Set Dictionary Value | JSON in, JSON out |
| Generate Hash / Base64 Encode | Encoding utilities |
Get Contents of URL plus the Dictionary actions form a workable REST client: request, parse JSON, extract values, no code. When payloads get complex, hand off to a shell script with curl and jq instead of fighting nested dictionaries in the editor.
Text, Images, and Media
| Action | What it does |
|---|---|
| Text / Replace Text / Search Text / Transform Text / Trim Whitespace | Text manipulation |
| Make Rich Text from Markdown / Make Markdown from Rich Text / Make HTML from Rich Text | Format conversion |
| Get Text from PDF / Extract Text from Image / Make PDF / Split PDF Into Pages / Optimize File Size of PDF | Document processing (Extract Text from Image is on-device OCR) |
| Resize Image / Crop Image / Convert Image / Flip Image / Mask Image / Overlay Image / Remove Image Background / Combine Images | Image pipeline |
| Make GIF / Add Frame to GIF / Make Video from GIF / Encode Media / Trim Media | Media conversion |
| Make Spoken Audio from Text / Record Audio / Dictate Text | Audio in and out |
Calendar, Reminders, Contacts, Notes
Find Calendar Events, Add New Calendar, Edit Calendar Event, Find Reminders, New Reminder, Edit Reminder, Find Contacts, Edit Contact, Create New Note, Get Notes, Delete Notes, and their Get Details of… counterparts cover the productivity apps.16 The Find/Filter + Get Details pairing is the pattern: query a collection, then extract fields from the matches.
Shortcuts, Meta, and Flow
| Action | What it does |
|---|---|
| Run Shortcut | Call another shortcut with input |
| Get My Shortcuts / Get Details of Shortcut | Introspect the library |
| If / Repeat / Repeat with Each / Choose from Menu | Control flow |
| Set Variable / Get Variable / Add to Variable | Explicit state |
| Wait to Return / Stop This Shortcut / Stop and Output / Nothing | Timing and termination |
| Show Content / Get What’s On Screen | Display and context |
| Open X-Callback URL / Open URLs | URL dispatch |
A meta-automation note for Part 6: Get My Shortcuts and Get Details of Shortcut let a shortcut enumerate the library, which pairs with shortcuts list on the CLI side for building tooling around your collection.162
Scripting Actions
Five actions bridge Shortcuts to the traditional automation stack, and all five sit behind one global switch. In Shortcuts → Settings → Advanced, “Allow Running Scripts” must be on before any of them will run; the app’s own description of the setting names exactly which actions it gates: “When enabled, the actions ‘Run AppleScript’, ‘Run Shell Script’, ‘Run JavaScript for Mac Automation’, ‘Run JavaScript on Web Page’ and ‘Run Script Over SSH’ can be run” (verified on macOS 26.5).817 Apple’s documentation adds the warning that running shortcuts with scripts could cause data loss — the setting exists because these five actions run with your full user privileges, outside the guardrails that contain ordinary actions.8
Run Shell Script
The workhorse. You pick the shell, paste the script, and choose how input arrives. The two input modes come straight from the action’s own documentation: “to stdin: The input will be converted to a file and directed to the stdin pipe of the script. as arguments: The input will be converted to a list of strings and passed as arguments to the script.”17
Practical implications of those two modes:
- stdin mode suits text and single files:
pbpaste-style processing, JSON throughjq, anything that reads a stream. - arguments mode suits multiple files: each input item lands in
"$@", sofor f in "$@"; do ... donehandles a Finder selection correctly, spaces and all. - Output is whatever the script writes to stdout, and it flows to the next action like any other output.
Run AppleScript and Run JavaScript for Mac Automation
Both embed Open Scripting Architecture scripts with an on run {input, parameters} entry point (AppleScript) or a run(input, parameters) function (JXA). Reach for them when the job is controlling another app: Finder window arrangement, Mail rules, anything with a scripting dictionary. The return value becomes the action’s output.
Run Script Over SSH
Runs a shell script on a remote host with host, port, user, and authentication configured in the action. The killer use is symmetric with the CLI: a Mac in your office can expose repeatable operations to any machine that can reach it over SSH, and a shortcut can push work out to Linux boxes without leaving the Shortcuts editor.
Run JavaScript on Web Page
Runs JavaScript against the current Safari page and returns the result. Apple gates it behind both the scripts switch and a per-run permission prompt because arbitrary page-context JavaScript is a data-exfiltration surface.8
Window Management Actions
Shortcuts ships native window control on the Mac: Find Windows, Move Window, and Resize Window.16 They read as minor catalog entries and turn out to be the building blocks for keyboard-driven window layouts without third-party tools.
- Find Windows queries open windows (sortable and filterable in the editor) and outputs window objects.
- Move Window takes a window and a position. Its parameter summary reads “Move ⟨Window⟩ to ⟨Position⟩,” with an optional custom variant “Move ⟨Window⟩ to ⟨Position⟩ ⟨X Coordinate⟩, ⟨Y Coordinate⟩” (verified on macOS 26.5).16
- Resize Window takes a window and a target: “Resize ⟨Window⟩ to ⟨Configuration⟩,” with a custom variant accepting explicit ⟨Width⟩ × ⟨Height⟩.16
The built-in windowing positions in the framework’s strings table: Full Screen, Left, Right, Top, Bottom, thirds (Left Third, Middle Third, Right Third), corner variants (Top/Bottom Leading and Trailing), and a custom Window Location and Size format (verified on macOS 26.5).16 Combine Find Windows (frontmost window) → Resize Window (Left) with a keyboard shortcut and you have a one-key window command. Split Screen Apps handles the two-app case in one action.16
The Use Model Action
New in macOS Tahoe and the most consequential single action Apple has added since the Mac port: Use Model sends data to an Apple Intelligence model mid-shortcut and hands the response to the next action.34
Three model choices, per Apple’s WWDC session on the feature: a large server-based model on Private Cloud Compute, the on-device model “for simple requests without network connection,” and ChatGPT “for broad world knowledge.”4
Three output shapes, and choosing deliberately is the skill:4
- Text (including rich text) for summaries and rewrites.
- Dictionary for structured extraction; Apple’s example is pulling vendor, amount, and date out of invoices. Dictionary output is what makes Use Model composable: downstream actions read fields instead of parsing prose.
- App entities: content objects from apps that expose them through App Intents. Apple frames the relationship as “If App Intents are the actions or verbs from your app, App Entities are the nouns,”4 and Use Model can reason over those nouns directly (filter these notes, pick the relevant calendar event).
A Follow Up toggle allows iterating on the model’s response inside the same run.4
One engineering caution: model output is nondeterministic, so the same input can produce different results run to run. For automations, that argues for the dictionary output shape (schema-constrained), small focused prompts, and a validation step (an If action checking required fields) before the result touches files or messages. Treat Use Model like a flaky network call: useful, wrapped in checks.
For the developer view of the same feature (what your app should expose so Use Model can reason over it), see Part 6 and the App Intents cluster on this site, starting with App Intents Are Apple’s New API to Your App.
Automation Triggers on macOS
Automations are shortcuts with a trigger attached: “run this when that happens,” no click required. They arrived on the Mac in macOS Tahoe, and Apple built Mac-specific triggers rather than porting the iOS list wholesale: “we’re bringing personal automations to the Mac, with new automation types like folder and external drive automations built specifically for Mac, along with automation types you might already be familiar with from iOS, like Time of Day and Bluetooth.”4
Create them from the Automation area of the Shortcuts app. Each automation pairs one trigger with a set of actions and one policy decision: Run Immediately (no interaction, the point of automation) or Run After Confirmation (a notification asks first).318 Start new automations with confirmation until you trust them, then flip to immediate.
The trigger catalog on macOS Tahoe:3418
| Trigger | Fires when | Notes |
|---|---|---|
| Time of Day | A time arrives (specific, sunrise, sunset) | Daily/weekly/monthly repeat options |
| Alarm | A Clock app alarm goes off, snoozes, or stops | |
| Mail arrives from chosen senders or matching criteria | ||
| Message | A message arrives from chosen people or containing text | |
| Folder | Contents of a watched folder change | The Mac headliner; see patterns below |
| External Drive | A drive connects or disconnects | Backup and ingest workflows |
| Display | A display connects or disconnects | Desk-docking layouts |
| Wi-Fi | Joining or leaving a network | Location-ish context on a desktop OS |
| Bluetooth | A device connects or disconnects | Headphones, input devices |
| Battery Level | Level reaches, rises above, or falls below a threshold | Laptop-relevant |
| Charger | Power connects or disconnects | Laptop-relevant |
| App | An app opens or quits | Pair with Split Screen Apps or window actions |
| Focus | A Focus mode turns on or off | |
| Stage Manager | Stage Manager toggles |
Two shifts follow from the design. First, the Mac finally has an Apple-native answer to “watch this folder and process what lands in it” that syncs and edits like any other shortcut (Automator’s Folder Actions did the watching but not the rest). Second, because automations run shortcuts, everything in this guide compounds: a Folder trigger can feed Run Shell Script; an App trigger can call Use Model; an External Drive trigger can kick off an SSH job.
Automation Patterns That Work
Patterns that hold up in daily use, assembled entirely from documented pieces:
The hot folder. Folder trigger on ~/Inbox → Filter Files (extension is pdf) → Extract Text from Image or Get Text from PDF → Use Model with dictionary output (vendor, date, total) → Rename File and Move File into an archive hierarchy. The classic Automator use case, upgraded with on-device extraction and model-shaped naming.3416
The desk dock. Display trigger (external display connects) → Open App for your work set → Move Window and Resize Window into your layout → Set Focus to Work. Reverse it on disconnect. One trigger rebuilds the whole desk layout with no manual dragging.316
The ingest drive. External Drive trigger → Get Contents of Folder on the card’s DCIM → Filter Files by date → Save File into a dated folder → Show Notification with the count. Confirmation mode is wise here: drives you didn’t expect shouldn’t trigger bulk copies.318
The escape hatch to real code. Any trigger → Run Shell Script with input as arguments → your existing script. The trigger system is the valuable part; nothing requires the logic to live in Shortcuts actions. A two-action automation (trigger + script) gives launchd-style event handling with a UI, sync, and consent management for free.817
Meeting-adjacent contexts. Focus trigger (Work Focus on)18 → Set Volume, Quit App for distractions, Open App for notes. With Focus sharing across devices enabled in System Settings, the Mac reacts to a Focus turned on from the iPhone.
Constraints to design around: an automation lives on the Mac where you create it, so a Folder automation built on the MacBook won’t fire on the Mac mini even though the shortcut library itself syncs (set up the trigger on each machine that needs it), and the trigger list has no “web request received” entry (bridge that with Run Script Over SSH from the sender’s side, or a folder watched by a cloud-sync client).318
The shortcuts CLI
macOS has shipped a real command-line interface for Shortcuts since Monterey: /usr/bin/shortcuts, documented in shortcuts(1) and in Apple’s user guide.12 It has four subcommands. I verified everything below against macOS 26.5.
shortcuts run <shortcut-name-or-identifier> [-i <input-path> ...] [-o <output-path>] [--output-type <UTI>]
shortcuts list [-f <folder-name>] [--folders] [--show-identifiers]
shortcuts view <shortcut-name>
shortcuts sign [-m <mode>] -i <input> -o <output>
shortcuts run
Runs a shortcut by name or by identifier. “Running shortcuts from the command line is no different from running shortcuts in the Shortcuts app,”1 which cuts both ways: full action access, and full permission prompts (see Permissions).
| Flag | Meaning |
|---|---|
-i, --input-path |
Input to the shortcut. Repeatable; accepts paths, globs, or - for stdin2 |
-o, --output-path |
Where to write output; - for stdout2 |
--output-type |
Output format as a Uniform Type Identifier, such as public.plain-text or com.apple.rtfd; inferred from the output filename when omitted2 |
Apple’s canonical example runs an image-combining shortcut over a folder of JPEGs:1
shortcuts run "Combine Images" -i ~/Desktop/*.jpg -o ~/Desktop/combined.png
The CLI honors the Unix contract on both ends. Exit status: “The shortcuts command will exit 0 on a successful run or 1 on error.”1 Output piping works when the shortcut ends with output or contains Stop and Output:1
# Pipe shortcut output onward, typed as RTFD
shortcuts run "Make Meeting Notes" --output-type com.apple.rtfd | ...
# Feed stdin in, capture stdout out
echo "quarterly report" | shortcuts run "Slugify" -i - -o -
One documented trap: piping text into shortcuts run delivers it as text. “When you pass a file path using a pipe, the path is treated as text. Use the -i flag to ensure your input is treated as file paths.”1
And one design rule from Apple worth engraving: “the most efficient shortcuts are ones that don’t show alerts or ask for input. When a shortcut asks for input, the command line process pauses, awaiting user input.”1 For anything headless, that pause is a hang. Build CLI-facing shortcuts to take all parameters from input.
shortcuts list
Lists shortcut names, one per line. --folders lists folders instead; -f <folder> scopes to a folder (“none” for shortcuts outside any folder); --show-identifiers appends each shortcut’s UUID.2 Identifiers matter for automation: names collide and get renamed, UUIDs don’t. shortcuts run accepts either.2
shortcuts list --show-identifiers | grep "Deploy"
shortcuts view
Opens the named shortcut in the Shortcuts editor.2 Useful at the end of tooling: a script that detects a failing shortcut can drop you into its editor.
shortcuts sign
Signs a .shortcut file for distribution; covered with the sharing formats in Part 5.2
Scripting the App with Shortcuts Events
The third programmatic surface is the scripting interface. Shortcuts on the Mac registers two scriptable targets: the Shortcuts app itself, and a faceless background helper, Shortcuts Events (bundle identifier com.apple.shortcuts.events, verified on macOS 26.5).11 The scripting dictionary embeds the reason for the split: “To run a shortcut in the background, without opening the Shortcuts app, tell ‘Shortcuts Events’ instead of ‘Shortcuts’.”11
The dictionary is small and stable. Shortcuts have readable properties name, subtitle, id, folder, color, icon, accepts input, and action count; folders have name and id; and the one verb is run, with an optional with input parameter and a result.11
AppleScript:
tell application "Shortcuts Events"
run shortcut "Slugify" with input "Quarterly Report Draft"
end tell
JXA:
const se = Application("Shortcuts Events");
const result = se.shortcuts.byName("Slugify").run({withInput: "Quarterly Report Draft"});
Python via ScriptingBridge or py-applescript targets the same interface; with PyObjC’s ScriptingBridge, SBApplication.applicationWithBundleIdentifier_("com.apple.shortcuts.events") returns the app object whose shortcuts() collection mirrors the dictionary above.11
When to prefer it over the CLI: you’re already inside an AppleScript/JXA context, you want the shortcut’s result as a native object rather than serialized stdout, or you’re driving runs from an app that can send Apple Events but shouldn’t shell out. The first Apple Event a host process sends to Shortcuts Events raises macOS’s standard Automation consent prompt (System Settings → Privacy & Security → Automation), one more prompt to clear before unattended operation.6
The dictionary also exposes organize-level access (folders and shortcut metadata are readable, folder assignment writable), so library housekeeping (inventory reports, folder audits) can be scripted without touching the UI.11
URL Schemes
Shortcuts registers the shortcuts:// URL scheme (plus legacy workflow:// from the app’s pre-acquisition ancestry, verified on macOS 26.5).19 URLs are the integration path for other apps: launchers, note apps with link fields, anything that can open a URL. Apple’s guidance is direct: “You should only run shortcuts with a URL if you’re integrating from another app outside of Shortcuts.”9
Run a shortcut:9
shortcuts://run-shortcut?name=[name]&input=[input]&text=[text]
name(required): percent-encoded shortcut name.input: eithertextorclipboard. Withtext, thetextparameter’s value becomes the shortcut input; withclipboard, “the contents of the Clipboard are used” andtextis ignored.9
shortcuts://run-shortcut?name=Lookup%20Goetta&input=text&text=goetta%20is%20great
shortcuts://run-shortcut?name=Add%20to%20Notes&input=clipboard
x-callback-url adds response handling for round-trips:20
shortcuts://x-callback-url/run-shortcut?name=Calculate%20Tip&input=text&text=24.99&x-success=...&x-error=...&x-cancel=...
x-successopens on success, with the shortcut’s text output appended as aresultparameter.x-erroropens on failure, with anerrorMessageparameter.x-cancelopens if the user cancels, and provides no output.20
From the shell, open "shortcuts://run-shortcut?..." works, but prefer shortcuts run there: the CLI returns exit codes and output directly instead of bouncing through URL callbacks. The scheme’s remaining niche on the Mac is app-to-app integration and links inside documents.
Sharing Formats and Signing
Shortcuts travel two ways, and both end in a trust decision.7
iCloud links. In the app: share → Copy iCloud Link. Anyone with the link adds the shortcut to their library, which makes links the low-friction path for publishing to the world. Treat a link as public once sent.7
Shortcut files. File → Export produces a .shortcut file (UTI com.apple.shortcut, verified on macOS 26.5).197 Export forces the trust choice:
- Anyone: “Anyone can run your shortcut.” Apple receives a copy of the shortcut for validation.7
- People Who Know Me: “Only people who have you in their contacts will be able to run your shortcut.” Your contact info is embedded in the file for that check.7
The CLI mirrors the same two modes and names the mechanism, per shortcuts(1) on macOS 26.5: people-who-know-me “will sign locally, but only your devices, or people who have your contact info in their contacts, will be able to import the shortcut,” while anyone “will notarize via iCloud, and allow anyone to import the shortcut.”2
shortcuts sign -m anyone -i "Deploy Notes.shortcut" -o "Deploy Notes-signed.shortcut"
That command is the distribution answer for teams and CI: exported shortcuts signed with -m anyone import cleanly for recipients who have never met you. Because the anyone mode notarizes through iCloud, plan on an iCloud-signed-in session and network access before wiring it into a build pipeline.2
Importing is drag-and-drop: double-click a .shortcut file, drag it into the app, or drop it on the Dock icon; .workflow files convert from Automator on the way in.15 Shortcuts shared outside the Gallery carry a caveat Apple states plainly: “Apple cannot verify the authenticity or behavior of shortcuts shared privately.”6 Corporate fleets have a separate path: Apple Configurator supports Shortcuts automations for managed workflows.21
Settings → Advanced also holds Private Sharing, the switch governing import of privately shared (contact-gated) shortcuts, alongside Allow Running Scripts and Allow Sharing Large Amounts of Data.68 A received shortcut that won’t import usually traces to one of: unsigned file, contact-gated file from someone not in your contacts, or Private Sharing disabled.
App Intents: How Apps Add Actions
Everything in the catalog so far is Apple’s. The other half of the library comes from installed apps, and since 2022 the pipeline for that is one framework: App Intents (iOS 16, macOS 13).13 An app defines types conforming to AppIntent (a verb: parameters plus a perform() method), optionally AppEntity (a noun: a typed piece of the app’s content with an identifier and display representation), and the system takes it from there. The same definitions surface in Shortcuts, Siri, Spotlight, widgets, and Apple Intelligence; Shortcuts is one projection of the app’s intent schema, not a separate integration.134
Two adoption levels matter to how an app shows up on the Mac:
- Actions: every non-hidden intent appears as an action in the Shortcuts editor under the app’s name, composable with everything in this guide.
- App Shortcuts: intents wrapped in an
AppShortcutsProvidership as ready-to-run shortcuts the moment the app is installed, no user assembly required, with Siri trigger phrases attached.13
The framework’s reach keeps widening at the yearly cadence. The WWDC25 session on Shortcuts and Spotlight states the current contract for the Mac directly: “As long as your intent is available on macOS, they will also be available to use in Shortcuts to run as a part of Automations on Mac. This includes iOS apps that are installable on macOS.”4 An iPhone app running on an Apple silicon Mac contributes actions to Mac automations without a single line of Mac-specific code.
Apple’s adoption guidance from the same session, condensed: expose your content as entities with “key properties that you would want a model to be able to reason over” (the Use Model action consumes them), ship find actions so queries work, use attributed strings where rich text makes sense, and keep parameter summaries readable.4
Design guidance for intent authors, distilled from shipping App Intents in production apps:
- Intents are API. Treat names, parameters, and entity identifiers as a contract; renaming breaks users’ shortcuts the way renaming an endpoint breaks clients.
- Background beats foreground. An intent that can run without opening the app composes into automations; one that requires foregrounding interrupts whatever the user was doing. Separate them deliberately.4
- Return values feed pipelines. An intent that returns an entity or value gives Shortcuts users something to chain; one that returns nothing is a dead end in the graph.
This site covers the developer side in depth in the App Intents cluster: App Intents Are Apple’s New API to Your App (the adoption argument and a production walkthrough), App Intents 2.0 in iOS 26 (Visual Intelligence, snippets, deferred properties), App Intents in iOS 27 (long-running background intents, syncable entities, Spotlight reindexing), and App Intents vs MCP (when the same capability should also be an agent tool).
Spotlight and Automations Run Your Intents
macOS Tahoe extended where intents execute, and the two additions change what “adopting App Intents” buys on the Mac.4
Spotlight runs intents inline. “This year, you can now run actions from your app directly from Spotlight on Mac. Your apps can show actions in Spotlight by adopting App Intents, just like what you do for Shortcuts.”4 The requirements are specific enough to audit against:
- The parameter summary (“a short, natural language representation of what the app intent does”) “must contain all required parameters that don’t have a default value.”4
- The intent must not opt out of discovery:
isDiscoverablefalse orassistantOnlytrue removes it from Spotlight.4 - Suggestions and search come from the entity layer: implement suggested entities or an enumerable entity query for the picker, and an entity string query or indexed entities for search-as-you-type.4
Automations run intents unattended. Because Tahoe automations execute shortcuts and shortcuts execute intents, a folder change or drive mount can now invoke an app’s intent with no user present.4 For intent authors, that raises the bar set in the previous section: an intent that assumes a foreground user (presents UI, requires confirmation) breaks silently inside a Run Immediately automation. Audit each intent for unattended execution: what happens when nobody is watching the screen?
Together the two form Apple’s quiet architectural statement: the intent, not the app window, is the unit of functionality on the Mac. Spotlight is the interactive caller, automations the unattended one, Shortcuts the composition layer between them.
Driving Shortcuts from Scripts and Agents
Shortcuts occupies a specific niche in agent and script architectures: it is the least-privileged, most user-auditable way for outside code to invoke Mac capabilities. An AI agent with shell access can do most things directly, but routing an operation through a shortcut has properties raw shell doesn’t: the operation is user-defined and user-editable, its permissions are granted per shortcut and revocable in one click, and its blast radius is visible in the editor.6 Think of the shortcut layer as a capability catalog the human curates and the agent calls.
One hard requirement before any of this works: the CLI needs a logged-in GUI session. Every shortcuts subcommand — including list — talks to a helper application in the user’s Aqua session and fails with “Couldn’t communicate with a helper application” when none exists (verified on macOS 26.5). SSH-only sessions, headless CI runners, and launch daemons hit this wall; run agent and scheduled invocations inside a logged-in user session — a launchd agent, not a daemon.
The invocation contract, in agent terms:12
| Property | Value |
|---|---|
| Discover | shortcuts list --show-identifiers |
| Invoke | shortcuts run <name-or-uuid> (prefer UUIDs; names are mutable) |
| Input | -i with file paths or - for stdin |
| Output | -o - for stdout, --output-type <UTI> to force format |
| Success signal | Exit code 0/11 |
| Failure modes | Nonzero exit; or an indefinite hang on an interactive prompt |
Structured data crosses the boundary as text. The workable pattern is JSON over stdin/stdout: the caller pipes a JSON document in (-i -), the shortcut parses it with Get Dictionary from Input, does its work, and ends with Stop and Output feeding a dictionary back as text.116 The shortcut becomes a typed function with a documented schema; keep a README of each shortcut’s expected input and output shape next to whatever agent configuration invokes it.
Timeouts are the caller’s job. Because a shortcut that shows an alert pauses the CLI process indefinitely,1 every unattended caller should wrap invocation with a timeout and treat expiry as failure:
# macOS ships no timeout(1); gtimeout comes from `brew install coreutils`
if ! output=$(gtimeout 120 shortcuts run "$UUID" -i - -o - <<<"$payload"); then
echo "shortcut failed or timed out" >&2
fi
# no-Homebrew alternative using the system perl:
# perl -e 'alarm shift; exec @ARGV' 120 shortcuts run "$UUID" -i - -o - <<<"$payload"
Warm the permissions before going unattended. Run each shortcut interactively once and answer Always Allow to its prompts; confirm the run is prompt-free from a terminal before an agent or launchd job calls it.61 The permissions section explains what you’re pre-clearing.
Choose the entry point by caller type. Shell-capable callers (agents, CI, launchd agents, Makefiles — all inside a logged-in session) use the CLI. Apple Event contexts (AppleScript apps, PyObjC daemons) use Shortcuts Events and get native return values.11 Sandboxed or URL-only contexts use shortcuts://run-shortcut with x-callback for results.920 All three run the same shortcut; only the transport differs.
The symmetric direction also works: shortcuts as agent frontends. A shortcut with a keyboard shortcut or menu bar slot that gathers context (selection, clipboard, frontmost app), passes it to Run Shell Script invoking your agent CLI, and displays the result — the operating system’s input surfaces become UI for whatever tooling lives underneath.1017
Permissions and Consent (TCC)
Shortcuts inherits macOS’s consent-first security model, and every automation failure that isn’t a logic bug eventually traces here. The model has four layers; know which one is prompting and the fixes become mechanical.
1. Per-shortcut data consent. The first time a shortcut touches a protected resource, Shortcuts asks: “If a Privacy dialog appears requesting access to data, choose Allow Once, Always Allow, or Don’t Allow.” Always Allow means “the Shortcuts app won’t ask you for access the next time you run the shortcut.”6 Grants are per shortcut, per resource, and inspectable: each shortcut’s details pane has a Privacy tab where individual grants can be revoked, and “To remove access to all data for this shortcut, click Reset Privacy.”6
2. The scripts gate. The five script actions run only with Settings → Advanced → Allow Running Scripts enabled (exact list above).8 The setting is global, not per shortcut; enabling it for one hot-folder script enables it for every imported shortcut, which is a reason to read imported shortcuts before running them.6
3. System TCC prompts. Actions that reach protected OS territory (Files and Folders, Automation/Apple Events for scripting other apps, Accessibility for input control) trigger the system-level dialogs governed by System Settings → Privacy & Security. These attach to the responsible process, which is why a shortcut can behave differently in the app, from the CLI, and under an automation: different launch contexts, separately granted.6
4. Automation run policy. Each automation’s Run Immediately vs Run After Confirmation setting decides whether the trigger itself requires a human.18
Operational rules that follow:
- Prompts don’t render where nobody’s looking. Headless contexts (SSH sessions, CI runners, agents) inherit rule one of the CLI section: an unanswered consent dialog is an indefinite pause.1 Pre-clear interactively.
- Reset Privacy is the clean-slate debugger. When a shortcut misbehaves after edits, resetting its grants and re-running interactively re-surfaces every prompt in order.6
- Imported shortcuts deserve reading. Apple validates “Anyone”-signed shortcuts but “cannot verify the authenticity or behavior of shortcuts shared privately.”67 The Privacy tab shows what a shortcut has been granted; the editor shows what it does. Both take one minute.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
shortcuts run hangs forever |
Shortcut shows an alert or asks for input; CLI pauses awaiting a user1 | Redesign to take parameters from input; wrap callers in a timeout (gtimeout from coreutils — macOS has no built-in timeout) |
| Shortcut not found from CLI | Name mismatch or rename | shortcuts list --show-identifiers; invoke by UUID2 |
| Runs in app, fails from CLI or automation | Consent granted to one launch context, not another6 | Run once interactively in the failing context; answer Always Allow |
| Script action does nothing | Allow Running Scripts disabled8 | Settings → Advanced → Allow Running Scripts |
| AppleScript/ScriptingBridge run fails | Host app lacks Automation permission for Shortcuts Events6 | System Settings → Privacy & Security → Automation |
Imported .shortcut won’t open |
Unsigned, contact-gated, or Private Sharing off26 | Ask the sender for -m anyone signing; check Settings → Advanced → Private Sharing |
shortcuts sign -m anyone fails |
Notarization requires iCloud2 | Sign into iCloud; retry |
| Folder automation doesn’t fire | Automations are device-local; wrong Mac, or trigger set to confirm | Recreate on the target Mac; check Run Immediately318 |
| Piped file path arrives as text | Pipes deliver text, not files1 | Use -i for file inputs |
| Output file is the wrong format | Type inferred from filename | Set --output-type with an explicit UTI12 |
| Automation ran but nothing visible happened | Ran headless by design | Add Show Notification as the last action while debugging |
| Window actions target the wrong window | Find Windows returned multiple matches | Filter/sort in Find Windows; take first item explicitly16 |
Quick Reference Card
# Run
shortcuts run "Name" # by name
shortcuts run 8F3A...-UUID # by identifier (stable)
shortcuts run "Name" -i file.jpg -o out.png # file in, file out
echo data | shortcuts run "Name" -i - -o - # stdin → stdout
shortcuts run "Name" --output-type public.plain-text | pbcopy
# Inspect
shortcuts list # names
shortcuts list --show-identifiers # names + UUIDs
shortcuts list --folders # folders
shortcuts list -f "Folder" # scoped
shortcuts view "Name" # open in editor
# Distribute
shortcuts sign -m anyone -i in.shortcut -o out.shortcut
shortcuts sign -m people-who-know-me -i in.shortcut -o out.shortcut
# Exit codes: 0 success, 1 error
-- Background run with result (no app window)
tell application "Shortcuts Events" to run shortcut "Name" with input "payload"
shortcuts://run-shortcut?name=Name&input=text&text=payload
shortcuts://run-shortcut?name=Name&input=clipboard
shortcuts://x-callback-url/run-shortcut?name=Name&x-success=app://ok&x-error=app://fail
Checklists. Unattended-ready shortcut: no alerts or Ask Each Time parameters; consent pre-cleared with Always Allow; invoked by UUID; caller enforces a timeout; ends with Stop and Output.16 Distribution-ready file: exported, signed -m anyone, input contract documented.27
FAQ
How do I run a Mac shortcut from Terminal?
shortcuts run "Shortcut Name", optionally with -i for input files (or - for stdin), -o for output (or - for stdout), and --output-type with a Uniform Type Identifier. The command exits 0 on success and 1 on error, so it composes with &&, if, and make like any Unix tool.12
Does macOS finally have Shortcuts automations like iOS? Yes, since macOS Tahoe (26). Triggers include Time of Day, Alarm, Email, Message, Folder changes, External Drive, Display, Wi-Fi, Bluetooth, Battery Level, Charger, App open/quit, Focus, and Stage Manager, each configurable to run immediately or after confirmation.3418
What does shortcuts sign -m anyone actually do?
It notarizes the shortcut file through iCloud so that anyone can import it. The default mode, people-who-know-me, signs locally and restricts import to your own devices and people who have your contact info in Contacts.2
How do apps add their own actions to Shortcuts on Mac?
By adopting the App Intents framework. Intents appear as Shortcuts actions automatically, and an AppShortcutsProvider ships zero-setup App Shortcuts with the app. Intents available on macOS also run from Spotlight and inside Tahoe automations, including intents from iOS apps installed on Apple silicon Macs.134
How should a script or AI agent invoke shortcuts?
Use the CLI: discover with shortcuts list --show-identifiers, invoke by UUID, pass JSON over stdin, read results from stdout, and wrap every call in a timeout because a shortcut that prompts will pause forever (macOS ships no timeout(1) — use gtimeout from coreutils or your language’s process timeout). Pre-authorize each shortcut’s permission prompts interactively before unattended use. From AppleScript contexts, target Shortcuts Events to run without opening the app.1211
Can Shortcuts replace Automator?
For most workflows, yes; Apple calls Shortcuts the future of Mac automation and built a converter that imports most .workflow files directly. Automator still ships and still runs existing workflows, so migration is a choice, not a deadline.51415
Changelog
| Date | Change | Source |
|---|---|---|
| 2026-07-07 | Guide v1.0: Initial release covering Shortcuts 7.0 on macOS 26 (Tahoe). Actions catalog verified against WorkflowKit on macOS 26.5; CLI verified against shortcuts(1); automations, Use Model, and Spotlight execution per Apple documentation and WWDC25 session 260; Shortcuts Events dictionary inspected via sdef. |
12341116 |
References
-
Apple, “Run shortcuts from the command line”, Shortcuts User Guide for Mac. Primary source for CLI behavior: the Combine Images example, stdin/stdout piping, the pipe-delivers-text caveat, Uniform Type Identifier output typing, exit status (“The shortcuts command will exit 0 on a successful run or 1 on error”), and the guidance that shortcuts which show alerts pause the command-line process awaiting input. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
shortcuts(1)man page andshortcuts help <subcommand>output, verified on macOS 26.5 (Shortcuts 7.0). Primary source for the four subcommands and all flags:run(--input-pathwith-for stdin,--output-pathwith-for stdout,--output-typein UTI format),list(--folder-name,--folders,--show-identifiers),view, andsign(--modevaluesanyoneandpeople-who-know-me, withanyonenotarizing via iCloud andpeople-who-know-mesigning locally with contact-gated import). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, “What’s new in Shortcuts for iOS, iPadOS, macOS, watchOS, and visionOS 26”, Apple Support. Primary source for personal automations arriving on macOS with the 26 release cycle and the event list (time of day, email or message from specific people, folder changes, external drive connect/disconnect, Wi-Fi, Bluetooth device connect, display connect/disconnect, app launched or quit). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple, “Develop for Shortcuts and Spotlight with App Intents” (WWDC25 session 260). Primary source for the Use Model action (Private Cloud Compute, on-device, and ChatGPT model options; text, dictionary, and app-entity output types; the Follow Up toggle), Spotlight running app intents on Mac (parameter summary requirements,
isDiscoverable/assistantOnly, entity query guidance), automations on Mac (“folder and external drive automations built specifically for Mac”), and the statement that macOS-available intents run in automations “including iOS apps that are installable on macOS.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, “Meet Shortcuts for macOS” (WWDC21 session 10232). Primary source for the Monterey introduction: “Shortcuts is the future of Mac automation,” the SwiftUI implementation, iCloud sync of existing libraries, the Automator migration tool (“can convert most Automator workflows into Shortcuts”), any Mac app providing actions, and shell script + AppleScript support at launch. ↩↩↩↩↩↩↩↩↩
-
Apple, “Adjust privacy settings in Shortcuts on Mac”, Shortcuts User Guide for Mac. Primary source for the Allow Once / Always Allow / Don’t Allow consent flow, per-shortcut Privacy tab and Reset Privacy, the Advanced settings location (including Allow Sharing Large Amounts of Data and Private Sharing), and the caution that “Apple cannot verify the authenticity or behavior of shortcuts shared privately.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple, “Share shortcuts on Mac”, Shortcuts User Guide for Mac. Primary source for iCloud link sharing, File → Export, and the access options: Anyone (“Anyone can run your shortcut,” with Apple receiving a copy for validation) and People Who Know Me (“Only people who have you in their contacts will be able to run your shortcut,” with contact info included in the file). ↩↩↩↩↩↩↩↩
-
Apple, “Advanced Shortcuts settings on Mac”, Shortcuts User Guide for Mac, plus the setting’s in-app description verified on macOS 26.5: “When enabled, the actions ‘Run AppleScript’, ‘Run Shell Script’, ‘Run JavaScript for Mac Automation’, ‘Run JavaScript on Web Page’ and ‘Run Script Over SSH’ can be run.” Source for the Allow Running Scripts gate and its data-loss warning. ↩↩↩↩↩↩↩↩
-
Apple, “Run a shortcut from a URL on Mac”, Shortcuts User Guide for Mac. Primary source for the
shortcuts://run-shortcutsyntax, thename,input(textorclipboard), andtextparameters, both documented examples, and the guidance to use the Run Shortcut action rather than URLs when calling shortcuts from shortcuts. ↩↩↩↩↩↩↩↩ -
Apple, “Run a shortcut while working on your Mac”, Shortcuts User Guide for Mac. Source for Quick Actions (Use as Quick Action, Finder Control-click), the Services menu option, per-shortcut keyboard shortcuts via Add Keyboard Shortcut, and menu bar invocation. ↩↩↩↩↩
-
Shortcuts Events scripting dictionary, inspected via
sdef "/System/Library/CoreServices/Shortcuts Events.app"on macOS 26.5; bundle identifiercom.apple.shortcuts.eventsfrom the app’s Info.plist. Primary source for theruncommand withwith inputand result, the background-run note (“To run a shortcut in the background, without opening the Shortcuts app, tell ‘Shortcuts Events’ instead of ‘Shortcuts’”), shortcut properties (name, subtitle, id, folder, color, icon, accepts input, action count), folder objects, and thecom.apple.shortcuts.run/com.apple.shortcuts.organizeaccess groups. ↩↩↩↩↩↩↩↩↩↩↩ -
Apple, “Intro to Shortcuts on Mac”, Shortcuts User Guide for Mac. Source for the action/shortcut definitions and cross-device use of shortcuts created on a Mac. ↩↩↩↩
-
Apple, App Intents framework documentation, Apple Developer. Source for the framework’s role (exposing app actions and content to Shortcuts, Siri, Spotlight, widgets, and Apple Intelligence), the
AppIntent/AppEntity/AppShortcutsProvidertypes, and platform availability since iOS 16 and macOS 13. ↩↩↩↩↩↩↩↩ -
Apple, “Import Automator workflows into the Shortcuts app on Mac”, Automator User Guide. Primary source for drag-to-convert and “Shortcuts can convert most Automator workflows into shortcuts that carry out the same functions, events, and automations.” ↩↩↩
-
Apple, “Import shortcuts on Mac”, Shortcuts User Guide for Mac. Source for
.shortcutimport mechanics (double-click, drag to app or Dock) and.workflowconversion on import, including Open With → Shortcuts. ↩↩↩ -
WorkflowKit framework English strings table (
Localizable.loctable,/System/Library/PrivateFrameworks/WorkflowKit.framework), inspected on macOS 26.5 (Shortcuts 7.0). Primary source for verbatim action names cited in the catalog (361 distinct entries including Find Windows, Move Window, Resize Window, Split Screen Apps, Run Shortcut, Stop and Output, Get My Shortcuts, Use Model, and Watch Me Do), the Move/Resize Window parameter summaries and windowing positions (Full Screen, Left, Right, thirds, Bottom Leading/Trailing), and the Run Shell Script input-mode descriptions (“to stdin: The input will be converted to a file and directed to the stdin pipe of the script. as arguments: The input will be converted to a list of strings and passed as arguments to the script.”). The table includes iOS-only and legacy Workflow-era action names; catalog tables in this guide list Mac-relevant actions only. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Run Shell Script action parameters (shell selection, input mode, stdin/argument passing), per the action’s in-editor documentation strings verified on macOS 26.5; see also 16. ↩↩↩↩
-
MacMost, “An Introduction To Shortcuts Automation In macOS Tahoe”. Secondary source corroborating the full Tahoe trigger list (including Alarm, Battery Level, Charger, Focus, and Stage Manager) and the Run Immediately vs Run After Confirmation options; primary trigger categories per 3 and 4. ↩↩↩↩↩↩↩↩
-
Shortcuts.app
Info.plist, verified on macOS 26.5: registered URL schemesshortcutsandworkflow(plus internalshortcuts-production), and document typescom.apple.shortcutandcom.apple.shortcuts.workflow-file. ↩↩ -
Apple, “Use x-callback-url with Shortcuts on Mac”, Shortcuts User Guide for Mac. Primary source for the
x-callback-urlrun syntax and thex-success(with appendedresult),x-error(witherrorMessage), andx-cancelparameters. ↩↩↩ -
Apple, “Use Shortcuts automations in Apple Configurator for Mac”, Apple Configurator User Guide. Source for managed-device Shortcuts automation support. ↩