Expo SDK 58 · iOS

App Intents from React Native: Siri, Spotlight and Apple Intelligence with expo-app-intents

Expo SDK 58 quietly shipped one of the most interesting mobile features of the year: expo-app-intents, which lets your React Native app expose its actions to Siri, Shortcuts, Spotlight and Apple Intelligence, from JavaScript, no Swift required. Here is what it is, how the pieces fit, and where it actually earns its place in a product.

A React Native app exposing App Intents to Siri, Spotlight and Apple Intelligence
By Ritesh Agarwal12 min read

What SDK 58 shipped

Expo SDK 58 entered beta in mid-September 2026, built for iOS 27 and bundling the React Native 0.88 release candidate (RN 0.88 stable is scheduled for around 12 October 2026). Alongside faster Android builds, Android home-screen widgets and a new CLI aimed at coding agents, the headline for iOS teams is expo-app-intents: a first-class way to define Apple App Intents from JavaScript, plus an Expo Device Hub integration for testing with Xcode 27.

Beta boundary. SDK 58 is in beta as of late September 2026 and the expo-app-intents API may change before stable. The code below shows the shape of the integration (config plugin + JS-defined intents) so you can plan around it; verify exact names and signatures against the SDK 58 changelog before you ship.

Why App Intents matter now

An App Intent is a declaration that says “my app can do this specific thing, with these parameters.” Once declared, the systemcan invoke it: Siri and Shortcuts can run it, Spotlight can surface it, and, the reason this is suddenly interesting, Apple Intelligence can discover and chain it. It turns your app from something a user has to open into a set of capabilities the OS can call on the user's behalf.

Until now, doing this in a React Native app meant dropping into Swift, defining AppIntent structs natively, and bridging back to your JS. expo-app-intents collapses that into the JS layer where your app logic already lives, which is what makes it worth a serious look rather than a “maybe next year.”

How the pieces fit

Three parts, in the order you set them up:

  1. The config plugin in app.json enables the module and its iOS entitlements at prebuild.
  2. Intent definitions in JS/TS: a title, a description the system (and Apple Intelligence) reads, typed parameters, and a handler.
  3. Donation / registration: telling the system the intent exists so it shows up in Shortcuts and Spotlight.
app.json, enabling the module (shape, verify against SDK 58)json
{
  "expo": {
    "name": "My App",
    "ios": { "bundleIdentifier": "com.mycompany.myapp", "deploymentTarget": "27.0" },
    "plugins": [
      "expo-app-intents"
    ]
  }
}
intents/logRun.ts, an App Intent defined in JS (representative)typescript
import { defineAppIntent, StringParameter } from "expo-app-intents";

// "Log a run" — the kind of action Siri / Spotlight / Apple Intelligence
// can invoke without the user opening the app.
export const logRun = defineAppIntent({
  name: "LogRun",
  // Titles/descriptions are what the system and Apple Intelligence read to
  // decide when to surface and run this — treat them as product copy.
  title: "Log a run",
  description: "Record a completed run with an optional note.",
  parameters: {
    note: StringParameter({ title: "Note", optional: true }),
  },
  async handler({ note }) {
    const run = await api.runs.create({ note, at: Date.now() });
    return {
      value: run.id,
      // What Siri speaks / Apple Intelligence shows back to the user.
      dialog: note ? `Logged your run: ${note}` : "Logged your run.",
    };
  },
});
app/_layout.tsx, register on startuptypescript
import { registerAppIntents } from "expo-app-intents";
import { logRun } from "@/intents/logRun";

// Make the intents discoverable to Shortcuts / Spotlight / Siri.
registerAppIntents([logRun]);

The important design point is not the syntax, it is the metadata. Apple Intelligence decides whether to surface and run an intent from its title, description and parameter names. Vague copy (“Do thing”) gets ignored; precise, action-shaped copy (“Log a run”, parameter “Note”) gets picked up. Writing intents is as much product writing as engineering.

Where it actually earns its place

Not every app needs this. The ones that benefit most share a shape:

  • Frequent, atomic actions — log a habit, start a timer, add an item, mark done. Anything a user does often and quickly is a candidate to lift out of the app entirely.
  • Lookups— “what's my balance”, “next delivery”, “today's summary” — read-only intents that Spotlight and Siri can answer without a launch.
  • Multi-step flows Apple Intelligence can chain — where your action is one node in a larger task the OS assembles.

The apps that should not rush: anything where the action is destructive, irreversible or money-moving. An OS-invoked action needs the same care as any other privileged entry point — clear confirmation, scoped effect, and no surprises. We wrote the general version of that discipline for agents in giving an AI agent safe write access, and the instinct carries over: a system that can run your action unattended is a system you design defensively.

Gotchas before you commit

  • iOS-only.This is Apple's framework. Budget Android's App Actions separately; do not promise “works with your assistant” cross-platform from one integration.
  • Toolchain floor. SDK 58 targets iOS 27 and pairs with Xcode 27 / the Device Hub for testing. Older CI images will not build it, factor that into your pipeline.
  • It is beta. RN 0.88 is a release candidate inside SDK 58. Pin your versions, keep intents behind a flag, and expect the API to move before stable.
  • App Review. Intents that touch sensitive data or perform actions get scrutiny; document them the way you would any new capability. Our App Store rejection data covers the patterns that trip submissions.

The one-day version

If you want to try it this week: upgrade a branch to SDK 58, add the expo-app-intents plugin, define one read-only lookup intent (lowest risk, immediate “wow” in Spotlight), and test it through the Device Hub in Xcode 27. One good intent that answers a question without a launch tells you more about the fit than a spec doc. If it lands, expand to your two or three highest-frequency actions, that is where the retention and Apple Intelligence surface actually comes from.

