App Intents

RSS for tag

Extend your app’s custom functionality to support system-level services, like Siri and the Shortcuts app.

Posts under App Intents tag

200 Posts

Post

Replies

Boosts

Views

Activity

NSUserActivity-based Shortcuts Integration Not Working on iOS 18+
Previously, we used NSUserActivity to enable invoking specific in-app features from the Shortcuts app. This worked as expected up to iOS 17, but it no longer works on iOS 18 and later. We’ve confirmed that the same functionality can be achieved by using App Intents as an alternative. Question. Is the change in iOS 18—where NSUserActivity-based Shortcuts integration no longer works (or is restricted)—an intentional behavior change? If so, could you point us to any relevant documentation or release notes describing this change? We’ve tried to find information ourselves but haven’t found any clear references. Request. In cases like this where an OS update impacts existing implementations, it would be very helpful if such changes were clearly documented in release notes or API change logs in advance.
0
0
460
Jun ’26
Does On-Screen-Context from first party apps work at the moment?
Do apps like Files, Safari, and Finder provide on screen data on request? I've got an entity that implements transferable, but Siri is consistently telling me that it is unable to export data from Files, Safari and photos, and does not seem to want to construct my entity. (it's an @PhotoAsset entity, and I've implemented @createAssets as well.) Is that true at the moment that Siri cannot read data from those apps? I'm not sure if this is a bug or a feature.
0
0
178
Jun ’26
Unions and @Schemas
Hello, I'm still working on my @addToAlbum schema implementation, and I'm exploring how multiple entities could be "destinations" to the intent. I considered using a @UnionValue for this, but I'm running into compiler difficulties trying to get a @UnionValue to conform to @AppEntity(schema: .photos.album) Am I out of luck on a Unionized "target" for the add-to-album intent?
0
0
110
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
2
0
165
Jun ’26
Group AppIntents’ Searchable DynamicOptionsProvider in Sections
I’m trying to group my EntityPropertyQuery selection into sections as well as making it searchable. I know that the EntityStringQuery is used to perform the text search via entities(matching string: String). That works well enough and results in this modal: Though, when I’m using a DynamicOptionsProvider to section my EntityPropertyQuery, it doesn’t allow for searching anymore and simply opens the sectioned list in a menu like so: How can I combine both? I’ve seen it in other apps, but can’t figure out why my code doesn’t allow to section the results and make it searchable? Any ideas? My code (simplified) struct MyIntent: AppIntent { @Parameter(title: "Meter"), optionsProvider: MyOptionsProvider()) var meter: MyIntentEntity? // … struct MyOptionsProvider: DynamicOptionsProvider { func results() async throws -> ItemCollection<MyIntentEntity> { // Get All Data let allData = try IntentsDataHandler.shared.getEntities() // Create Arrays for Sections let fooEntities = allData.filter { $0.type == .foo } let barEntities = allData.filter { $0.type == .bar } return ItemCollection(sections: [ ItemSection("Foo", items: fooEntities), ItemSection("Bar", items: barEntities) ]) } } struct MeterIntentQuery: EntityStringQuery { // entities(for identifiers: [UUID]) and suggestedEntities() functions func entities(matching string: String) async throws -> [MyIntentEntity] { // Fetch All Data let allData = try IntentsDataHandler.shared.getEntities() // Filter Data by String let matchingData = allData.filter { data in return data.title.localizedCaseInsensitiveContains(string)) } return matchingData } }
1
2
1k
Jun ’26
App Intents for audio playback actions in iOS 27
With SiriKit deprecated in iOS 27, I'm implementing App Intents from scratch for a frequency/ambient sound app. Should I conform to AudioPlaybackIntent from the Media framework or build a custom AppIntent? Specifically, I need intents for: play a named frequency, start sleep timer with duration, stop playback. Is there a recommended Intent entity type for audio content that isn't music (i.e. not MusicKit-backed)?
0
0
129
Jun ’26
Visual Intelligence API SemanticContentDescriptor labels are empty
I'm trying to use Apple's new Visual Intelligence API for recommending content through screenshot image search. The problem I encountered is that the SemanticContentDescriptor labels are either completely empty or super misleading, making it impossible to query for similar content on my app. Even the closest matching example was inaccurate, returning a single label ["cardigan"] for a Supreme T-Shirt. I see other apps using this API like Etsy for example, and I'm wondering if they're using the input pixel buffer to query for similar content rather than using the labels? If anyone has a similar experience or something that wasn't called out in the documentation please lmk! Thanks.
2
0
1.4k
May ’26
WatchOS 26.5 breaks Action Button intent donation
For some reason since watchOS 26.5 my workout app can no longer receive action button presses during a workout unless the action button is configured to start a specified activity type. If the action button is configured to just open the app but not start an activity then at the start of a workout the app donates a StartWorkoutIntent. The result parameter is set to a 'NextButtonPress' intent so that the app is notified when the action button is pressed. This has been working fine since the action button first appeared back in 2022, but has suddenly stopped working with watchOS 26.5. Now when the app tries to donate the intent then it fails with the following error: The operation couldn’t be completed. (LNTranscriptErrorDomain error 1003.) Does anyone know what has changed and how I can get around it? Thanks.
2
0
861
May ’26
SetFocusFilterIntent broken in macOS 26.5
Since the update to macOS 26.5, SetFocusFilterIntent is broken in two ways: When using a SetFocusFilterIntent where the user can select one AppEntity out of a list, the selection is broken. Instead of the selected item, the first or two items at the same time are highlighted. The perform method of the SetFocusFilterIntent is never called. On iOS there seems to be a strange fix when the focus filter doesn't work, just conform the focus filter to a LiveActivityIntent: struct FocusFilter: SetFocusFilterIntent, LiveActivityIntent No solution for macOS yet.
0
0
854
May ’26
Do interactive LiveActivityIntent buttons keep the Lock Screen awake like Now Playing controls?
I am developing an iOS app using ActivityKit Live Activities with interactive buttons based on LiveActivityIntent. The implementation works correctly: LiveActivityIntent.perform() executes correctly. The Live Activity updates visually. MediaPlayer actions are triggered successfully. The app does not open when tapping the buttons. Repeated taps correctly update the Live Activity state. However, I observed a behavior difference on the Lock Screen: Now Playing controls keep the Lock Screen awake while interacting repeatedly. Apple Stopwatch/Timer controls also keep the Lock Screen awake while interacting. My app’s Live Activity fades to black after around 5–7 seconds even while the user continues tapping the Live Activity buttons. I also tested a third-party timer app with Live Activity buttons and observed the same fade-to-black behavior. I additionally tested: repeated Activity.update(...) calls after each tap; visual state updates after every interaction; multiple consecutive interaction updates. None of these prevented the Lock Screen from dimming/fading to black. So my question is: Is this expected behavior for third-party Live Activities using LiveActivityIntent? Or is there any recommended way to keep the Lock Screen interaction session active while the user is continuously interacting with Live Activity buttons? I am especially interested from an accessibility perspective, because short interaction windows can make repeated Lock Screen interactions more difficult for users with motor impairments or slower interaction patterns.
0
0
276
May ’26
Are there specific developer integration terms or agreements for Siri / App Intents Framework?
We are integrating the App Intents framework into our iOS app to enable Siri functionality, including intents that display user data (e.g., showing upcoming schedule information) and intents that perform actions on behalf of users (e.g., submitting a time-off request). Our Legal team has asked us to provide any developer-specific integration terms or agreements that govern the engineering use of Siri and the App Intents framework — separate from the user-facing Siri, Dictation & Privacy terms. So far, the only reference we've found to App Intents or Siri in Apple's developer agreements is Section J of the Apple Developer Program License Agreement. We've also reviewed the App Store Review Guidelines, the Privacy HIG, and the Siri HIG. As a point of comparison, Apple Maps has its own specific set of developer integration terms (MapKit / Apple Maps Server API terms). Does anything equivalent exist for Siri and/or the App Intents framework? If Section J of the License Agreement and the relevant HIG sections are the complete set of terms governing developer use of App Intents and Siri, confirmation of that would also be very helpful. Thank you.
0
0
803
May ’26
AppEntity / EntityQuery returns multiple results but Shortcuts only displays a single item on newest iOS 26.4
We are observing a regression in iOS 26.4 related to AppIntents, specifically AppEntity + EntityQuery. When using a single AppIntent with a parameter backed by AppEntity and EntityQuery, the query correctly returns multiple entities (e.g. ~50 items). However, in the Shortcuts app UI, only a single item is displayed. This behavior differs from iOS 26.3 and earlier, where all returned entities are correctly displayed in the selection list. This issue significantly impacts dynamic configuration use cases where AppEntity is used to represent server-driven or runtime-generated options.(The screenshots below illustrate the difference in shortcut presentation between iOS 26.4 and earlier versions.)
2
2
999
May ’26
App Intents: String array parameter value clears immediately in Shortcuts editor
Hello, I am experiencing an issue with the App Intents framework where a parameter of type [String] (String Array) fails to persist user input in the Shortcuts app action editor. Issue Description: When adding an item to the String Array parameter in the Shortcuts app action editor, the input text automatically clears/resets to empty within less than 1 second. This happens spontaneously while the keyboard is still active, or immediately after typing, making it impossible to input any values. Environment: Xcode Version: 26.2 (17C52) iOS Version: 26.2.1 Device: iPhone 17 Code Snippet: import AppIntents import SwiftUI struct TestStringArrayIntent: AppIntent { static var title: LocalizedStringResource = "Test Array Input Bug" static var description: IntentDescription = "Reproduces the issue where String Array input clears automatically." // PROBLEM: // Input for this parameter vanishes automatically < 1s after typing. @Parameter(title: "Test Strings", default: []) var strings: [String] func perform() async throws -> some IntentResult & ReturnsValue<String> { return .result(value: "Count: \(strings.count)") } } Steps to Reproduce: Build and install the app containing the code above. Open the Shortcuts app and create a new shortcut. Add the "Test Array Input Bug" action. Tap the "Test Strings" parameter to add a new item. Type any text (e.g., "Hi"). Observe: Wait for about 1 second Observed Behavior: The text field clears itself automatically. The array remains empty ([]). Expected Behavior: The text should remain in the field and be successfully added to the array. **Filed as Feedback:**FB21808619 Thank you.
5
1
955
May ’26
Control widget panel
I haven't been able to find the exact name for this. In iOS 26, there's a widget called "New Reminder" in Reminders app among the Control Center widgets(Action Button also). In the Shortcuts app, name is “Show quick reminder.” It doesn't seem to be either the input window that appears when requesting parameters or the snippet view. Is it possible to implement the sheet that appears after tap this widget button? I've looked through the relevant documentation and WWDC videos but haven't found anything.
0
0
661
Apr ’26
NSUserActivity-based Shortcuts Integration Not Working on iOS 18+
Previously, we used NSUserActivity to enable invoking specific in-app features from the Shortcuts app. This worked as expected up to iOS 17, but it no longer works on iOS 18 and later. We’ve confirmed that the same functionality can be achieved by using App Intents as an alternative. Question. Is the change in iOS 18—where NSUserActivity-based Shortcuts integration no longer works (or is restricted)—an intentional behavior change? If so, could you point us to any relevant documentation or release notes describing this change? We’ve tried to find information ourselves but haven’t found any clear references. Request. In cases like this where an OS update impacts existing implementations, it would be very helpful if such changes were clearly documented in release notes or API change logs in advance.
Replies
0
Boosts
0
Views
460
Activity
Jun ’26
Does On-Screen-Context from first party apps work at the moment?
Do apps like Files, Safari, and Finder provide on screen data on request? I've got an entity that implements transferable, but Siri is consistently telling me that it is unable to export data from Files, Safari and photos, and does not seem to want to construct my entity. (it's an @PhotoAsset entity, and I've implemented @createAssets as well.) Is that true at the moment that Siri cannot read data from those apps? I'm not sure if this is a bug or a feature.
Replies
0
Boosts
0
Views
178
Activity
Jun ’26
Siri without opening the app
Can App Intents perform authenticated backend calls (Bearer token in Keychain / App Group) and return structured results to Siri, or must execution always launch the host app first?
Replies
1
Boosts
0
Views
152
Activity
Jun ’26
Guardrails for Siri + App Intents"
With Siri AI and App Intents, we can surface content from apps. Can we add guardrails or configure what Siri can or cannot say when dictating content?
Replies
1
Boosts
1
Views
349
Activity
Jun ’26
Unions and @Schemas
Hello, I'm still working on my @addToAlbum schema implementation, and I'm exploring how multiple entities could be "destinations" to the intent. I considered using a @UnionValue for this, but I'm running into compiler difficulties trying to get a @UnionValue to conform to @AppEntity(schema: .photos.album) Am I out of luck on a Unionized "target" for the add-to-album intent?
Replies
0
Boosts
0
Views
110
Activity
Jun ’26
Spoken Locale Exposure (Dynamic Language Routing)
Does the App Intents framework expose the user's active spoken Siri locale (e.g., ja-JP, fr-FR) directly within the perform() context, or must the extension rely on the system's global locale setting? If a user switches Siri's language dynamically, how is that locale string propagated to the intent execution block?
Replies
1
Boosts
0
Views
149
Activity
Jun ’26
Dynamic Runtime App Shortcuts
Can App Shortcuts (and their trigger phrases) be generated or translated dynamically at runtime based on user-defined configurations (e.g. download-on-demand language models or custom voice aliases), or must all voice shortcuts and translations be statically declared in the application's compiled String Catalogs (.xcstrings)?
Replies
0
Boosts
2
Views
262
Activity
Jun ’26
Voice-Streaming & Text-to-Speech (TTS) Latency
How does the App Intents framework support streaming spoken voice (TTS) output for long-form text responses? Is there an API (such as an asynchronous sequence or buffer stream) that allows Siri to begin speaking a response while the underlying AI engine is still generating the remainder of the text?
Replies
0
Boosts
0
Views
135
Activity
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
Replies
2
Boosts
0
Views
165
Activity
Jun ’26
Any debugging tools beyond AppIntentsTesting?
Are there any tools this year to debug why siri can't see a schema-based intent or chooses not to invoke it? Is it possible to see what inputs siri has within the context of the conversation that could cascade into intents of other applications? I've had difficulties with knowing if something should work, or of it's just not possible.
Replies
0
Boosts
0
Views
125
Activity
Jun ’26
Group AppIntents’ Searchable DynamicOptionsProvider in Sections
I’m trying to group my EntityPropertyQuery selection into sections as well as making it searchable. I know that the EntityStringQuery is used to perform the text search via entities(matching string: String). That works well enough and results in this modal: Though, when I’m using a DynamicOptionsProvider to section my EntityPropertyQuery, it doesn’t allow for searching anymore and simply opens the sectioned list in a menu like so: How can I combine both? I’ve seen it in other apps, but can’t figure out why my code doesn’t allow to section the results and make it searchable? Any ideas? My code (simplified) struct MyIntent: AppIntent { @Parameter(title: "Meter"), optionsProvider: MyOptionsProvider()) var meter: MyIntentEntity? // … struct MyOptionsProvider: DynamicOptionsProvider { func results() async throws -> ItemCollection<MyIntentEntity> { // Get All Data let allData = try IntentsDataHandler.shared.getEntities() // Create Arrays for Sections let fooEntities = allData.filter { $0.type == .foo } let barEntities = allData.filter { $0.type == .bar } return ItemCollection(sections: [ ItemSection("Foo", items: fooEntities), ItemSection("Bar", items: barEntities) ]) } } struct MeterIntentQuery: EntityStringQuery { // entities(for identifiers: [UUID]) and suggestedEntities() functions func entities(matching string: String) async throws -> [MyIntentEntity] { // Fetch All Data let allData = try IntentsDataHandler.shared.getEntities() // Filter Data by String let matchingData = allData.filter { data in return data.title.localizedCaseInsensitiveContains(string)) } return matchingData } }
Replies
1
Boosts
2
Views
1k
Activity
Jun ’26
App Intents for audio playback actions in iOS 27
With SiriKit deprecated in iOS 27, I'm implementing App Intents from scratch for a frequency/ambient sound app. Should I conform to AudioPlaybackIntent from the Media framework or build a custom AppIntent? Specifically, I need intents for: play a named frequency, start sleep timer with duration, stop playback. Is there a recommended Intent entity type for audio content that isn't music (i.e. not MusicKit-backed)?
Replies
0
Boosts
0
Views
129
Activity
Jun ’26
Visual Intelligence API SemanticContentDescriptor labels are empty
I'm trying to use Apple's new Visual Intelligence API for recommending content through screenshot image search. The problem I encountered is that the SemanticContentDescriptor labels are either completely empty or super misleading, making it impossible to query for similar content on my app. Even the closest matching example was inaccurate, returning a single label ["cardigan"] for a Supreme T-Shirt. I see other apps using this API like Etsy for example, and I'm wondering if they're using the input pixel buffer to query for similar content rather than using the labels? If anyone has a similar experience or something that wasn't called out in the documentation please lmk! Thanks.
Replies
2
Boosts
0
Views
1.4k
Activity
May ’26
WatchOS 26.5 breaks Action Button intent donation
For some reason since watchOS 26.5 my workout app can no longer receive action button presses during a workout unless the action button is configured to start a specified activity type. If the action button is configured to just open the app but not start an activity then at the start of a workout the app donates a StartWorkoutIntent. The result parameter is set to a 'NextButtonPress' intent so that the app is notified when the action button is pressed. This has been working fine since the action button first appeared back in 2022, but has suddenly stopped working with watchOS 26.5. Now when the app tries to donate the intent then it fails with the following error: The operation couldn’t be completed. (LNTranscriptErrorDomain error 1003.) Does anyone know what has changed and how I can get around it? Thanks.
Replies
2
Boosts
0
Views
861
Activity
May ’26
SetFocusFilterIntent broken in macOS 26.5
Since the update to macOS 26.5, SetFocusFilterIntent is broken in two ways: When using a SetFocusFilterIntent where the user can select one AppEntity out of a list, the selection is broken. Instead of the selected item, the first or two items at the same time are highlighted. The perform method of the SetFocusFilterIntent is never called. On iOS there seems to be a strange fix when the focus filter doesn't work, just conform the focus filter to a LiveActivityIntent: struct FocusFilter: SetFocusFilterIntent, LiveActivityIntent No solution for macOS yet.
Replies
0
Boosts
0
Views
854
Activity
May ’26
Do interactive LiveActivityIntent buttons keep the Lock Screen awake like Now Playing controls?
I am developing an iOS app using ActivityKit Live Activities with interactive buttons based on LiveActivityIntent. The implementation works correctly: LiveActivityIntent.perform() executes correctly. The Live Activity updates visually. MediaPlayer actions are triggered successfully. The app does not open when tapping the buttons. Repeated taps correctly update the Live Activity state. However, I observed a behavior difference on the Lock Screen: Now Playing controls keep the Lock Screen awake while interacting repeatedly. Apple Stopwatch/Timer controls also keep the Lock Screen awake while interacting. My app’s Live Activity fades to black after around 5–7 seconds even while the user continues tapping the Live Activity buttons. I also tested a third-party timer app with Live Activity buttons and observed the same fade-to-black behavior. I additionally tested: repeated Activity.update(...) calls after each tap; visual state updates after every interaction; multiple consecutive interaction updates. None of these prevented the Lock Screen from dimming/fading to black. So my question is: Is this expected behavior for third-party Live Activities using LiveActivityIntent? Or is there any recommended way to keep the Lock Screen interaction session active while the user is continuously interacting with Live Activity buttons? I am especially interested from an accessibility perspective, because short interaction windows can make repeated Lock Screen interactions more difficult for users with motor impairments or slower interaction patterns.
Replies
0
Boosts
0
Views
276
Activity
May ’26
Are there specific developer integration terms or agreements for Siri / App Intents Framework?
We are integrating the App Intents framework into our iOS app to enable Siri functionality, including intents that display user data (e.g., showing upcoming schedule information) and intents that perform actions on behalf of users (e.g., submitting a time-off request). Our Legal team has asked us to provide any developer-specific integration terms or agreements that govern the engineering use of Siri and the App Intents framework — separate from the user-facing Siri, Dictation & Privacy terms. So far, the only reference we've found to App Intents or Siri in Apple's developer agreements is Section J of the Apple Developer Program License Agreement. We've also reviewed the App Store Review Guidelines, the Privacy HIG, and the Siri HIG. As a point of comparison, Apple Maps has its own specific set of developer integration terms (MapKit / Apple Maps Server API terms). Does anything equivalent exist for Siri and/or the App Intents framework? If Section J of the License Agreement and the relevant HIG sections are the complete set of terms governing developer use of App Intents and Siri, confirmation of that would also be very helpful. Thank you.
Replies
0
Boosts
0
Views
803
Activity
May ’26
AppEntity / EntityQuery returns multiple results but Shortcuts only displays a single item on newest iOS 26.4
We are observing a regression in iOS 26.4 related to AppIntents, specifically AppEntity + EntityQuery. When using a single AppIntent with a parameter backed by AppEntity and EntityQuery, the query correctly returns multiple entities (e.g. ~50 items). However, in the Shortcuts app UI, only a single item is displayed. This behavior differs from iOS 26.3 and earlier, where all returned entities are correctly displayed in the selection list. This issue significantly impacts dynamic configuration use cases where AppEntity is used to represent server-driven or runtime-generated options.(The screenshots below illustrate the difference in shortcut presentation between iOS 26.4 and earlier versions.)
Replies
2
Boosts
2
Views
999
Activity
May ’26
App Intents: String array parameter value clears immediately in Shortcuts editor
Hello, I am experiencing an issue with the App Intents framework where a parameter of type [String] (String Array) fails to persist user input in the Shortcuts app action editor. Issue Description: When adding an item to the String Array parameter in the Shortcuts app action editor, the input text automatically clears/resets to empty within less than 1 second. This happens spontaneously while the keyboard is still active, or immediately after typing, making it impossible to input any values. Environment: Xcode Version: 26.2 (17C52) iOS Version: 26.2.1 Device: iPhone 17 Code Snippet: import AppIntents import SwiftUI struct TestStringArrayIntent: AppIntent { static var title: LocalizedStringResource = "Test Array Input Bug" static var description: IntentDescription = "Reproduces the issue where String Array input clears automatically." // PROBLEM: // Input for this parameter vanishes automatically < 1s after typing. @Parameter(title: "Test Strings", default: []) var strings: [String] func perform() async throws -> some IntentResult & ReturnsValue<String> { return .result(value: "Count: \(strings.count)") } } Steps to Reproduce: Build and install the app containing the code above. Open the Shortcuts app and create a new shortcut. Add the "Test Array Input Bug" action. Tap the "Test Strings" parameter to add a new item. Type any text (e.g., "Hi"). Observe: Wait for about 1 second Observed Behavior: The text field clears itself automatically. The array remains empty ([]). Expected Behavior: The text should remain in the field and be successfully added to the array. **Filed as Feedback:**FB21808619 Thank you.
Replies
5
Boosts
1
Views
955
Activity
May ’26
Control widget panel
I haven't been able to find the exact name for this. In iOS 26, there's a widget called "New Reminder" in Reminders app among the Control Center widgets(Action Button also). In the Shortcuts app, name is “Show quick reminder.” It doesn't seem to be either the input window that appears when requesting parameters or the snippet view. Is it possible to implement the sheet that appears after tap this widget button? I've looked through the relevant documentation and WWDC videos but haven't found anything.
Replies
0
Boosts
0
Views
661
Activity
Apr ’26