curl -fsSL https://getstream.io/cli.sh | bash
getstream skills stream-react-nativeOverview
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.
Start here
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.
Build with Stream CLI and Agent Skills
The Stream CLI and Agent Skills provide AI coding agents, such as Claude Code, Cursor, and Codex, with the tools and knowledge necessary to build apps with Stream.
Install the CLI and add the skills to your project:
Once installed, invoke it from your agent:
/stream Add Stream Chat to my React Native app.The /stream skill acts as a router, reading your request and dispatching it to the specialist skill. You can also invoke the /stream-react-native skill directly.
Stream Agent Skills can also be installed from skills.sh.
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 offChannelprops and into theWithComponentsprovider. - 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.
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-nativefor React Native CLI applications.stream-chat-expofor 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.
flowchart LR
app[Your app] --> ui[UI components]
app -. custom UI .-> client
ui --> client[stream-chat client]
client <--> api[Stream API]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. Pin an exact version if you need visual stability.
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.