← All posts

studioLightning Studio

Siri AI Opens to All Apps: How to Prepare Your App Intents Now

Siri AI Opens to All Apps: How to Prepare Your App Intents Now

On November 3, Apple opened a Siri AI Developer Preview to every developer. With the iOS 27.3 betas, any app can expose its own actions and content to the new Siri through App Intents, and a new "app skills" format lets you teach Siri multi-step tasks. Nothing reaches the App Store until spring, which makes the next few months the cheapest time to get your intents in shape.

▶ Watch the video version (about 4 minutes):

What Apple announced on November 3

Apple's developer news post, Siri AI is now open to all developers, says the preview starts with the iOS 27.3, iPadOS 27.3, macOS 27.3 and visionOS 27.3 betas. Any app can now bring its content and actions into Siri AI using App Intents, and Siri can use its personal context understanding, onscreen awareness and natural language handling on top of them. Apple's examples are ordinary app jobs: checking a delivery, booking a reservation, placing an order.

Three points in the announcement matter for planning:

  • Custom actions, not only schemas. Until now, Siri mostly worked with intents that matched Apple's predefined app schema domains. The preview lets Siri call custom actions and surface any entity in the Spotlight semantic index, "not just the ones that fit an existing schema".
  • Skills for complex requests. A new skills format lets you explain how several actions combine into one experience.
  • Timeline. Siri AI app intents ship to customers "in a few months", App Store submission opens in the spring, and Apple says terms and usage policies will follow.

Apple is rolling out the same capabilities in its own apps. 9to5Mac's tour of the 27.3 beta lists scheduled iMessages, playlist creation in Music, calendar events with invitees and video links, Safari tab groups and file management in Files. These are useful references for what "good" looks like.

For teams in Vietnam there is one more line worth noticing: Siri AI currently supports English, French, Japanese, Korean, Portuguese and Spanish, and Apple says it will soon add Traditional Chinese, Norwegian, Turkish and Vietnamese.

How the new Siri finds and uses your app

The Developer Preview documentation describes three kinds of requests your app now has to handle well:

SituationDoes the user need to say your app name?Example from Apple's docs
App in foreground or Live Activity runningNo"Change my ride pickup to a new address"
App in backgroundYes"Are the sneakers I liked in [app] on sale?"
Across appsYes, for the app that holds the data"Send my favorite sneakers to my partner in [messaging app]"

Siri also shows results in card snippets built from your own views (0), so your branding still appears inside the Siri conversation.

The model behind this is familiar if you have worked with LLM tool calling. Each intent you mark becomes a tool. Siri reads the intent's title and description to decide whether to call it, fills the parameters from the request and from your entities, and then composes a response.

Step 1: Turn your key actions into tool intents

According to Apple's guide Bringing custom actions and content to Siri, Siri can only perform actions you make explicitly available. You do that with the @AppIntent(.tool) macro, which adds conformance to the ToolIntent protocol:

@AppIntent(.tool)
struct AddToCart: AppIntent {
    static let title: LocalizedStringResource = "Add to Cart"
    static let description = IntentDescription(
        LocalizedStringResource("Adds a product to the shopping cart.")
    )

    @Parameter(title: "Item", description: LocalizedStringResource("The product to add"))
    var item: ProductEntity

    @Parameter(title: "Quantity", description: LocalizedStringResource("How many to add"), default: 1)
    var quantity: Int

    func perform() async throws -> some IntentResult {
        try await Cart.shared.add(item, quantity: quantity)
        return .result()
    }
}

A few rules from the same page save time:

  • If an intent already conforms to a Siri-supported schema, such as the messaging sendMessage schema, do not add .tool. It is already available.
  • If an intent has no real action in perform(), like most WidgetConfigurationIntent types, it cannot be a tool.
  • Some schemas support Shortcuts but not Siri. For those, switch to @AppIntent(.tool, schema: ...), for example .journal.createEntry.
  • Every tool intent and every parameter needs a clear title and description. This text is what Siri uses to choose between your intents, so write it the way a user would describe the task.

Step 2: Describe and protect your entities

Entities are the nouns of your app: orders, products, bookings, documents. Apple asks you to give every @Property, @DeferredProperty and @ComputedProperty a description, and to index entities in Spotlight so Siri can find them. If you do not index an entity, the system can fall back to an EnumerableEntityQuery you provide.

