Overview

Built on the Stream Chat API, the Stream Chat React Native SDK provides ready-made, customizable UI components for React Native CLI and Expo so you can ship chat fast with minimal setup. The libraries support:

  • Rich media messages
  • Reactions
  • Threads and quoted replies
  • Text input commands (ex: Giphy, emojis and @mentions for users, channels, roles, and groups)
  • Image and file uploads
  • Video playback
  • Audio recording and voice messages
  • Read state and typing indicators
  • Channel and message lists
  • Push notifications (APN or Firebase)
  • Offline storage with SQLite
  • Polls and voting
  • Message reminders
  • Draft messages
  • AI-powered features
  • and a lot more.

Our SDK fully supports the React Native new architecture (Fabric and TurboModules). You can read more about it here.

  • Pick the correct package (stream-chat-react-native vs stream-chat-expo) based on your app runtime.
  • Start with the tutorial to validate core flows before deep customization.
  • Treat the JavaScript client docs as the source of truth for low-level client behavior.
  • Keep semver expectations in mind: minor updates can include UI changes; pin if you need visual stability.
  • Avoid installing stream-chat separately; rely on the SDK’s bundled dependency.

Build with Stream Agent Skills

Stream Agent Skills teach AI coding agents such as Claude Code, Cursor, and Codex how to build with Stream, giving your agent accurate, up-to-date context the moment it starts writing Stream code.

Install the stream skill into your project:

npx skills add GetStream/agent-skills --skill stream

The stream skill is a router: it reads each request and dispatches to the right specialist, installing the React Native pack (/stream-react-native) on demand the first time a task needs it. The skills are markdown only, so nothing runs when you install them.

Once installed, invoke it from your agent:

/stream-react-native Add Stream Chat to my Expo app.

See the Agent Skills docs for the full skill list and other ways to install.

What's New in v9

Version 9 is a ground-up redesign of the entire UI layer:

  • New design token system: A modern, polished default theme built on design tokens.
  • Slot-based MessageComposer: A composition architecture for the message input with middleware support and fine-grained customization.
  • Component overrides via WithComponents: Component-type overrides move off Channel props and into the WithComponents provider.
  • React Native New Architecture only: V9 requires React Native 0.76+ with the New Architecture enabled.
  • New base UI component library: A brand-new set of base UI primitives and a centralized state store system.

If you're upgrading from v8, see the migration guide for details on breaking changes.

Where to get started?

If you are new to the SDK, start with the React Native SDK tutorial.

Architecture

Stream Chat React Native SDK primarily uses the Stream Chat client to connect to and communicate with the Stream API.

The full JavaScript client docs should be referenced for detailed information on directly using the client.

Do not install the stream-chat dependency externally. The SDK includes it as a development dependency.

The SDK ships as two packages:

  • stream-chat-react-native for React Native CLI applications.
  • stream-chat-expo for Expo CLI applications.

Use the package that matches your CLI. You can use the out-of-the-box UI or build your own by consuming the exposed state and reusing components as building blocks.

Upgrading and Versioning Strategy

The Stream Chat React Native SDK adheres to the semantic versioning rules.

  • Bug fixes and behavior improvements cause patch version bump.
  • New features are shipped with an increased minor version.
  • Incompatible changes in the API will cause a major version increase.

Minor versions can include visual changes (spacing, colors, sizing) as the default UI evolves.

Platform Compatibilities

Supported platforms are Android and iOS. Web is not currently supported; use Stream's React SDK for Web.

Sample Apps

Sample apps live in the examples directory of the main repository. Additional clones (e.g., Slack, iMessage) are in our repository.