HextaUI と assistant-ui
assistant-ui はチャットフレームワークで、会話を管理するランタイムと、そこから読み取るコンポーネントで構成されています。HextaUI は完成した画面を普通のコンポーネントとして提供し、状態は今ある場所に残します。このページでは、2026 年 10 月時点の両者を比較します。
結論
無料で一通りそろったチャットフレームワークがほしく、そのランタイムの上に構築することに抵抗がないなら、特に LangGraph のようなエージェントのバックエンドを使う場合は、assistant-ui を使ってください。チャットから AI プロダクトの設定ページまで、統一されたデザインの完成した画面を、データを渡すだけのコンポーネントとして使いたいなら HextaUI を使ってください。どちらもソースをプロジェクトに置き、shadcn/ui のテーマトークンを共有します。
早見表
| HextaUI と assistant-ui の比較 | HextaUI | assistant-ui |
|---|---|---|
| 得られるもの | コンポーネント、AI ブロック、完全なチャットアプリ | チャットランタイム、ヘッドレスなプリミティブ、スタイル付きコンポーネント |
| 価格 | コンポーネントは無料、AI ブロックは買い切り、Prompt Input は無料 | 無料(有料のクラウドサービスは任意) |
| ライセンス | コンポーネントは MIT、ブロックは Proライセンス | MIT |
| プリミティブ | Base UI | Base UI または Radix |
| チャットの状態 | 自分で管理。ブロックはメッセージを props として受け取ります | assistant-ui のランタイムが保持 |
| バックエンド | 任意(AI SDK のメッセージパーツを使用) | AI SDK、LangGraph、LangChain、AG-UI、A2A、Google ADK、または独自のもの |
| プラットフォーム | Web 上の React | React に加え、React Native とターミナルアプリ |
| プロダクトの画面 | 設定、モデル、API キー、請求、チームのページ | チャットとエージェントのインターフェースに特化 |
フレームワークか、画面のセットか
assistant-ui は状態から出発します。アプリを AssistantRuntimeProvider で囲み、バックエンドに合わせてランタイムを選ぶと、そのコンポーネントがランタイムからスレッドを読み取ります。分岐、編集、添付ファイル、ツールの承認、再開可能なストリームはランタイムが担い、スタイル付きのコンポーネントは停止した実行や失敗した返信といった状態をすでに表示します。多くの作業を肩代わりしてくれる一方で、チャットはそのモデルの中に置かれることになります。あとから離れるには、画面だけでなく状態も書き直す必要があります。
HextaUI は画面から出発します。各ブロックは、useChat が返すのと同じ形でメッセージを渡すコンポーネントで、難しい状態はすでにデザインされています。
- Chat Thread: 失敗した返信には Try again が表示され、停止した返信はその旨を示し、編集や再試行は切り替え可能なバージョンになります。回答のストリーミング中は質問が上部に固定され、古い履歴はビューが跳ねることなく読み込まれます。
- Prompt Input: Enter が日本語、中国語、韓国語の入力を妨げることはなく、アップロードは進捗表示と再試行に対応し、返信中に入力したメッセージはキューで待機し、下書きは再読み込みしても残ります。無料です。
- Tool Calls: 承認を含め、AI SDK のすべてのツール状態にそれぞれの見た目があり、「Tell it what to do instead」で理由をモデルに送り返せます。
- Settings: Models、API keys、Billing、Team など、チャットの周りにあるページを同じデザインで提供します。
HextaAI は、すべてのブロックを組み合わせた完全なチャットアプリです。何もインストールせずに開いて試せます。
部品ごとの比較
assistant-ui のコンポーネントの多くには、対応する HextaUI のブロックやコンポーネントがあります。以下の名前は assistant-ui のドキュメントから取っています。
| assistant-ui | HextaUI |
|---|---|
| Thread, Message actions, Edit message, Error state | Chat Thread と、無料の Message、Message scroller |
| Message branches, Checkpoint history | Chat Thread のバージョンとチェックポイント |
| Composer, Composer attachments, Model selector, Message queue, Draft restore | Prompt Input(無料) |
| Thread list, Thread list sidebar | Chat Sidebar |
| Reasoning, Sources, Inline citation | Thinking |
| Tool call, Tool group, Approval card | Tool Calls |
| Agent plan, Todo list | Agent Todos |
| Markdown text, Streaming text | Markdown と Streaming |
| Syntax highlighter, Terminal block | Code Block |
| Artifact card, Web preview | Artifact |
| Reviewable diff, File tree | Diff Review と、無料の Tree |
| Composer voice, Voice conversation | Voice Mode |
| Runtimes, Assistant Cloud | 対応するものはありません。HextaUI にはランタイムもホスト型のストレージもないため、状態はあなたのコードに残ります。 |
assistant-ui のほうが適している場合
- すべて無料かつオープンソースであってほしい。HextaUI の AI ブロックの大半は有料です。
- バックエンドが LangGraph、LangChain、AG-UI、Google ADK などのエージェントフレームワークで、メッセージを自分で変換するのではなく、それ用のアダプターがほしい。
- ストレージを自分で作らずに、保存されたスレッド、実行レポート、分析を使いたい。Assistant Cloud がそれを担いますが、HextaUI にはホスト型のサービスがありません。
- React Native やターミナルのアプリも提供していて、それらすべてで 1 つのチャットモデルを使いたい。HextaUI は Web 専用です。
- Radix のプリミティブを使いたい。HextaUI は Base UI のみをベースにしています。
- 大きなコミュニティに支えられた、最も幅広いチャットとエージェントのコンポーネントのカタログがほしい。
組み合わせて使う
会話を管理するのはどちらか一方にしてください。すでに assistant-ui でチャットを動かしているならそのまま使い、Models や API keys など、その周りの画面に HextaUI を使ってください。AI SDK を使っていて画面だけを良くしたいなら、HextaUI のブロックは useChat がすでに返しているメッセージパーツを読み取るため、ランタイムを導入する必要はありません。Prompt Input は無料なので、まずはコンポーザーから始めてください。
よくある質問
assistant-ui は無料ですか?
はい。assistant-ui は MIT ライセンスのオープンソースです。保存されたスレッドや分析のためのホスト型サービスである Assistant Cloud は任意で、有料プランに加えて無料プランもあります。
HextaUI には assistant-ui のようなランタイムがありますか?
いいえ。HextaUI のブロックは、AI SDK の useChat が返すのと同じ形のメッセージを props として受け取る React コンポーネントです。チャットの状態は useChat、独自のストア、またはサーバーに置いたままで、アプリを何かで囲む必要もありません。
HextaUI は無料ですか?
コンポーネントは無料で、MIT ライセンスです。AI ブロックと完成した画面は HextaUI Pro に含まれます。HextaUI Pro は買い切りで、今後追加されるブロックもすべて含まれます。Prompt Input は無料です。
HextaUI と assistant-ui を同じプロジェクトで使えますか?
はい。ただし、チャットを管理するのはどちらか一方にしてください。どちらもソースをプロジェクトに置き、shadcn/ui のテーマトークンを使うため、HextaUI の設定ページやコンポーネントは、スタイルを調整し直さなくても assistant-ui のスレッドと並べて使えます。