Picking a runtime

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 needUse
Simple fetch call to your API, runtime owns stateLocalRuntime
Keep messages in redux, zustand, tanstack-query, etc.ExternalStoreRuntime
Backend that already speaks the data stream protocolDataStream
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.