MCPcopy Index your code
hub / github.com/assistant-ui/assistant-ui

github.com/assistant-ui/assistant-ui @0.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.0.0 ↗ · + Follow
2,005 symbols 4,994 edges 721 files 133 documented · 7% updated 1d agosafe-content-frame@0.0.22 · 2026-07-04★ 10,9567 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

assistant-ui Header

Product · Documentation · Examples · Discord Community · Contact Sales

Ask DeepWiki Weave Badge Backed by Y Combinator

The UX of ChatGPT in your React app 💬🚀

assistant-ui is an open source TypeScript/React library for AI chat.

The library handles essential chat features such as auto-scrolling, accessibility, and real-time updates, while providing easy integration with LangGraph, AI SDK, and custom backends.

The API of assistant-ui is inspired by libraries like shadcn/ui and cmdk. Instead of a single monolithic chat component, developers get primitive components that can be fully customized.

We have wide model provider support (OpenAI, Anthropic, Mistral, Perplexity, AWS Bedrock, Azure, Google Gemini, Hugging Face, Fireworks, Cohere, Replicate, Ollama) out of the box and the ability to integrate custom APIs.

Getting Started

You can get started by running npx assistant-ui create (new project) or npx assistant-ui init (existing project) in your terminal.

assistant-ui starter template

Features

  • shadcn/ui
  • Radix UI-inspired primitives for AI Chat
  • Beautiful shadcn/ui theme to get you started
  • Chat UI
  • Streaming, Auto-scrolling, Markdown, Code Highlighting, File Attachments, and more
  • Keyboard shortcuts and accessibility features
  • Generative UI
  • Map LLM tool calls and JSONs to custom UI components
  • Frontend tool calls
  • Let LLMs take action in your frontend application
  • Human tool calls
  • Human approvals and input collection
  • Chat history and analytics
  • Sign up for assistant-cloud and configure by simply setting an environment variable

Choose your backend

  • AI SDK
  • First class integration into AI SDK by Vercel. Connect to any LLM provider supported by AI SDK.
  • LangGraph
  • First class integration into LangGraph and LangGraph Cloud. Connect to any LLM provider supported by LangChain.
  • Custom
  • Use assistant-ui as the visualization layer on top your own backend/streaming protocols.

Customization

The API of assistant-ui is inspired by libraries like Radix UI and cmdk. Instead of a single monolithic chat component, we give you composable primitives and a great starter configuration. You have full control over the look and feel of every pixel while leaving auto-scrolling, LLM streaming and accessibility to us.

Overview of components

Sample customization to make a perplexity lookalike:

Perplexity clone created with assistant-ui

Demo Video

Short Demo

Long Demo

Traction

Hundreds of projects use assistant-ui to build in-app AI assistants, including companies like LangChain, AthenaIntelligence, Browser Use, and more.

With >200k monthly downloads, assistant-ui is the most popular UI library for building AI chat.

Growth

2025 Q1 Roadmap

  • [x] Assistant Cloud
  • [x] Chat Persistence
  • [x] React 19, Tailwind v4, NextJS 19 support
  • [x] Improved Markdown rendering performance
  • [x] LangGraph interrupt() support
  • [x] Open in v0 support
  • [ ] Improved documentation (work in progress)
  • [ ] OpenAI Realtime Voice (work in progress)
  • [ ] Resume interrupted LLM calls (work in progress)
  • [ ] Native PDF attachment support
  • [ ] Follow-up suggestions

Next Steps

Extension points exported contracts — how you extend this code

Handle (Interface)
(no doc) [8 implementers]
packages/assistant-stream/src/core/tool/ToolCallReader.ts
TransformOptions (Interface)
(no doc)
packages/cli/src/commands/upgrade.ts
DocResult (Interface)
(no doc)
packages/mcp-docs-server/src/tools/docs.ts
MarqueeProps (Interface)
(no doc)
apps/docs/components/magicui/marquee.tsx
ButtonProps (Interface)
(no doc)
examples/with-parent-id-grouping/components/ui/button.tsx
ButtonProps (Interface)
(no doc)
examples/with-external-store/components/ui/button.tsx
Product (Interface)
(no doc)
examples/search-agent-for-e-commerce/components/ui/productcarousel.tsx
ButtonProps (Interface)
(no doc)
examples/with-langgraph/components/ui/button.tsx

Core symbols most depended-on inside this repo

cn
called by 75
apps/docs/lib/utils.ts
enqueue
called by 74
packages/assistant-stream/src/core/object/createObjectStream.ts
get
called by 57
packages/assistant-stream/src/core/tool/tool-types.ts
addOrUpdateMessage
called by 51
packages/react/src/runtimes/utils/MessageRepository.tsx
getState
called by 50
packages/react/src/api/ThreadRuntime.ts
forEach
called by 40
packages/assistant-stream/src/core/tool/tool-types.ts
pop
called by 38
python/assistant-stream/src/assistant_stream/state_proxy.py
cn
called by 36
examples/with-react-hook-form/lib/utils.ts

Shape

Function 1,183
Method 557
Class 227
Interface 29
Route 6
Enum 3

Languages

TypeScript91%
Python9%

Modules by API surface

packages/assistant-stream/src/core/tool/ToolCallReader.ts41 symbols
packages/react/src/api/ComposerRuntime.ts33 symbols
packages/react/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx29 symbols
python/assistant-stream/src/assistant_stream/state_proxy.py27 symbols
packages/react/src/api/ThreadRuntime.ts26 symbols
packages/react/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx25 symbols
packages/react/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx24 symbols
packages/react/src/runtimes/composer/BaseComposerRuntimeCore.tsx23 symbols
packages/assistant-stream/src/core/modules/assistant-stream.ts23 symbols
packages/react/src/runtimes/core/BaseThreadRuntimeCore.tsx22 symbols
python/assistant-ui-sync-server-api/src/assistant_ui/client.py21 symbols
packages/react/src/runtimes/utils/MessageRepository.tsx21 symbols

Dependencies from manifests, versioned

@ai-sdk/openai1.3.22 · 1×
@ai-sdk/provider2.0.0 · 1×
@ai-sdk/react2.0.0 · 1×
@ai-sdk/ui-utils1 · 1×
@assistant-ui/reactworkspace:* · 1×
@assistant-ui/react-ai-sdkworkspace:* · 1×
@assistant-ui/react-ai-sdk-v4workspace:* · 1×
@assistant-ui/react-langgraphworkspace:* · 1×
@assistant-ui/stylesworkspace:* · 1×

For agents

$ claude mcp add assistant-ui \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact