Third-party services and adapter recipes that plug into a working assistant-ui app.
Integrations are wiring guides for using third-party services with assistant-ui, plus canonical recipes for the adapter slots (persistence, attachments). They are distinct from runtimes, which are the React adapter packages (@assistant-ui/react-ai-sdk, @assistant-ui/react-langgraph, etc.) that connect the UI to a backend. An integration assumes you already have a working runtime and adds something on top.
Where integrations slot in
browser ──► your API route ──► LLM provider
│ ▲
│ │
agent │ │ observability
frameworks │ │ proxies
(e.g. │ │ (e.g. Helicone,
Mastra) │ │ Langfuse)
▼ │
run on the server, │
then forward calls ──────┘
to the providerIntegrations live on the server. Agent frameworks like Mastra take over the API route. Gateways swap the upstream provider URL. Observability logs or traces every call. Auth gates the route and scopes per-user data. Persistence and attachments are adapter recipes for storing chat data outside the default in-memory path.
Frameworks
Framework integrations that pair with assistant-ui at the API-route layer.
Tools
Pluggable tool catalogs and protocols.
Gateways
OpenAI-compatible proxies that add catalog routing, fallback, BYOK, or self-hosting.
Observability
Log, monitor, trace, and evaluate LLM calls. These pair with any runtime.
Auth
Gate the chat route and scope thread data to the signed-in user. These pages are the non-cloud path; pair with custom thread persistence when you own the database.
For AssistantCloud users, cloud authorization handles the JWT exchange for Clerk, Auth0, Supabase, and Firebase without DB code.
Persistence
Store threads and messages outside AssistantCloud.
Attachments
Upload chat attachments to object storage instead of inlining as data URLs.
Don't see your service?
assistant-ui doesn't ship a guide for every tool, but most fit one of two patterns:
- Routes through your AI SDK handler (agent frameworks, observability proxies, gateways): adapt the Mastra full-stack or Helicone proxy pattern using the service's own SDK.
- Replaces the runtime entirely (custom backends): see custom backend.
If you build something useful, open an issue or post in Discord; the docs are open to contributions.