assistant-ui is a free, open source ai interaction & interfaces project written in TypeScript and released under MIT. It has 12,192 GitHub stars, 1,183 forks and 207 open issues, and was last pushed 3 hours ago. On this registry it ranks #36 of 76 tracked projects in AI Interaction & Interfaces, with 5 head-to-head comparisons available.

What is assistant-ui?

assistant-ui is an open-source TypeScript and React library, released under the MIT licence, for building production-grade AI chat experiences quickly, and it is aimed at frontend and full-stack developers who need the user experience of ChatGPT inside their own React application.

What it is

assistant-ui lives in the React and TypeScript ecosystem and ships as composable primitives rather than a finished product. The library provides Thread, Message, Composer, ThreadList, and ActionBar components, and its CLI copies a styled shadcn/ui theme into the project so every pixel stays under the developer's control. Backed by Y Combinator, it is distributed on npm as @assistant-ui/react alongside backend adapters such as @assistant-ui/ai-sdk.

The concrete problem it solves is the monolithic chat component. Instead of dropping in one opaque widget that cannot be restyled or extended, developers compose primitives and supply their own styles, runtimes, and backends. useChatRuntime connects to the Vercel AI SDK out of the box, while useLangGraphRuntime, useDataStreamRuntime, or a custom runtime can be swapped in for an existing backend. This is the piece of UI that would otherwise be written from scratch for every project.

Key capabilities

  • Composable primitives β€” Thread, Message, Composer, ThreadList, ActionBar β€” assembled into any chat layout instead of configured through props.
  • Production interaction behaviour out of the box: streaming, auto-scroll, retries, attachments, markdown, code highlighting, voice dictation, keyboard shortcuts, and accessibility.
  • Generative UI that renders tool calls and JSON as React components, collects inline human approvals, and exposes safe frontend actions to the model.
  • End-to-end TypeScript typing across runtime APIs, tool schemas, message parts, and adapters.
  • Backend adapters for the Vercel AI SDK, LangGraph and LangChain, the AG-UI and A2A protocols, Google ADK, OpenCode, and custom data-stream backends.
  • Model support for OpenAI, Anthropic, Google Gemini, Mistral, Perplexity, AWS Bedrock, Azure, Fireworks, and Ollama, plus community providers through the AI SDK.
  • assistant-cloud for managed thread history, telemetry, and file storage.

Who uses it and how

  • Teams placing an AI copilot or chatbot inside an existing React application where the chat surface must match an established design system; the shadcn/ui theme is copied into the repository, so styling stays local.
  • Products already running an agent backend on LangGraph or LangChain that need a typed React front end for it.
  • Applications requiring inline human approval, where generative UI renders a tool call as a component and the user accepts or rejects it before execution.
  • Projects that route model traffic through the AI SDK to OpenAI, Anthropic, Gemini, Bedrock, Azure, or a local Ollama instance to keep model choice open.

Getting started

The fastest path is the CLI: npx assistant-ui@latest create scaffolds a new Next.js project, and npx assistant-ui@latest init adds the styled components to an existing one. Direct installation uses npm install @assistant-ui/react @assistant-ui/ai-sdk, after which AssistantRuntimeProvider with useChatRuntime and the generated thread.aui element renders a working thread.

How it compares

No list of paid products that this project replaces is provided in this entry, and no comparable library is named alongside it, so it stands alone in this registry. Evaluation therefore has to run against whatever alternatives a team is already considering.

When to use it β€” and when not to

Choose assistant-ui when the chat interface is a first-class part of a React product, the visual design must be owned rather than themed from outside, and the backend runtime is a deliberate architectural choice. Self-hosters must supply that runtime themselves and wire the HTTP backend, and managed thread history, telemetry, and file storage require adopting assistant-cloud. Teams working outside React and TypeScript should look elsewhere, and 207 open issues signal a large surface to track; the production-user list in the README is blank in this entry, so that claim cannot be checked here.

project readme (upstream, from github) β€” read inline
assistant-ui Header

Product Β· Documentation Β· Examples Β· Discord Β· Contact Sales

npm version npm downloads Ask DeepWiki Weave Badge GitHub License GitHub stars Backed by Y Combinator

The UX of ChatGPT in your React app πŸ’¬πŸš€

assistant-ui is an open-source TypeScript/React library to build production-grade AI chat experiences fast.

Installation

The fastest path is the CLI, which scaffolds a Next.js app or adds the styled components to an existing project:

npx assistant-ui@latest create   # new project
npx assistant-ui@latest init     # add to existing project

Or install the packages directly:

npm install @assistant-ui/react @assistant-ui/ai-sdk

Usage

"use client";

import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { useChatRuntime } from "@assistant-ui/ai-sdk";
import { Thread } from "@/components/assistant-ui/elements/thread.aui";

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.

assistant-ui starter template

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.

Backends

Integration Package
Vercel AI SDK @assistant-ui/ai-sdk
LangGraph / LangChain @assistant-ui/react-langgraph, @assistant-ui/react-langchain
AG-UI / A2A protocols @assistant-ui/react-ag-ui, @assistant-ui/react-a2a
Google ADK / OpenCode @assistant-ui/react-google-adk, @assistant-ui/react-opencode
Custom data-stream backend @assistant-ui/react-data-stream
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.

Overview of components

Sample customization to make a Perplexity lookalike:

Perplexity clone created with assistant-ui

Used in production by

Mastra, LangChain, Athena Intelligence, Browser Use, Stack, Inconvo, Iterable, Helicone, Gram, Coreviz, and many more.

Chart of assistant-ui's traction

Demos

Community & Support

For other platforms

readme truncated β€” read the full docs on github

Frequently asked questions

Is assistant-ui free to use?

assistant-ui is open source under the MIT licence. There is no licence fee and no seat count β€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does assistant-ui do?

Typescript/React Library for AI Chat πŸ’¬πŸš€

What is assistant-ui written in?

assistant-ui is primarily written in TypeScript. Its source is publicly available at https://github.com/assistant-ui/assistant-ui, and it has 12,192 GitHub stars.