flutter_assistant_intents
Expose task-app actions to voice assistants — iOS App Intents (Siri, Spotlight, Shortcuts) and Android app shortcuts — with typed Dart handlers.
1.3.1
19K downloads/mo
#2244 most downloaded on pub.dev
erykkruk/flutter_assistant_intents
What this package is like to depend on
Last release 1 months ago
14 Jul 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
6 releases · first in 2026
6 releases in the last 12 months
see the full history below
Release timeline
6 releases · Jul 2026 to Jul 2026Releases
latest 6-
1.3.114 Jul 2026Release notes
Open source →- outputs manifest in .dart_tool/flutter_assistant_intents/outputs.json;
changing output paths deletes the old generated files and de-registers
them from project.pbxproj (removeFromPbxproj = exact inverse of inject) - safety: only files carrying the GENERATED marker are ever deleted
- format-stable Dart emission (regenerate = zero diff)
Release notes
Open source →Added
- Generator cleanup: previously generated files are tracked in a manifest
(
.dart_tool/flutter_assistant_intents/outputs.json); when output paths change, stale files are deleted and theirproject.pbxprojentries removed — but ONLY files still carrying the// GENERATED by …marker. Hand-written files at old paths are never touched.
- outputs manifest in .dart_tool/flutter_assistant_intents/outputs.json;
-
1.3.014 Jul 2026Release notes
Open source →- dart run flutter_assistant_intents:generate — assistant_intents.yaml ->
Runner Swift AppIntents (typed parameters, Siri phrases, task preset as
package re-export or iOS16-compatible wrappers) + Dart glue (action
constants, generatedAndroidShortcuts) - idempotent project.pbxproj registration (skips synchronized-group projects)
- --init scaffold, --dry-run, validation (app-name token, 10-shortcut limit)
- example migrated to the generator; both preset modes verified by iOS builds
- new dependency: yaml
Release notes
Open source →Fixed
- Siri routed "Add a task in <app>" to Reminders instead of the app. Siri's
built-in Reminders domain claims utterances that open with "add/create a
task", so the trailing app name never reached
AddTaskIntent. The add-task shortcut now also advertises app-name-first phrases ("Add a <app> task", "New <app> task", "Create a <app> task", "<app> add a task"), which Siri matches to the app shortcut. The previous phrases are kept as fallbacks. Complete-task and query-tasks phrases are unaffected (they never collided with a system domain).
- dart run flutter_assistant_intents:generate — assistant_intents.yaml ->
-
1.2.013 Jul 2026Release notes
Open source →- sources moved to ios/flutter_assistant_intents/Sources/... + Package.swift
- podspec source_files points at the SPM sources (both integrations verified
by example builds: SPM-enabled and clean CocoaPods) - example Runner migrated by Flutter's SPM integration (works in both modes)
Release notes
Open source →Added
- Swift Package Manager support on iOS (dual with CocoaPods): sources
moved to
ios/flutter_assistant_intents/Sources/…with aPackage.swift; the podspec points at the same sources, so both integrations work.
-
1.1.013 Jul 2026Release notes
Open source →- setPluginRegistrantCallback(entrypoint:) boots a headless engine when an
intent arrives with no engine alive; handlers.sync handshake removes the
boot race - example: dedicated assistantMain entrypoint + AppDelegate wiring
- README: cold-start section rewritten, support-matrix footnote updated
Release notes
Open source →Added
- iOS cold-start support: the plugin can boot a headless
FlutterEnginewhen Siri runs an intent while the app process is not alive. Enable withFlutterAssistantIntentsPlugin.setPluginRegistrantCallback(optionally with a dedicated Dartentrypoint); ahandlers.synchandshake removes the engine-boot race.
- setPluginRegistrantCallback(entrypoint:) boots a headless engine when an
-
1.0.013 Jul 2026Release notes
Open source →First stable release — API considered stable from here on (SemVer).
Changed
- Promoted 0.1.0 to stable with no API changes: task preset
(
onAddTask/onCompleteTask/onQueryTasks) + generic action layer (onAction, custom iOS intents viaAssistantIntentBridge.performAction, Dart-defined custom Android shortcuts).
- Promoted 0.1.0 to stable with no API changes: task preset
(
-
0.1.013 Jul 2026Release notes
Open source →Added
- Typed Dart handler API:
AssistantIntents.instance.registerHandlers(...)with optionalonAddTask,onCompleteTask,onQueryTaskscallbacks (task preset) and a genericonActioncallback for app-defined actions. - Typed models:
AddTaskRequest,CompleteTaskRequest,QueryTasksRequest,AssistantActionRequest,AssistantTask,AssistantTaskResult,TaskQueryFilter,AndroidShortcutsConfig,AndroidCustomShortcut. - iOS (16+): App Intents implementation —
AddTaskIntent(title, due date, notes),CompleteTaskIntent,QueryTasksIntent, anAppShortcutsProviderwith app-name-based invocation phrases (short titles + SF Symbols), andFlutterAssistantIntentsPackage(AppIntentsPackage) for host re-export. - iOS: public
AssistantIntentBridge.performAction(id:parameters:)so host apps can declare custom intents with their own Siri phrases whose logic lives in Dart; hard 10 s timeout on every Dart round-trip so a silent handler can never hang Siri. - Android: dynamic app shortcuts ("Add task", "Today") published additively
via
ShortcutManagerCompat.pushDynamicShortcut(host shortcuts are never replaced), with icons and ranks; fully Dart-defined custom shortcuts routed toonAction. updateShortcuts()— no-op-safe refresh of platform shortcut donations with configurable Android labels, task-preset opt-out and custom shortcuts.- Runnable
example/app (Android + iOS hosts) demonstrating the task preset, the generic action layer and the required iOSAppIntentsPackagere-export. - Dart-layer tests with a mocked method channel.
- Typed Dart handler API: