Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Generate 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: 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
To use output from a previous action: The source action needs a UUID parameter Reference it using OutputUUID in an attachmentsByRange dictionary Use ๏ฟผ (U+FFFC) as placeholder in the string where the variable goes Set WFSerializationType to WFTextTokenString
Control flow actions (repeat, conditional, menu) use: GroupingIdentifier: UUID linking start/middle/end actions WFControlFlowMode: 0=start, 1=middle (else/case), 2=end
ActionIdentifierKey ParametersTextis.workflow.actions.gettextWFTextActionTextShow Resultis.workflow.actions.showresultTextAsk for Inputis.workflow.actions.askWFAskActionPrompt, WFInputTypeUse AI Modelis.workflow.actions.askllmWFLLMPrompt, WFLLMModel, WFGenerativeResultTypeCommentis.workflow.actions.commentWFCommentActionTextURLis.workflow.actions.urlWFURLActionURLGet Contents of URLis.workflow.actions.downloadurlWFURL, WFHTTPMethodGet Weatheris.workflow.actions.weather.currentconditions(none required)Open Appis.workflow.actions.openappWFAppIdentifierOpen URLis.workflow.actions.openurlWFInputAlertis.workflow.actions.alertWFAlertActionTitle, WFAlertActionMessageNotificationis.workflow.actions.notificationWFNotificationActionTitle, WFNotificationActionBodySet Variableis.workflow.actions.setvariableWFVariableName, WFInputGet Variableis.workflow.actions.getvariableWFVariableNumberis.workflow.actions.numberWFNumberActionNumberListis.workflow.actions.listWFItemsDictionaryis.workflow.actions.dictionaryWFItemsRepeat (count)is.workflow.actions.repeat.countWFRepeatCount, GroupingIdentifier, WFControlFlowModeRepeat (each)is.workflow.actions.repeat.eachWFInput, GroupingIdentifier, WFControlFlowModeIf/Otherwiseis.workflow.actions.conditionalWFInput, WFCondition, GroupingIdentifier, WFControlFlowModeChoose from Menuis.workflow.actions.choosefrommenuWFMenuPrompt, WFMenuItems, GroupingIdentifier, WFControlFlowModeFind Photosis.workflow.actions.filter.photosWFContentItemFilter (see FILTERS.md)Delete Photosis.workflow.actions.deletephotosphotos (NOT WFInput!)
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
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: Write your plist as XML to a .shortcut file Run shortcuts sign to add cryptographic signature (~19KB added) The signed file can be opened/imported into Shortcuts.app
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 sign to make it importable
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
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.