drewocarr/generate-shortcuts-skill/shortcuts-generator
Claude Code and agent skill by drewocarr/generate-shortcuts-skill
- community
Checking that the SKILL.md file is still in the repository.
Generate 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
npx vskill@latest install drewocarr/generate-shortcuts-skill/shortcuts-generatorSKILL.md
macOS Shortcuts Generator
Generate valid .shortcut files that can be signed and imported into Apple's Shortcuts app.
Quick Start
A shortcut is a binary plist with this structure:
Minimal Hello World
Core Concepts
1. Actions
Every action has:
- Identifier:
is.workflow.actions.<name>(e.g.,is.workflow.actions.showresult) - Parameters: Action-specific configuration in
WFWorkflowActionParameters - UUID: Unique identifier for referencing this action's output
2. Variable References
To use output from a previous action:
- The source action needs a
UUIDparameter - Reference it using
OutputUUIDin anattachmentsByRangedictionary - Use
(U+FFFC) as placeholder in the string where the variable goes - Set
WFSerializationTypetoWFTextTokenString
3. Control Flow
Control flow actions (repeat, conditional, menu) use:
GroupingIdentifier: UUID linking start/middle/end actionsWFControlFlowMode: 0=start, 1=middle (else/case), 2=end
Common Actions Quick Reference
| 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!) |
Detailed Reference Files
For complete documentation, see:
- PLIST_FORMAT.md - Complete plist structure
- ACTIONS.md - All 427 WF*Action identifiers and parameters
- APPINTENTS.md - All 728 AppIntent actions
- PARAMETER_TYPES.md - All parameter value types and serialization formats
- VARIABLES.md - Variable reference system
- CONTROL_FLOW.md - Repeat, Conditional, Menu patterns
- FILTERS.md - Content filters for Find/Filter actions (photos, files, etc.)
- EXAMPLES.md - Complete working examples
Signing Shortcuts
Shortcuts MUST be signed before they can be imported. Use the macOS shortcuts CLI:
The signing process:
- Write your plist as XML to a
.shortcutfile - Run
shortcuts signto add cryptographic signature (~19KB added) - The signed file can be opened/imported into Shortcuts.app
Workflow for Creating Shortcuts
- Define actions - List what the shortcut should do
- Generate UUIDs - Each action that produces output needs a unique UUID
- Build action array - Create each action dictionary with identifier and parameters
- Wire variable references - Connect outputs to inputs using
OutputUUID - Wrap in plist - Add the root structure with icon, name, version
- Write to file - Save as
.shortcut(XML plist format is fine) - Sign - Run
shortcuts signto make it importable
Key Rules
- UUIDs must be uppercase:
A1B2C3D4-E5F6-7890-ABCD-EF1234567890 - WFControlFlowMode is an integer: Use
<integer>0</integer>not<string>0</string> - Range keys use format:
{position, length}- e.g.,{0, 1}for first character - The placeholder character:
(U+FFFC) marks where variables are inserted - Control flow needs matching ends: Every repeat/if/menu start needs an end action with same
GroupingIdentifier
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSKILL.md
Popularity
- Repository stars
- 161
- Repository forks
- 14
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/drewocarr/generate-shortcuts-skill/shortcuts-generator)