"use client";import { AssistantRuntimeProvider } from "@assistant-ui/react";import { useChatRuntime } from "@assistant-ui/ai-sdk";import { Thread } from "@/components/assistant-ui/thread";export function Chat() { const runtime = useChatRuntime(); return ( <AssistantRuntimeProvider runtime={runtime}> <Thread /> </AssistantRuntimeProvider> );}
useChatRuntime connects to the Vercel AI SDK out of the box. Swap it for useLangGraphRuntime, useDataStreamRuntime, or any custom runtime to integrate with your own backend.
What you get
Composable primitives: build any chat UX from Thread, Message, Composer, ThreadList, ActionBar, and friends. Style every pixel yourself, or start from a polished shadcn/ui theme that the CLI copies into your project.
Production UX out of the box: streaming, auto-scroll, retries, attachments, markdown, code highlighting, voice dictation, keyboard shortcuts, and accessibility.
Generative UI: render tool calls and JSON as React components, collect inline human approvals, and expose safe frontend actions to the model.
Strong TypeScript: typed runtime APIs, tool schemas, message parts, and adapters end to end.
Managed thread history, telemetry, and file storage
assistant-cloud
Broad model support out of the box (OpenAI, Anthropic, Google Gemini, Mistral, Perplexity, AWS Bedrock, Azure, Fireworks, Ollama) plus community providers via the AI SDK, and easy extension to any custom HTTP backend.
Customization
Instead of a single monolithic chat component, you compose primitives and bring your own styles. The CLI ships a great starter in your choice of Base UI (the default) or Radix UI flavor; you control everything else.
Sample customization to make a Perplexity lookalike:
Used in production by
,
,
,
,
,
,
,
,
,
, and many more.
Demos
Community & Support
Examples
Documentation
Discord
Book a sales call
For other platforms
React Native: @assistant-ui/react-native
Terminal (Ink): @assistant-ui/react-ink
License
MIT, with optional Assistant Cloud for managed thread persistence and analytics.