Siri Skills

Siri Skills helps iOS developers build Siri app skills: the SKILL.md files that live in an app's Skills.skillsbundle and teach Siri how to combine the app's App Intents. The MCP server can validate a SKILL.md against Apple's rules (frontmatter, naming, description limits), list and fetch 40 ready-made example skills across app categories, scaffold new skills, and read the companion guides. Use it locally over stdio with npx, or connect to the free hosted endpoint — no API key. Works with Claude, Cursor, VS Code and other MCP clients. Open source under MIT.

Hosted MCP Server

npx add-mcp 'https://siriskills.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Awesome Siri Skills

A curated library of Siri app skills, plus a CLI and MCP server to validate and ship them.

CI npm License: MIT Website MCP

Since iOS 27.3, any app can plug into Siri AI through App Intents. App skills are short SKILL.md files in your app's Skills.skillsbundle that teach Siri how to combine your intents for a task: which tools to call, in what order, when to ask, and what never to do.

This repo gives you:

  • 40 example skills across 18 app categories. Copy a folder into your bundle and rename the tools.
  • siriskills CLI that validates every bundle in your Xcode project, including the traps Xcode stays silent about.
  • MCP server so Claude Code, Cursor, or VS Code can write, install, and validate skills for you.

[!NOTE] These are Siri app skills, read by Siri's model on the user's device. They are not coding-assistant skills, even though both use SKILL.md.

Contents

Quick start

# Check every Skills.skillsbundle in your project
npx -y siriskills validate .

# Start from an example
npx -y siriskills add reorder-delivery --bundle MyApp/Skills.skillsbundle

# Or let your coding agent do it
claude mcp add siriskills -- npx -y siriskills mcp

Prefer a browser? Use the generator and validator on siriskills.com.

How app skills work

MyApp/
└── Skills.skillsbundle/          ← one per target (Skills Bundle template in Xcode)
    └── Skills/
        └── reorder-delivery/     ← folder name == skill name
            └── SKILL.md          ← the only file that ships
---
name: reorder-delivery
description: Reorder food from a past delivery. Use when the user asks to reorder, order again, or get the usual. Not for browsing menus.
---

# Reorder a Delivery

1. Use the Find Past Orders tool. If more than one order matches, ask which one.
2. Add each item with the Add to Cart tool, keeping the same quantities.
3. Use the Show Cart tool and ask the user to confirm before they pay.

The rules, from Apple's Skills Bundle documentation:

RuleWhy it matters
Frontmatter has only name and descriptionAny other field is ignored with a warning
name is kebab-case, ≤ 64 chars, equals the folder nameOtherwise it's a build error
description ≤ 1,024 charsSiri routes on the description alone, so put the phrasing and boundaries there
Refer to tools by title ("the Add to Cart tool")Swift type names aren't part of the API
Only SKILL.md is compiledreferences/ and other files are ignored
One error anywhere means no skills ship at allNot just the broken one
Bundle must be in Copy Bundle ResourcesOtherwise nothing compiles and Xcode shows no message
Skill names must be unique across app, extensions, frameworksDuplicates silently drop one, undefined which
Skills guide; they don't enforceProtect sensitive actions in code, not in prose

Skill library

Every skill is written for a hypothetical app. None is taken from a shipping app. Rename the tools to match your own App Intents titles. Browse them with icons and notes at siriskills.com/templates.

40 skills across 18 categories. Each one passes the Skills Bundle build rules in CI.

Business

SkillNameWhat it handles
Send an invoiceinvoice-sendCreate an invoice for a client from a sentence and leave it as a draft for review.

Education

SkillNameWhat it handles
Log reading progressreading-progressUpdate the current book's page, and ask which book when two are in progress.
Practice today's lessonlesson-practiceStart the next due lesson, or review mistakes when the user asks to practice.

Entertainment

SkillNameWhat it handles
Get movie ticketsmovie-ticketsFind showtimes for a film nearby and hold seats only after the user picks a time.
Invite friends to playgame-sessionInvite online friends to a party for a game the user names.
What should I watchwatch-nextPick one show to continue or start, based on what the user's in the middle of.

Finance

SkillNameWhat it handles
Check a budgetbudget-checkAnswer "can I afford it" against what's left in a category this month.
File a receiptreceipt-captureAttach a receipt to the right expense report and ask before creating a new one.
Split an expense with friendssplit-expenseHandle "split dinner with Sam and Alex, 90 dollars" end to end, including the cases where a name matches two people.

Food & Drink

SkillNameWhat it handles
Order the usual coffeecoffee-usualGet a regular's order in for pickup at the nearest store, with the right size and milk.
Plan the week's dinnersmeal-plan-weekFill the week's dinner slots from saved recipes without overwriting meals already planned.
Reorder a past deliveryreorder-deliveryLet people say "order the usual" and get last week's order back in the cart, without Siri ever checking out on its own.

Health & Fitness

SkillNameWhat it handles
Explain a heart rate readingheart-checkSummarize the latest reading in plain words and point to the app's guidance, never a diagnosis.
Log a medication doselog-doseMark a dose as taken from a sentence, and ask before logging a dose that looks like a double.
Log a workout from a sentencelog-workoutTurn "I just ran 5K in 28 minutes" into a logged session, and know when to ask instead of guessing the activity.
Save a bike rideride-logSave a ride with the route the user describes, and ask about the bike when they own more than one.
Start a wind-down routinesleep-wind-downStart tonight's routine, set the alarm the user mentions, and stay quiet about stats unless asked.

Lifestyle

