Decision guide for choosing the right runtime, by framework or by feature.
A runtime is the connection between assistant-ui's UI primitives and your AI backend. This page helps you pick one. Two lenses, pick whichever maps to what you already know.
Lens 1: by framework
If you are already using one of these frameworks, the choice is mechanical.
First-party adapters
assistant-ui ships React adapter packages for these. Pick the matching card and follow its overview.
Integration guides
For frameworks without a dedicated adapter, these wiring guides route through one of the adapters above.
Lens 2: by needs
If you do not know your framework yet, or your backend is custom, pick by what you need:
| You need | Use |
|---|---|
Simple fetch call to your API, runtime owns state | LocalRuntime |
| Keep messages in redux, zustand, tanstack-query, etc. | ExternalStoreRuntime |
| Backend that already speaks the data stream protocol | DataStream |
| Stream full agent state snapshots (not just messages) | AssistantTransport |
If none of the framework adapters fits, start at custom backend.
Shared concepts
Regardless of which runtime you pick, four ideas apply across the board.
- Architecture — Framework adapters wrap one of two core runtimes (
LocalRuntime,ExternalStoreRuntime). See architecture for the full layering. - Adapters (attachments, speech, feedback, history, suggestions) work the same way across runtimes. See adapters.
- Threads (single, cloud, custom database) follow the same model. See threads.
- Stability policy: APIs prefixed with
unstable_may change in any release. See stability.
Need help? Join our Discord community or check the GitHub repo.