shortcuts-skillGenerate macOS/iOS Shortcuts by creating plist files. Use when asked to create shortcuts, automate workflows, build .shortcut files, or generate Shortcuts plists. Covers 1,155 actions (427 WF*Actions + 728 AppIntents), variable references, and control flow.
Install via ClawdBot CLI:
clawdbot install erik-agens/shortcuts-skillGenerate valid .shortcut files that can be signed and imported into Apple's Shortcuts app.
A shortcut is a binary plist with this structure:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WFWorkflowActions</key>
<array>
<!-- Actions go here -->
</array>
<key>WFWorkflowClientVersion</key>
<string>2700.0.4</string>
<key>WFWorkflowHasOutputFallback</key>
<false/>
<key>WFWorkflowIcon</key>
<dict>
<key>WFWorkflowIconGlyphNumber</key>
<integer>59511</integer>
<key>WFWorkflowIconStartColor</key>
<integer>4282601983</integer>
</dict>
<key>WFWorkflowImportQuestions</key>
<array/>
<key>WFWorkflowMinimumClientVersion</key>
<integer>900</integer>
<key>WFWorkflowMinimumClientVersionString</key>
<string>900</string>
<key>WFWorkflowName</key>
<string>My Shortcut</string>
<key>WFWorkflowOutputContentItemClasses</key>
<array/>
<key>WFWorkflowTypes</key>
<array/>
</dict>
</plist>
<dict>
<key>WFWorkflowActionIdentifier</key>
<string>is.workflow.actions.gettext</string>
<key>WFWorkflowActionParameters</key>
<dict>
<key>UUID</key>
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
<key>WFTextActionText</key>
<string>Hello World!</string>
</dict>
</dict>
<dict>
<key>WFWorkflowActionIdentifier</key>
<string>is.workflow.actions.showresult</string>
<key>WFWorkflowActionParameters</key>
<dict>
<key>Text</key>
<dict>
<key>Value</key>
<dict>
<key>attachmentsByRange</key>
<dict>
<key>{0, 1}</key>
<dict>
<key>OutputName</key>
<string>Text</string>
<key>OutputUUID</key>
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
<key>Type</key>
<string>ActionOutput</string>
</dict>
</dict>
<key>string</key>
<string>ļæ¼</string>
</dict>
<key>WFSerializationType</key>
<string>WFTextTokenString</string>
</dict>
</dict>
</dict>
Every action has:
is.workflow.actions. (e.g., is.workflow.actions.showresult)WFWorkflowActionParametersTo use output from a previous action:
UUID parameterOutputUUID in an attachmentsByRange dictionaryļæ¼ (U+FFFC) as placeholder in the string where the variable goesWFSerializationType to WFTextTokenStringControl flow actions (repeat, conditional, menu) use:
GroupingIdentifier: UUID linking start/middle/end actionsWFControlFlowMode: 0=start, 1=middle (else/case), 2=end| Action | Identifier | Key Parameters |
|--------|------------|----------------|
| Text | is.workflow.actions.gettext | WFTextActionText |
| Show Result | is.workflow.actions.showresult | Text |
| Ask for Input | is.workflow.actions.ask | WFAskActionPrompt, WFInputType |
| Use AI Model | is.workflow.actions.askllm | WFLLMPrompt, WFLLMModel, WFGenerativeResultType |
| Comment | is.workflow.actions.comment | WFCommentActionText |
| URL | is.workflow.actions.url | WFURLActionURL |
| Get Contents of URL | is.workflow.actions.downloadurl | WFURL, WFHTTPMethod |
| Get Weather | is.workflow.actions.weather.currentconditions | (none required) |
| Open App | is.workflow.actions.openapp | WFAppIdentifier |
| Open URL | is.workflow.actions.openurl | WFInput |
| Alert | is.workflow.actions.alert | WFAlertActionTitle, WFAlertActionMessage |
| Notification | is.workflow.actions.notification | WFNotificationActionTitle, WFNotificationActionBody |
| Set Variable | is.workflow.actions.setvariable | WFVariableName, WFInput |
| Get Variable | is.workflow.actions.getvariable | WFVariable |
| Number | is.workflow.actions.number | WFNumberActionNumber |
| List | is.workflow.actions.list | WFItems |
| Dictionary | is.workflow.actions.dictionary | WFItems |
| Repeat (count) | is.workflow.actions.repeat.count | WFRepeatCount, GroupingIdentifier, WFControlFlowMode |
| Repeat (each) | is.workflow.actions.repeat.each | WFInput, GroupingIdentifier, WFControlFlowMode |
| If/Otherwise | is.workflow.actions.conditional | WFInput, WFCondition, GroupingIdentifier, WFControlFlowMode |
| Choose from Menu | is.workflow.actions.choosefrommenu | WFMenuPrompt, WFMenuItems, GroupingIdentifier, WFControlFlowMode |
| Find Photos | is.workflow.actions.filter.photos | WFContentItemFilter (see FILTERS.md) |
| Delete Photos | is.workflow.actions.deletephotos | photos (NOT WFInput!) |
For complete documentation, see:
Shortcuts MUST be signed before they can be imported. Use the macOS shortcuts CLI:
# Sign for anyone to use
shortcuts sign --mode anyone --input MyShortcut.shortcut --output MyShortcut_signed.shortcut
# Sign for people who know you
shortcuts sign --mode people-who-know-me --input MyShortcut.shortcut --output MyShortcut_signed.shortcut
The signing process:
.shortcut fileshortcuts sign to add cryptographic signature (~19KB added)OutputUUID.shortcut (XML plist format is fine)shortcuts sign to make it importableA1B2C3D4-E5F6-7890-ABCD-EF12345678900 not 0 {position, length} - e.g., {0, 1} for first characterļæ¼ (U+FFFC) marks where variables are insertedGroupingIdentifierGenerated Mar 1, 2026
Automates social media posting by generating text, fetching images from URLs, and scheduling notifications. Useful for marketers and creators to streamline repetitive tasks without coding.
Creates shortcuts for daily routines like checking weather, setting reminders, and managing to-do lists. Helps individuals save time by automating common iOS/macOS workflows.
Builds workflows to scrape web data, parse JSON, and store results in variables or files. Ideal for researchers and analysts needing automated data gathering on Apple devices.
Generates shortcuts to control smart devices via URLs or app intents, such as turning lights on/off or adjusting thermostats. Enhances home automation for tech-savvy users.
Designs interactive learning shortcuts with menus and conditional logic for quizzes or tutorials. Supports educators in creating engaging digital content for students.
Offer free basic shortcut templates with premium features like advanced AI actions or custom integrations. Monetize through subscriptions or one-time purchases for pro versions.
Provide custom shortcut development for businesses to automate internal processes like data entry or reporting. Charge per project or ongoing maintenance contracts.
Sell courses, tutorials, and workshops teaching users how to build complex shortcuts. Generate income from course sales, live sessions, and affiliate marketing with tools.
š¬ Integration Tip
Use the Write tool to generate plist files and Bash to sign them for import, ensuring compatibility with Apple's Shortcuts app.
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.
Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications.
Advanced desktop automation with mouse, keyboard, and screen control
Manage n8n workflows and automations via API. Use when working with n8n workflows, executions, or automation tasks - listing workflows, activating/deactivating, checking execution status, manually triggering workflows, or debugging automation issues.
Design and implement automation workflows to save time and scale operations as a solopreneur. Use when identifying repetitive tasks to automate, building workflows across tools, setting up triggers and actions, or optimizing existing automations. Covers automation opportunity identification, workflow design, tool selection (Zapier, Make, n8n), testing, and maintenance. Trigger on "automate", "automation", "workflow automation", "save time", "reduce manual work", "automate my business", "no-code automation".
Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.