The detail most teams will miss is security. Apple's documentation states that, by default, app entities do not require authentication before Siri or Shortcuts present their information. For anything sensitive, declare an IntentAuthenticationPolicy, either for the whole entity or per property (for example .requiresAuthentication or .requiresLocalDeviceAuthentication). Properties that should never leave the app can use visibility: .internal, which hides them from Siri and Shortcuts while keeping them available to your widgets and extensions.

Two newer options are also worth a look:

  • Generable entities. With @AppEntity(.generable), Siri can build an entity straight from the request, such as a flight search with origin, destination, date and cabin, instead of asking your app to look it up first.
  • Transferable entities. If your intents take or return custom entities, conform them to Transferable so Siri can pass them to another app, for example emailing a flight itinerary.

Step 3: Write app skills for multi-step tasks

A tool intent does one thing. When a request needs several steps, such as search, add to cart, choose delivery and confirm, Apple's guide Orchestrating complex actions with app skills recommends an app skill. The format will look familiar to anyone who has written agent instructions:

  • Add a Skills.skillsbundle to the app target (File > New > File from Template > Skills Bundle).
  • Inside Skills/, create one folder per skill, named with lowercase letters, digits and hyphens, each containing a single SKILL.md.
  • The frontmatter has only name (1-64 characters, must match the folder) and description (one line, up to 1,024 characters). Siri reads the description to decide whether the skill applies.
  • The Markdown body is free-form guidance, limited to 10,000 characters, and is read only after the skill matches.

Apple notes that app skills use a subset of the Agent Skills specification: no other frontmatter fields, no scripts, no reference files. Its advice for the body is practical. Tell Siri which tool to use for which step, in what order, how to disambiguate, and what not to do. Refer to tools by what they do ("call the get weather tool first"), not by Swift type name, and do not repeat information your intent metadata already provides.

Treat a skill as guidance for a model, not as a state machine. Business rules that must always hold, such as payment checks or stock limits, still belong in your perform() code.

Step 4: Test it the way Apple expects

The preview has strict distribution limits. You can test by running a development-signed build on a device that supports the preview, or by sending builds to internal TestFlight testers. The documentation is explicit that Siri AI features are not available to external TestFlight testers or to App Store users during the preview, and that the API and Siri behavior may still change. App skills must be tested on a real device, not in the Simulator.

Apple added three verification layers:

  1. App Intents Testing for unit-style checks of your intents and entities.
  2. Siri Integration Advisor in Xcode, which reviews your App Intents setup and suggests fixes.
  3. Siri Evaluations, a framework for scripting requests to Siri and measuring how it handles them, so you notice regressions when you change intents.

For manual testing of skills, Apple suggests rephrasing each request several times to check that the skill description is specific enough to be chosen and broad enough to catch common wording.

A checklist for the next three months

  • [ ] Install the latest Xcode beta and the iOS 27.3 beta on one Apple Intelligence-capable test device.
  • [ ] List the 5-10 actions users repeat most in your app; those are your first tool intents.
  • [ ] Rewrite intent and parameter titles and descriptions in plain user language.
  • [ ] Audit every entity for sensitive fields; add authentication policies and .internal visibility.
  • [ ] Index key entities in Spotlight and donate intents when users perform actions in the UI.
  • [ ] Add onscreen context to the screens where users would say "this" or "that one".
  • [ ] Write one app skill for your most valuable multi-step flow.
  • [ ] Set up internal TestFlight and a small Siri Evaluations suite.
  • [ ] Watch for Apple's terms and usage policies before planning a spring launch.

Our take

At Lightning Studio we build mobile apps for clients, and most of them already have a few App Intents written for Shortcuts or widgets. The cheapest win right now is not new code: it is better titles, descriptions and entity metadata, plus a security pass on what Siri can read without Face ID. That work also improves Spotlight and Shortcuts today, so it is not wasted if Apple changes the APIs during the preview.

We would hold off on big app skill investments until Apple publishes the usage policies, and we would not promise clients a Siri feature on a fixed date before App Store submission actually opens. Cross-platform apps (Flutter, React Native) will need native Swift targets for this, which is worth budgeting for early. If you also ship on Android, the same "actions as tools" thinking applies there, so a clean action layer in your app pays off twice.

Sources

Need help adding Siri AI support to your iOS app, or auditing your App Intents before spring? Email support@lightning-studio.org or see what we build at https://lightning-studio.org/studio/.


Cover photo: With UK English Siri understands me much better by Kārlis Dambrāns, CC BY 2.0, via Wikimedia Commons (cropped).

Facebook