// the find
flyerhq/flutter_chat_ui
Free and open-source chat SDK. Build fast, real-time apps and generative AI agents with a high-performance, customizable, cross-platform UI.
A Flutter chat UI SDK laid out as a Melos monorepo. flutter_chat_core holds the message models, chat controller and theming, flutter_chat_ui holds the widget, and optional packages render text, streamed text, image, file and system messages. It suits teams building messengers or LLM chat screens who want to bring their own backend and replace individual pieces.
The split between flutter_chat_core and flutter_chat_ui is sound: the controller and models sit in their own package with an in-memory controller test suite, so the state layer can be tested without pumping widgets. The widget takes a controller and builder callbacks rather than assuming a transport, which is what you need for a websocket feed or a streamed LLM response. The message renderers are separate packages, so a team that only needs text does not inherit image and file dependencies. Apache 2.0 with clear package boundaries makes it practical to fork one renderer and keep the rest upstream.
The real documentation lives on flyer.chat, not in the repo, so the README is little more than a pointer and the controller and builder behaviour has to be read from source or the example app. The 'performance optimized' and 'built for speed' claims have no benchmark or numbers behind them, so measure a long list with images before trusting them. Generated .freezed.dart and .g.dart files are committed next to the models, which means a model change only stays correct if someone reruns build_runner and commits the output in the same change. A basic setup needs at least two packages, and the optional renderers are opinionated, so a custom bubble design often means writing your own message widget instead of configuring theirs.