SkillNameWhat it handles
Log a feed or napbaby-logRecord feeds, naps and diapers from a short sentence at 3 a.m.
Log a pet's mealpet-feedingRecord a feeding for the right pet and warn if it looks like a second dinner.

Music

SkillNameWhat it handles
Build a playlistplaylist-buildMake a playlist from a mood or activity and the user's own library.
Catch up on podcastspodcast-catchupQueue unplayed episodes from favorite shows, shortest first when time is short.

Navigation

SkillNameWhat it handles
Find where to return a rental carcar-rental-returnGet directions to the return location and remind about fuel, without changing the booking.
Remember where I parkedparking-findSave or recall a parking spot with the floor and the time left on the meter.

News

SkillNameWhat it handles
Get a morning briefingnews-briefRead the top stories from the user's followed topics in under two minutes.

Photo & Video

SkillNameWhat it handles
Make an album from a tripphoto-albumGather a trip's photos into an album, skipping screenshots and duplicates.

Productivity

SkillNameWhat it handles
Clean up a folder of notesorganize-notesDefine what "clean up" means in your app, so Siri groups and archives notes the way your users expect.
Find time for a meetingcalendar-find-timeFind a free slot that works for the people named, then propose instead of booking.
Follow up on an emailemail-followupDraft a short follow-up to the last unanswered thread with someone, and leave sending to the user.
Save a voice memo to a projectvoice-memoFile the last recording under the right project with a title from what was said.
Summarize a documentdoc-summarySummarize the document on screen or by name, in the length the user wants.
Triage today's to-dostodo-triageSort what's due today into now, later and someday, and only move tasks after a yes.

Shopping

SkillNameWhat it handles
Add a recipe's groceriesgrocery-addAdd only the missing ingredients of a recipe to the list, merged with what's already there.
Start a returnreturn-itemStart a return for an item, check the return window, and ask about refund or exchange.
Track a packageorder-trackAnswer "where's my order" with the latest status and delivery window.

Smart Home

SkillNameWhat it handles
Set the house to awayhome-awayLock up, lower the heating and turn off lights, but ask before arming the alarm.

Social

SkillNameWhat it handles
Plan something with friendsgroup-planStart a poll in the right group for a plan with options the user gives.

Travel

SkillNameWhat it handles
Ask for late checkouthotel-late-checkoutRequest late checkout for the current stay, with the time the user wants.
Check in for a flightflight-check-inGet from "check me in for tomorrow's flight" to a boarding pass, with the right questions when there are several travellers or legs.

Utilities

SkillNameWhat it handles
Report a broken thing at homerepair-requestTurn "the kitchen tap is leaking" into a repair request with the right category.

Weather

SkillNameWhat it handles
Should I bring an umbrellaweather-planAnswer the practical question, not the forecast table, for where the user is going.

CLI

siriskills validate [path…]        Validate bundles under path (default .), a skill folder, or a SKILL.md
    --strict                       Treat warnings as errors (good for CI)
    --tips                         Also show description routing tips
    --json                         Machine-readable output
siriskills check-build <App.app>   Confirm Xcode compiled your skills (.skillsc) into a built app
siriskills new <name>              Scaffold Skills/<name>/SKILL.md   [--bundle path] [--force]
siriskills list [category]         List the example skills
siriskills show <name>             Print an example skill
siriskills add <name>              Copy an example skill into your bundle   [--bundle path] [--as name]
siriskills mcp                     Run the MCP server over stdio

What validate catches that the Xcode build doesn't:

$ npx siriskills validate .
App/Skills.skillsbundle/Skills/plan-meal/SKILL.md:3: error: 'plan-meal': YAML syntax error. An unquoted ": " inside the description is the usual cause.
✗ App/Skills.skillsbundle — 4 skills
✓ Widget/Skills.skillsbundle — 1 skill
warning: skill name 'reorder-delivery' is used twice; only one is kept and which one is undefined:
  App/Skills.skillsbundle/Skills/reorder-delivery/SKILL.md
  Widget/Skills.skillsbundle/Skills/reorder-delivery/SKILL.md

1 error: the app will ship with no skills at all.

Add it to CI:

- run: npx -y siriskills validate . --strict

After building, confirm the bundle actually compiled:

npx siriskills check-build ~/Library/Developer/Xcode/DerivedData/MyApp-*/Build/Products/Debug-iphoneos/MyApp.app

MCP server

Two ways to connect. Both are free, with no API key.

Local (stdio)Hosted
Runnpx -y siriskills mcphttps://siriskills.com/mcp
Reads your project's bundles✅—
Writes skills into your bundle✅—
Validate, templates✅✅
Guides—✅

Claude Code

claude mcp add siriskills -- npx -y siriskills mcp                 # local
claude mcp add --transport http siriskills-web https://siriskills.com/mcp   # hosted

Cursor / VS Code / Claude Desktop (mcp.json)

{
  "mcpServers": {
    "siriskills": { "command": "npx", "args": ["-y", "siriskills", "mcp"] }
  }
}

Local tools: validate_skill, validate_bundle, check_build, list_templates, get_template, write_skill.

Try: "Add a Siri skill to my app for reordering past orders, using my intents' real titles, then validate the bundle."

Resources

Official

Tools

Guides

Articles and discussion

Related

Contributing

New skills, fixes, and resources are welcome. See CONTRIBUTING.md. Every skill must pass npm run validate, and must be written for a hypothetical app.

License

MIT. Icons from Fluent Emoji by Microsoft (MIT).

Not affiliated with, endorsed by, or sponsored by Apple Inc. Apple, Siri, Xcode, and App Intents are trademarks of Apple Inc., registered in the U.S. and other countries.