TUI(テキストユーザーインターフェース)とは
テキストユーザーインターフェース / Text-based User Interface / ターミナルUI
端末画面上の文字だけで構成する対話的なユーザーインターフェースで、コーディングエージェントの標準的な操作画面として使われる
ひとことで言うと
ターミナルの中で文字だけを使い、画面を書き換えながら操作できるようにしたインターフェース。
概要
TUI(Text-based User Interface)は、グラフィックスを使わず端末上の文字と色だけで画面を構成する対話的なユーザーインターフェース。 コマンドを1行入力して結果が流れていくCLIと異なり、端末のカーソル制御を使って画面全体を任意に書き換えるため、常時表示されるステータス行、選択肢のリスト、進捗表示、差分のプレビューといった要素を配置できる。 AI分野では、Claude CodeやCodex CLI、Gemini CLIといったコーディングエージェントの操作画面として広く使われている。エージェントは応答をストリーミングで返し、ツール実行の許可を対話的に求め、長時間動き続けながら状態を表示する必要があるため、逐次出力だけのCLIより画面を保持して更新できるTUIが適する。 実装にはRust向けのratatui、Go向けのBubble Tea、Node.js向けのInk、Python向けのTextualといったライブラリが使われる。
背景
コーディングエージェントは、リポジトリ内のファイル編集やコマンド実行を伴う長時間のタスクを扱う。単発のコマンドと出力で完結するCLIの形式では、実行中の進捗、ツール呼び出しの許可要求、モデルからのストリーミング応答といった刻々と変わる状態を扱いにくい。 一方でGUIやエディタ統合の形態を取ると、開発者が既に作業しているターミナルやSSH越しのリモート環境から離れることになる。端末内で完結しながら画面を保持・更新できるTUIは、この2つの制約の間で選ばれている。
歴史
1978年ごろ: BSD UNIXで端末制御ライブラリcursesが公開され、端末ごとの差異を吸収して全画面のテキストインターフェースを実装できるようになる。 2025年2月: Anthropicが、TUIを操作画面とするコーディングエージェント「Claude Code」をresearch previewとして公開。
利点
- 端末内で完結するため、SSH越しのリモートサーバーやコンテナ内でもそのまま利用できる
- 画面を保持したまま更新できるため、ストリーミング応答や実行中の進捗、許可要求を1画面に集約して表示できる
- GUIに比べて必要な資源が小さく、既存のシェルやtmux等の端末環境と組み合わせやすい
欠点
- 文字のみで表現するため、画像やレンダリング結果の確認といった視覚的な情報の扱いは苦手
- 端末エミュレータ・フォント・カラー設定の違いによって表示崩れが起きやすい
- キーボード操作が中心となり、ターミナルに不慣れなユーザーには学習コストがかかる
比較
- AI IDE — TUIが端末内で完結する文字ベースの操作画面であるのに対し、AI IDEはGUIのエディタ上で差分表示やファイルツリーと統合された操作環境を提供する
- Claude Code — Claude Codeは、TUIを操作画面として採用したコーディングエージェント製品の1つ
関連用語
よくある質問
CLIとTUIの違いは?
CLIはコマンドを1行入力し結果が下へ流れていく逐次的な形式を指す。TUIは端末のカーソル制御を使って画面全体を任意に書き換える形式で、常時表示されるステータス行や選択リスト、進捗表示を配置できる。実際のコーディングエージェントは、コマンドとして起動した後にTUIへ入る形が多く、両者は排他ではない。
なぜコーディングエージェントはTUIを採用することが多いのか?
ストリーミング応答の表示、ツール実行の許可要求、長時間タスクの進捗表示といった、状態が変わり続ける情報を扱う必要があるため。加えて、SSH越しのリモート環境やコンテナ内でもそのまま動かせる点が、開発者の作業環境と相性が良い。