Official Chat Persistence Client for Stream Chat

The official Chat Persistence Client for Stream Chat, a service for building chat applications.

Pub CI

Quick Links

This package provides a persistence client for fetching and saving chat data locally. Stream Chat Persistence uses Moor as a disk cache.


Check out the changelog on to see the latest changes in the package.

Add dependency

Add this to your package's pubspec.yaml file, use the latest version Pub

 stream_chat_persistence: ^latest_version

You should then run flutter packages get


The usage is pretty simple.

  1. Create a new instance of StreamChatPersistenceClient providing logLevel and connectionMode.
final chatPersistentClient = StreamChatPersistenceClient(
  logLevel: Level.INFO,
  connectionMode: ConnectionMode.regular,
  1. Pass the instance to the official Stream chat client.
  final client = StreamChatClient(
    apiKey ?? kDefaultStreamApiKey,
    logLevel: Level.INFO,
  )..chatPersistenceClient = chatPersistentClient;

And you are ready to go...

Flutter Web

Due to Moor web (for offline storage) you need to include the sql.js library:

<!doctype html>
<html lang="en">
    <meta charset="UTF-8">
    <script defer src="sql-wasm.js"></script>
    <script defer src="main.dart.js" type="application/javascript"></script>

You can grab the latest version of sql-wasm.js and sql-wasm.wasm here and copy them into your /web folder.


We welcome code changes that improve this library or fix a problem, please make sure to follow all best practices and add tests if applicable before submitting a Pull Request on Github. We are pleased to merge your code into the official repository. Make sure to sign our Contributor License Agreement (CLA) first. See our license file for more details.