Build advanced iOS Shortcuts on the web, then download them as importable .shortcut files.
https://shortcut-studio.val.run
iOS Shortcuts files are a plist with a WFWorkflowActions array. Each built-in action has a stable identifier (is.workflow.actions.downloadurl, etc.). This app maps a clean JSON action model → the exact XML plist via:
| File | Role |
|---|---|
actions.ts | Action catalog — id, fields, and →-plist builders (72 advanced actions) |
builder.ts | Generic XML plist serializer + .shortcut/WFWorkflow assembly; normalizes If/Otherwise/End-If grouping |
templates.ts | The template library (101 shortcuts, featured-first ordering) |
test.ts | Library sanity tests — balanced If/Menu/Repeat blocks, unique keys, id audit |
ai.ts | LLM "describe → build" (OpenAI or Anthropic, auto-detected) |
ui.tsx | Client-side React studio (Twind styling) |
main.ts | HTTP entrypoint: page, /api/meta, /api/build, /api/ai, /source |
GET /api/meta — action catalog + templates + AI status.POST /api/build — {name, steps} → downloadable .shortcut.POST /api/ai — {description, provider?} → {name, steps}.GET /source — view/remix this val.The "Describe & Build" AI feature is live and verified on Groq and Gemini. It auto-detects any of four providers (priority: Groq → Gemini → OpenAI → Anthropic):
GROQ_API_KEY → model openai/gpt-oss-120b (via Groq)GEMINI_API_KEY → model gemini-3.6-flashOPENAI_API_KEY → model gpt-4o-miniANTHROPIC_API_KEY → model claude-sonnet-4Everything else (templates, editor, export) works with no key at all.
.item/.end passes. Worth refining for imported menus..shortcut files directly — device-import testing on iOS is the ultimate check.Fork via the view source link, extend actions.ts with more identifiers, and remix your own copy.