This is the kind of platform capability we fold into builds as it stabilises through our React Native app development engagement, and validate against review through app store launch.

Three companions from the same mobile cluster:

The engagements that build and ship this:

Frequently asked questions

What is expo-app-intents?
expo-app-intents is a module introduced in Expo SDK 58 that lets you define Apple App Intents from JavaScript/TypeScript, so your React Native app's actions become available to Siri, Shortcuts, Spotlight and Apple Intelligence without writing Swift. It wires the JS handlers to the native App Intents framework through an Expo config plugin.
Does expo-app-intents work on Android?
No. App Intents is an Apple framework, so expo-app-intents targets iOS (and requires a recent iOS/Xcode toolchain). Android's equivalent is App Actions / App Shortcuts, a separate system with its own model. Plan the two per platform; the JS action layer can be shared, but the OS integration differs.
Which Expo SDK and iOS version do I need?
expo-app-intents ships in Expo SDK 58, which is built for iOS 27 and bundles the React Native 0.88 release candidate, and Expo lists a Device Hub integration for Xcode 27 for testing. SDK 58 was in beta from mid-September 2026 with a three-to-four-week beta window before stable, so pin versions and check the SDK 58 changelog before you rely on the exact API.
Does this make my app work with Apple Intelligence?
It is the mechanism by which it can. App Intents are how the system, including Apple Intelligence and Siri, discovers and invokes actions your app exposes. Defining well-described intents with clear parameters is what lets Apple Intelligence surface and run them; the quality of your titles, descriptions and parameter metadata is what determines whether it works well.
Is Expo SDK 58 stable yet?
As of late September 2026 SDK 58 is in beta, built for iOS 27 with React Native 0.88 as a release candidate; React Native 0.88 stable is scheduled for around 12 October 2026. Treat SDK 58 APIs, including expo-app-intents, as beta: usable for prototyping and early integration, but verify against the changelog before shipping to production.

Our clients

UK · Europe · Worldwide

Selected case studies

What we built, how it works and the results for our clients.

Creoate product interface01
B2B commerce

Eight years behind a wholesale marketplace

Next.js storefront, Python ingestion pipelines, DynamoDB data layer and AWS infrastructure.

8+ yearsdevelopment and support
Ontick product interface02
Event technology

Ticketing owned by the event team

Multi-organiser commerce, Stripe instalments and two native apps in one connected platform.

£2M+ticket sales processed
Easyship product interface03
Global logistics

Helping shippers compare their options

Rate, tax and duty calculators, server-rendered courier pages and a custom MongoDB CMS.

550+couriers in the calculator
TEFL.ie product interface04
Education & training

Connecting course sales to the classroom

WordPress and WooCommerce, a Moodle LMS, Stripe deposits and Zoho CRM, tied together with Zapier automation.

Since 2017development and support
All White Laser product interface05
Medical aesthetics

From equipment finance to clinic support

A lead-to-billing system on GoCardless Direct Debit, provider certification, and a React Native app for machine owners.

9 yrsdevelopment and support
Decofetch product interface06
Luxury commerce

A custom home for designer furniture

Server-rendered Next.js commerce over a Laravel API, bespoke operations tooling and re-architected AWS infrastructure.

0→livemarketplace development
BA Engine Room product interface07
AI operations

Connecting discovery, contracts and delivery

Discovery briefs, e-signed contracts, Stripe deposits, delivery milestones and time tracking in one operational system.

0→1custom platform development
PlusHeat product interface08
Home services

Helping customers choose their boiler cover

Custom plan configuration, postcode-qualified lead journeys, CRM synchronisation and campaign landing pages.

5 yrswebsite development and support
Léonia product interface09
Beauty commerce

Shopify shaped around a beauty brand

Custom theme, customer accounts, loyalty rewards, referrals and gift-with-purchase offers.

5 yrsShopify development and support
Shutters 365 product interface10
Home improvement

From window measurements to a priced order

A seven-step product builder with live previews, sample orders and supplier tools.

7-stepproduct configurator
Bloc Ads Manager product interface11
Advertising

From targeted ads to venue check-ins

Campaign creation, audience targeting, in-app ads and reporting linked to venue check-ins.

check-inscampaign attribution
Bloc product interface12
Social events

Four years across the app and operations

Mobile app, backend, advertising tools, a digital marketplace and website.

4+ yrssupport across five codebases
Zonely product interface13
Social mobile

Two apps, one real-time conversation marketplace

Customer and buddy apps with per-minute billing, wallets, moderation and admin tools.

2 appsfor iOS and Android
Player Profile Hub product interface14
Grassroots football

Helping grassroots players get discovered

Verified profiles, video highlights, coach discovery and safeguarding on web and mobile.

0→1custom platform development
DeepSpatial product interface15
Geospatial AI

Connecting clients, investors and emerging talent

Corporate and investor pages, the Xploor talent platform and ongoing releases on AWS Amplify.

2 yrsdevelopment and support
Yippee Malta product interface16
Travel

A booking journey the tour team owns

A multilingual website connected to the booking API, with deposits, coupons and affiliate tracking.

6languages across the booking journey
Professional Energy product interface17
Energy brokerage

Tenders, contracts and accounts brought together

Supplier tenders, contract management, brokerage accounting and client records.

100+suppliers per tender

Want your app inside Siri, Spotlight and Apple Intelligence?

A thirty-minute call with the engineer who would build it.

Talk to us