Radix-style React primitives for AI chat with adapters for AI SDK, LangGraph, Mastra, and custom backends.
Command output that streams line by line and ends with an exit status.
A live status line that names what the agent is doing right now, with elapsed time.
Chat container with message list, composer, auto scroll, and accessibility built in.
Conversation history with unread marks and actions that wait for hover.
Sidebar or dropdown for switching conversations, with search and active selection.
Sidebar shell that hosts the thread list beside a thread.
History you can actually get back into: pinned first, then grouped by when.
Events on a time axis, with what already happened and what is still coming.
Chronology in a long thread: days marked, times on hover.
What the turn cost: time to first token, throughput, tokens, money.
The agent's own working list, rewritten mid-run as it discovers what else is needed.
One tool invocation with its request and result tucked behind a disclosure.
One call failed. The error, the attempt count, and a retry that doesn't restart the turn.
Default renderer for tool calls that have no dedicated UI.
Collapsible wrapper around consecutive tool calls.
A whole working session summarized as verbs, targets, and file stats.
Icon button with an accessible tooltip label, shared across the assistant UI components.
Every span in a run on one time axis, nested, so you can see where it actually went.
The classic three dots, tuned to read as presence rather than noise.
Resolve an image attachment to a preview source URL.
Copy text to the clipboard with a temporary copied state.
The cn class name helper that every assistant-ui component imports from @/lib/utils.
Realtime voice session controls with connect, mute, and a status indicator.
A live call: the orb tracks your voice, the caption names the turn, the transcript follows.
The live call screen bound to the thread's voice session: orb, caption, transcript, mute, and end call.
The props-driven voice orb: five session states and four palettes, no runtime required.
Chrome for a sandboxed preview: a URL bar, reload, and open-in-new around a frame you isolate.
A search query and its results landing one by one as the agent reads.