Radix-style React primitives for AI chat with adapters for AI SDK, LangGraph, Mastra, and custom backends.
The props-driven reasoning disclosure: streaming preview, fades, and variants, no runtime required.
The agent proposes a change with its confidence, and waits for a yes.
Fork the same turn to a different model instead of rolling the same dice.
An outline that fills in section by section, each carrying the sources behind it.
The passages a retrieval answer stands on, scored, before the answer itself arrives.
The same diff, but each hunk is a decision: keep it, discard it, apply what survived.
A run that repeats on its own, with its cadence and how it has been doing.
A verdict with its arithmetic shown: criteria, weights, and what pulled it down.
Streaming never steals your scroll position; a pill offers the way back down.
Find inside a long thread, with every hit marked down the scrollbar.
Which servers are connected, what each one brought, and which is still waiting on you.
Model, system prompt, temperature, and what the assistant is allowed to do.
A read-only transcript someone sent you, with a way to pick it up yourself.
The props-driven Shiki code block: streaming-aware highlighting, no runtime required.
Code block highlighting powered by react-shiki.
Keyframes and theme variables for the streaming shimmer animation.
Citations collapsed into a pill, expanding into scannable source cards.
Display URL sources with favicon, title, and an external link.
Who is talking, once a thread holds more than a user and one model.
The most common structured answer after a table: one object, labeled.
You pressed stop. The half-written answer stays, and continuing is one tap away.
Tokens arrive softly: the newest words land in blue and settle into ink.
Parallel workers with their own progress, models, and completions.
Code block highlighting powered by react-syntax-highlighter.
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.
Realtime voice session controls with connect, mute, and a status indicator.