Package selection guidance compiled from public package information, community data, and project usage.
Flutter AI Toolkit is a versatile AI-powered chat widget designed for Flutter applications across mobile, desktop, and web platforms. It enables seamless integration of generative AI features with support for text, image, and voice input. Built for developers aiming to enhance user interaction with intelligent conversational interfaces, the toolkit simplifies embedding advanced AI capabilities into apps without extensive configuration. It leverages modern LLMs and offers real-time responses, making it ideal for chatbots, virtual assistants, and interactive content tools. The package is maintained by Flutter Labs and hosted on GitHub for transparency and community contributions.
Use cases
AI-powered customer support
Interactive learning apps
Voice-enabled virtual assistants
Content generation tools
Real-time collaborative chat
Key features
Text, image, and voice input support
Cross-platform compatibility
Real-time AI responses
Easy integration with Flutter
Built-in UI components for chat interface
Suitable for
Developers building AI chat features
Educational app creators
Customer service application teams
Productivity tool builders
Web and mobile app startups
Considerations
Requires backend AI service integration
May need customization for specific LLMs
Performance depends on network speed
Limited offline functionality
Dependent on external API availability
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
The AI Toolkit is a set of AI chat-related widgets to make it easy to add an AI
chat window to your Flutter app. The AI Toolkit is organized around an abstract
LLM provider API that makes it easy to swap out the LLM provider that you'd like
your chat provider to use. Out of the box, it comes with support for one LLM
provider integration: Firebase AI.
Key features
Multi-turn chat:
Maintains context across multiple interactions.
Streaming responses:
Displays AI responses in real-time as they're generated.
Rich text display:
Supports formatted text in chat messages.
Voice input:
Allows users to input prompts using speech.
Multimedia attachments:
Enables sending and receiving various media types.
Custom styling:
Offers extensive customization to match your app's design.
Chat serialization/deserialization:
Store and retrieve conversations between app sessions.
Pluggable LLM support:
Implement a simple interface to plug in your own LLM.
Cross-platform support:
Compatible with the Android, iOS, web, and macOS platforms.
Getting started
Installation
Add the following dependencies to your pubspec.yaml file:
The FirebaseAI class comes from the firebase_ai package. The AI Toolkit
provides the FirebaseProvider class to expose Firebase AI to the
LlmChatView. Note that you provide a model name that corresponds to one of
the available model names.
Microphone access:
To enable voice input for users, update configs according to the
permission and setup instructions for package:record.
File selection:
To enable users to select and attach files,
follow the usage instructions for package:file_selector.
Image selection:
To enable users to take or select a picture from their device, refer to
the installation instructions for package:image_picker.
Samples
To run the example apps in the example/lib directory, first replace the
example/lib/firebase_options.dart file by running flutterfire config (you
may need to manually delete this file first). The provided
firebase_options.dart file is a placeholder for configuration needed by the
examples.
Breaking changes and migration
The v0.9.8 release contained breaking changes. If you have code that uses
a version prior to that, please see the migration notes.
Feedback
As you use this package, please log issues and feature requests as well as
submit any code you'd like to contribute. We want your feedback and
contributions to ensure that the AI Toolkit is as robust and useful as it can be
for your real-world apps.