flutter_ai_toolkit
AI chat widget for Flutter apps targeting mobile, desktop, and web supporting text, image, and voice input.
1.0.0
7.4K downloads/mo
#3331 most downloaded on pub.dev
flutter/ai
What this package is like to depend on
Last release 8 months ago
15 Dec 2025
Release timing varies
gaps range from 1 weeks to 4 months
Nearly every release is documented
notes for 31 of 31 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
31 releases · first in 2024
1 release in the last 12 months
see the full history below
Release timeline
31 releases · Sep 2024 to Dec 2025Releases
latest 31-
1.0.015 Dec 2025Release notes
Open source →-
Merged Enable customisable styling for WaveformRecorder via VoiceNoteRecorderStyle, which adds the missing styles for the voice recorder. Contributed by @csongorkeller. Thank you!
-
Fixed an error that caused the chat text input to overlap Android's 3-button nav buttons when they were enabled. Thanks to @rohitbhoite for reporting this.
-
Added the ability to attach a link as well as a photo, an image and a file. Thanks to @DeTuksa for a nearly flawless PR.
-
Added support for Shift+Enter on the web (as well as desktop), fixing #136.
-
Automatically submit a suggestion when it's tapped instead of just filling in the text input, fixing #142.
-
Allow LLM-generated links to be clicked and to launch a browser on that page, fixing #150. Updated examples that use custom or dark styles to show how to override link styles.
-
Upgraded flutter_context_menu to v0.4.0.
-
Updated styles to allow for greater control of margins, padding and sizes. Thanks to @DeTuksa for the PR.
-
-
0.10.025 Aug 2025Release notes
Open source →- Support
firebase_ai: ^3.0.0andfirebase_core: ^4.0.0(https://github.com/flutter/ai/pull/145)
- Support
-
0.9.217 Jul 2025Release notes
Open source →0.9.2
-
fix #137: Link Attachments are not
supported. This prevented the use of amessageSenderfunction to upload
files on the fly when making requests to certain providers (I'm looking at
you, Firebase) that require larger (ok, really just not tiny) files to be
uploaded before they can be processed. Check out simulated upload in the new
file update example. -
fix #112: attachments pop-up menu
appears behind soft keyboard on mobile -
fix #133: Avoiding autofocus
-
fix #127: stt should strip
newlines -
fix [#100](#127: audio
transcription returns mixed AI response or no text (iOS & Android). We fix
this by allowing you to provide your own speech-to-text implementation. Take a
look at the new custom stt example. -
fix #135: fix function calling to
handle multiple tool calls. check out the updated function calls example! This
gives theFirebaseProviderthe inner loop to keep calling functions
requested by Gemini until it gets all the info it needs to provide its
response. That's the beating heart of an AI agent. -
fix [#111]((#111): canceling the editing
of a prompt should reset the attachments and prompt
Release notes
Open source →-
fix #137: Link Attachments are not supported. This prevented the use of a
messageSenderfunction to upload files on the fly when making requests to certain providers (I'm looking at you, Firebase) that require larger (ok, really just not tiny) files to be uploaded before they can be processed. Check out simulated upload in the new file update example. -
fix #112: attachments pop-up menu appears behind soft keyboard on mobile
-
fix #133: Avoiding autofocus
-
fix #127: stt should strip newlines
-
fix [#100](#127: audio transcription returns mixed AI response or no text (iOS & Android). We fix this by allowing you to provide your own speech-to-text implementation. Take a look at the new custom stt example.
-
fix #135: fix function calling to handle multiple tool calls. check out the updated function calls example! This gives the
FirebaseProviderthe inner loop to keep calling functions requested by Gemini until it gets all the info it needs to provide its response. That's the beating heart of an AI agent. -
fix [#111]((https://github.com/flutter/ai/issues/111): canceling the editing of a prompt should reset the attachments and prompt
-
-
0.9.117 Jun 2025 -
0.9.028 May 2025Release notes
Open source →-
added support for tool calls to the Gemini and Vertex providers. Check out the new function_calls example to see it in action. Thanks to @toshiossada for #99. Fixes #98: How Can I get functionCalls?
-
fixed #95: Image Attachment Disappears After Audio Recording
-
fixed #102: migration from flutter_markdown to flutter_markdown_plus
-
fixed #109: [task] migrate to firebase_ai. This is a breaking change, since it removes both GeminiProvider and VertexProvider and replaces it with FirebaseProvider. See README.md for migration details.
-
removed online demo -- no longer able to bring-your-own-API-key
Release notes
Open source →-
added support for tool calls to the Gemini and Vertex providers. Check out the new
function_callsexample to see it in action. Thanks to @toshiossada for the inspiration. Fixes #98: How Can I get functionCalls? -
fixed #95: Image Attachment Disappears After Audio Recording
-
fixed #102: migration from flutter_markdown to flutter_markdown_plus
-
fixed #109: [task] migrate to firebase_ai. This is a breaking change, since it removes both
GeminiProviderandVertexProviderand replaces it withFirebaseProvider. See README.md for migration details. -
removed online demo -- no longer able to bring-your-own-API-key
-
-
0.8.027 Apr 2025Release notes
Open source →-
fixed #90: Input box shrinks unexpectedly when clicking file attachment button – customization not supported by Flutter AI Toolkit. Moved from a menu that moves the text input to a pop-up menu. Added a
menuColorsetting toLlmChatViewStyle. Moved thetooltiprelated styles totextrelated styles, as some action buttons have icons (with tooltips) and some are menu items (with icon + text). -
fixed #92: Cupertino render doesn't center text input inside text input area
-
fixed an issue with missing localizations under Cupertino
-
-
0.7.108 Apr 2025 -
0.7.004 Apr 2025Release notes
Open source →-
fixed #55: The input field does not unfocus on iPhone simulator
-
fixed #52: Make Chat Input Configurable to Disable Attachments and Voice Notes
-
fixed #63: update all samples to use the 2.0 flash model
-
fixed #49: pub publish has warnings
-
fixed #61: [test] add a smoke test
-
fixed #75: "No MaterialLocalizations found" error in SelectionArea widget
-
-
0.6.827 Jan 2025Release notes
Open source →- Require Dart 3.5 or later.
- Remove dependency on
package:gap. - fixed #40: Unrecoverable Black screen
- implements #37: Custom Callback on Prompt/Response Error
-
0.6.717 Dec 2024 -
0.6.613 Dec 2024 -
0.6.527 Nov 2024Release notes
Open source →-
implemented #12: would like some hover icons for copy+edit on web and desktop
-
implemented #9: need to be able to cancel a prompt edit and get back the last response unharmed
-
-
0.6.426 Nov 2024Release notes
Open source →-
fixed #62: bug: getting an image back from the LLM that doesn't exist throws an exception
-
expanded the
messageSenderdocs onLlmChatViewto make it clear what it's for and when it's used -
renamed FatXxx to ToolkitXxx e.g. FatColors => ToolkitColors
-
fixed #77: move dark theming to the samples and out of the toolkit, since it has no designer input
-
-
0.6.324 Nov 2024Release notes
Open source →-
fixed #55: TextField overflow error for large inputs
-
fixed #39: bug: notify developer of invalid API key on the web
-
fixed #18: Gemini or Vertex + the web + a file attachment == hang
-
-
0.6.222 Nov 2024 -
0.6.122 Nov 2024Release notes
Open source →- implemented #16: feature: ensure pressing the camera button on desktop web brings up the camera
-
0.6.020 Nov 2024 -
0.5.016 Nov 2024Release notes
Open source →-
fixed #67: bug: audio recording translation repopulated after history cleared
-
fixed #68: bug: need suggestion styling
-
implemented #72: feature: move welcome message to the LlmChatView
-
updated recipes sample to use required properties in the JSON schema, which improved LLM responses a great deal
-
implemented #74: remove controllers as an unnecessary abstraction
-
fixed an issue where canceling an operation w/ no response yet will continue showing the progress indicator.
-
-
0.4.230 Oct 2024Release notes
Open source →-
upgraded to waveform_recorder 1.3.0
-
fix #69: SDK dependency conflict by lowering sdk requirement to 3.4.0
-
-
0.4.128 Oct 2024 -
0.4.028 Oct 2024Release notes
Open source →-
implemented #13: UI needs dark mode support
-
implemented #30: chat serialization/deserialization
-
fixed #64: bug: selection sticks around after clearing the history
-
fixed #63: bug: broke multi-line text input
-
fixed #60: bug: if an LLM request fails with no text in the response, the progress indicator never stops
-
implemented #31: feature: provide a list of initial suggested prompts to display in an empty chat session
-
implemented #25: better mobile long-press action menu for chat messages
-
fixed #47: bug: Long pressing a message and then clicking outside of the toolbar should make the toolbar disappear
-
-
0.3.027 Oct 2024Release notes
Open source →-
implemented #32: feature: dev-configured LLM message icon
-
fixed #19: prompt attachments are incorrectly merging when editing after adding attachments to a new prompt
-
implemented #27: feature: styling of colors and fonts
-
-
0.2.124 Oct 2024Release notes
Open source →-
fixing the user message edit menu
-
show errors and cancelations as separate from message output; this is necessary so that you can tell the difference between an LLM message response with a successful result that, for example, can be parsed as JSON, or an error
-
-
0.2.024 Oct 2024Release notes
Open source →-
implemented #33: feature: chat microphone only prompt input
-
added a
generateStreammethod toLlmProviderto support talking to the underlying generative model w/o adding to the chat history; movedchatModelproperties in the Gemini and Vertex providers to use a more genericgenerativeModelto make it clear which model is being used for bothsendMessageStreamandgenerateStream. -
moved from flutter_markdown_selectionarea to plain ol' flutter_markdown which does now support selection if you ask it nicely. I still have some work to do on selection, however, as described in [issue #1212).
-
implemented #27: styling support, including a sample
-
fixed #3: ensure Google Font Roboto is being resolved
-
implemented #2: feature: enable full functionality inside a Cupertino app
-
fixed #45: bug: X icon button is also pushing up against the top and left edges without any padding
-
fixed #59: bug: Android Studio LadyBug Upgrade Issues
-
upgraded to the GA version of firebase_vertexai
-
-
0.1.613 Oct 2024Release notes
Open source →-
added optional
welcomeMessagetoLlmChatViewand a welcome sample. thanks, @berkaykurkcu! -
updated VertexProvider to take a separate chat and embedding model like GeminiProvider
-
fixed #51 : Click on an image to get a preview. thanks, @Shashwat-111!
-
fixed #6: get a spark icon to designate the LLM
-
updated README for clarity
-
-
0.1.501 Oct 2024 -
0.1.401 Oct 2024 -
0.1.301 Oct 2024Release notes
Open source →-
new real-world-ish sample: recipes
-
new custom LLM provider sample: gemma
-
handling structured LLM responses via
responseBuilder(see recipes sample) -
app-provided prompt suggestions (see recipes sample)
-
pre-processing prompts to add prompt engineering via
messageSender -
pre-processing requests to enrich the output, e.g. host Flutter widgets (see recipes sample)
-
swappable support for LLM providers; oob support for Gemini and Vertex (see gemma example)
-
fixed trim and over-eager message editing issues -- thanks, @Shashwat-111!
-
-
0.1.206 Sep 2024 -
0.1.106 Sep 2024 -
0.1.006 Sep 2024