HextaUI and assistant-ui

assistant-ui is a chat framework: a runtime that manages the conversation, with components that read from it. HextaUI gives you finished screens as plain components, and leaves the state where it already is. This page compares them as of October 2026.

The short answer

Use assistant-ui when you want a free, complete chat framework and are happy to build on its runtime, especially with an agent backend such as LangGraph. Use HextaUI when you want finished screens in one design, from the chat to the settings pages of your AI product, as components you pass data to. Both put their source in your project and share the shadcn/ui theme tokens.

At a glance

HextaUI compared with assistant-uiHextaUIassistant-ui
What you getComponents, AI blocks and a complete chat appA chat runtime, headless primitives and styled components
PriceComponents free, AI blocks paid once, Prompt Input freeFree, with an optional paid cloud service
LicenseMIT for components, Pro License for blocksMIT
PrimitivesBase UIBase UI or Radix
Chat stateYours. Blocks take messages as propsHeld by an assistant-ui runtime
BackendsAny, using AI SDK message partsAI SDK, LangGraph, LangChain, AG-UI, A2A, Google ADK or your own
PlatformsReact on the webReact, plus React Native and terminal apps
Product screensSettings, models, API keys, billing and team pagesFocused on chat and agent interfaces

A framework or a set of screens

assistant-ui starts from state. You wrap your app in AssistantRuntimeProvider, pick a runtime for your backend, and its components read the thread from that runtime. Branching, editing, attachments, tool approvals and resumable streams come from the runtime, and its styled components already show states like a stopped run or a failed reply. That is a lot of work done for you, and the trade is that your chat lives inside its model. Moving off it later means rewriting the state as well as the screens.

HextaUI starts from the screen. Each block is a component you pass messages to, in the shape useChat returns, with the hard states already designed:

  • Chat Thread: failed replies offer Try again, stopped replies say so, and edits and retries become versions you can switch between. Your question pins to the top while the answer streams, and older history loads without the view jumping.
  • Prompt Input: Enter never interrupts Japanese, Chinese or Korean input, uploads show progress and retry, messages typed during a reply wait in a queue, and drafts survive a reload. It is free.
  • Tool Calls: every AI SDK tool state has its own look, including approvals, with “Tell it what to do instead” to send a reason back to the model.
  • Settings: the pages around the chat, such as Models, API keys, Billing and Team, in the same design.

HextaAI puts every block together into a complete chat app you can open and try before you install anything.

Piece by piece

Most assistant-ui components have a HextaUI counterpart. The names below are from the assistant-ui docs.

assistant-uiHextaUI
Thread, Message actions, Edit message, Error stateChat Thread, with the free Message and Message scroller
Message branches, Checkpoint historyVersions and checkpoints in Chat Thread
Composer, Composer attachments, Model selector, Message queue, Draft restorePrompt Input, free
Thread list, Thread list sidebarChat Sidebar
Reasoning, Sources, Inline citationThinking
Tool call, Tool group, Approval cardTool Calls
Agent plan, Todo listAgent Todos
Markdown text, Streaming textMarkdown and Streaming
Syntax highlighter, Terminal blockCode Block
Artifact card, Web previewArtifact
Reviewable diff, File treeDiff Review, with the free Tree
Composer voice, Voice conversationVoice Mode
Runtimes, Assistant CloudNo counterpart. HextaUI has no runtime or hosted storage, so the state stays in your code.

When assistant-ui is the better choice

  • You want everything free and open source. Most of HextaUI’s AI blocks are paid.
  • Your backend is an agent framework such as LangGraph, LangChain, AG-UI or Google ADK, and you want an adapter for it rather than mapping its messages yourself.
  • You want saved threads, run reports and analytics without building the storage. Assistant Cloud does that, and HextaUI has no hosted service.
  • You also ship a React Native or terminal app and want one chat model across them. HextaUI is web only.
  • You want Radix primitives. HextaUI is built on Base UI only.
  • You want the widest catalog of chat and agent components, with a large community behind it.

Using them together

Pick one to own the conversation. If assistant-ui already runs your chat, keep it, and use HextaUI for the screens around it, such as Models or API keys. If you are on the AI SDK and only want better screens, HextaUI blocks read the message parts useChat already gives you, so there is no runtime to adopt. Start with the composer, since Prompt Input is free.

Questions

Is assistant-ui free?

Yes. assistant-ui is open source under the MIT license. Assistant Cloud, its hosted service for saved threads and analytics, is optional and has a free plan alongside paid ones.

Does HextaUI have a runtime like assistant-ui?

No. HextaUI blocks are React components that take messages as props, in the same shape the AI SDK’s useChat returns. Your chat state stays in useChat, your own store or your server, and nothing wraps your app.

Is HextaUI free?

The components are free and MIT licensed. The AI blocks and full screens are HextaUI Pro, a single payment with every later block included. Prompt Input is free.

Can I use HextaUI and assistant-ui in the same project?

Yes, but let one of them own the chat. Both put their source in your project and use the shadcn/ui theme tokens, so HextaUI settings pages or components sit next to an assistant-ui thread without restyling.

More comparisons