TUI は Hermes の最新フロントエンドです – 従来の CLI と同じ Python ランタイムを基盤とするターミナル UI です。エージェント、セッション、スラッシュコマンドはすべて同じです; より洗練された、応答性の高いインターフェースで操作できます。Hermes を対話的に実行する際の推奨方法です。
Hermes エージェント☤ 入門 : ユーザガイド – TUI
作成 : Masashi Okumura (@classcat.com)
作成日時 : 07/07/2026
バージョン : Hermes Agent v0.18.0 (2026.7.1)
* 本記事は hermes-agent.nousresearch.com/docs の以下のページを参考にしています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。

Hermes エージェント☤ 入門 : ユーザガイド – TUI
TUI は Hermes の最新フロントエンドです – 従来の CLI と同じ Python ランタイムを基盤とするターミナル UI です。エージェント、セッション、スラッシュコマンドはすべて同じです; より洗練された、応答性の高いインターフェースで操作できます。
Hermes を対話的に実行する際の推奨方法です。
Launch
# Launch the TUI
hermes --tui
# Resume the latest TUI session (falls back to the latest classic session)
hermes --tui -c
hermes --tui --continue
# Resume a specific session by ID or title
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"
# Run source directly — skips the prebuild step (for TUI contributors)
hermes --tui --dev
You can also enable it via env var:
export HERMES_TUI=1
hermes # now uses the TUI
hermes chat # same
Or make it the persistent default in ~/.hermes/config.yaml:
display:
interface: tui # "cli" (default) or "tui"
`display.interface: tui` を指定すると、単なる `hermes` (および `hermes chat`) は TUI を起動します。明示的なフラグが常に優先されます – 単一の呼び出しで従来の REPL に戻るには `hermes –cli` を実行します、また設定のデフォルトが cli の場合に TUI を強制するには `hermes –tui` / `HERMES_TUI=1` を実行します。
従来の CLI は、公開時のデフォルト設定のままです。CLI インターフェースで記載されている機能 – スラッシュコマンド, クイックコマンド, スキルのプリロード, パーソナリティ, 複数行入力, 割り込み – はすべて TUI でも同様に動作します。
Why the TUI
- 瞬時の最初のフレーム表示 ― アプリケーションのロードが完了する前にバナーが表示されるため、Hermes の起動中に端末がフリーズしたように感じることはありません。
- ノンブロッキング入力 ― セッションの準備が整う前にメッセージを入力してキューに追加できます。エージェントがオンラインになった瞬間に最初のプロンプトが送信されます。
- リッチ・オーバーレイ ― モデルピッカー、セッションピッカー、承認プロンプト、確認プロンプトはすべて、インラインフローではなくモーダルパネルとして表示されます。
- ライブセッションパネル ― ツールとスキルは初期化されるにつれて段階的に表示されます。
- マウスフレンドリーな選択 ― ドラッグして、SGR 反転ではなく統一的なバックグラウンドでハイライト表示できます。端末の通常のコピー・ジェスチャーでコピーできます。
- 代替画面レンダリング ― 差分更新により、ストリーミング中のちらつきがなく、終了後にスクロールバックが煩雑になることもありません。
- コンポーザーのアフォーダンス ― 長いスニペットのためのインライン・ペースト・コラプス、クリップボード画像のフォールバック機能を備えた Cmd+V / Ctrl+V テキストペースト、括弧付きペーストの安全性、そして画像/ファイルパス添付ファイルの正規化。
同じ スキン と パーソナリティ が適用されます。セッション中に `/skin ares`、`/personality pirate` で切り替えると、UI がリアルタイムで再描画されます。カスタマイズ可能なキーの完全なリストと、クラシック (UI) と TUI のどちらに適用されるかについては、スキンとテーマ を参照してください – TUI は、バナーパレット、UI の色、プロンプトのグリフ/色、セッション表示、完了メニュー、選択背景、tool_prefix、help_header を尊重します。
折りたたみ可能なバナーセクション
TUIの起動バナーは、ランタイム情報を 4 つの折りたたみ可能なセクションにグループ化しており、各セクションのタイトルの横に ▸ / ▾ のシェブロン (山括弧) で表示されます :
- (セクション – デフォルトの状態)
- ツール – Open
- スキル – Collapsed
- システム・プロンプト – Collapsed
- MCP サーバ – Collapsed
セクションヘッダー (またはそのシェブロン) 上の任意の場所をクリックすると、切り替えることができます。ツールリストは、セッション開始時に最もチェックされるセクションであるため、デフォルトで開きます; スキル、システムプロンプト、MCPサーバーはデフォルトで折りたたまれるため、数十個のスキルをインストールしたり、多数の MCP サーバーを配備したりしても、バナーはコンパクトなままです。状態はバナーインスタンスに固有のものであるため、次回起動時にはデフォルト設定に戻ります。
要件
- Node.js ≥ 20 — TUI は Python CLI から起動されたサブプロセスとして動作します。`hermes doctor` でこれを検証できます。
- TTY — 従来の CLI と同様に、stdin をパイプしたり、非対話型環境で実行したりする場合は、単一クエリモードにフォールバックします。
Hermes は初回起動時に TUI の Node 依存関係を ui-tui/node_modules にインストールします (1回のみ、数秒)。以降の起動は高速です。新しい Hermes バージョンをプルした場合、ソースが配布版よりも新しい場合は TUI バンドルが自動的に再構築されます。
外部の事前ビルド
事前ビルド済みバンドル (Nix、システムパッケージ) を同梱しているディストリビューションは、Hermes にそれを指定できます :
export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui
The directory must contain dist/entry.js.
キーバインド
キーバインドは従来の CLI と全く同じです。動作上の違いは以下のとおりです :
- マウスドラッグ でテキストが統一的な選択範囲のバックグラウンドでハイライト表示されます。
- Cmd+V / Ctrl+V は、まず通常のテキスト貼り付けを試み、次に OSC52/ネイティブのクリップボード読み取りにフォールバックし、最後にクリップボードまたは貼り付けられたペイロードが画像であると判断された場合に画像添付を実行します。
- /terminal-setup は、macOS 上で Cmd+Enter と undo/redo の操作性を向上させるために、ローカルの VS Code / Cursor / Windsurf ターミナルバインディングをインストールします。
- スラッシュ自動補完 は、インラインのドロップダウンではなく、説明付きのフローティングパネルとして開きます。
- Ctrl+X を押すと、ライブセッションスイッチャーが開きます。キューイングされたメッセージがハイライト表示されている(エージェントがまだ稼働している間に送信された)場合、代わりにそのキューメッセージは削除されます。Esc キーを押すと編集がキャンセルされ、ハイライト表示が解除されますが、削除はされません。
- Ctrl+G / Ctrl+X Ctrl+E — 現在の入力バッファを $EDITOR で開き、複数行または長いプロンプトを作成します; 保存して終了すると、内容がプロンプトとして返されます。
スラッシュコマンド
すべてのスラッシュコマンドは変更なく動作します。一部のコマンドは TUI 固有のものです – よりリッチな出力を生成したり、インラインパネルではなくオーバーレイとしてレンダリングします :
- /help – カテゴリ分けされたコマンドのオーバーレイ、矢印キーで操作可能
- /sessions (alias /switch) – ライブセッション・スイッチャー — 開いている TUI セッションの一覧を表示し、セッションを切り替えたり、閉じたり、新しいセッションを開始したりできます。
- /model – プロバイダー別にグループ化されたモーダルなモデル選択ツール (料金ヒント付き)
- /skin – ライブプレビュー — 閲覧中にテーマ変更が適用されます
- /details – ツール呼び出しの詳細表示を切り替える (全体またはセクションごと)
- /usage – リッチなトークン/コスト/コンテキスト・パネル
- /agents (alias /tasks) – オブザーバビリティ・オーバーレイ — kill/一時停止制御を備えたライブ・サブエージェントツリー、ブランチごとのコスト/トークン/ファイルのロールアップ、ターンごとの履歴
- /reload – 実行中の TUI プロセスに ~/.hermes/.env を再読み込みすることで、新しく追加された API キーが再起動なしで有効になります。
- /mouse [on|off|toggle|wheel|buttons|all] – 実行時にマウス追跡プリセットを選択します (config.yaml の display.mouse_tracking にも保持されます)。wheel (1000+1006) は、tmux がプロンプト行に “No image in clipboard” とスパムするホバーイベントなしでスクロールホイールのスクロールを維持します; buttons はドラッグ選択を追加します; all は、ホバー駆動 UI のデフォルトです。
その他のスラッシュコマンド (インストール済みのスキル、クイックコマンド、パーソナリティ切り替えなど) は、従来の CLI と全く同じように動作します。See Slash Commands Reference.
ライブセッション・スイッチャー
ライブセッションスイッチャーは、1 つのターミナルを複数の TUI セッションのディスパッチャーとして機能させたい場合に使用します。
これは、現在この TUI プロセスに在るセッションのみを表示します; 終了したセッションはトランスクリプトとして保存され、/resume または `hermes –tui –resume <id-or-title>` で再度開くことができます。
以下のいずれかの方法で開いてください :
- TUI から Ctrl+X
- /sessions または /switch
- `/sessions new` と入力して、すぐに新しいライブセッションを作成します
- ステータスバーの `N live sessions` count をクリックします
ライト・ターミナル検出
TUI はライト・ターミナルを自動的に検出し、それに応じてライト・テーマに切り替えます。検出は3つのレイヤーで行われます :
- HERMES_TUI_THEME 環境変数 — 最優先。値は light、dark、または 6 文字の背景 h3x (例: ffffff、1a1a2e)。
- COLORFGBG 環境変数 — xterm 系ターミナルでよく使われる、従来の “what’s my background color?” というヒントです。
- OSC 11によるターミナル背景色の検出 (プローブ) — COLORFGBG を設定しない最新のターミナル(Ghostty、Warp、iTerm2、WezTerm、Kitty)で動作します。
If you want the light theme permanently regardless of terminal:
export HERMES_TUI_THEME=light
ビジーインジケーターのスタイル
ステータスバーのビジーインジケーターはプラグインで変更可能です – デフォルトでは、エージェントが作業中、2.5 秒ごとに Hermes の kawaii フェイスのパレットが切り替わります。設定ファイルまたは /indicator スラッシュコマンドを使用して、別のスタイルを選択できます :
display:
tui_status_indicator: kaomoji # kaomoji | emoji | unicode | ascii
Or in-session: /indicator emoji (etc.). スタイルは一致するグリフ幅で公開されるため、ステータスバーの残りの部分が回転時に揺れる (jitter) ことはありません。
自動再開 (Auto-resume)
デフォルトでは、`hermes –tui` は起動するたびに新しいセッションを開始します。直近の TUI セッションに自動的に再接続するには (ターミナルや SSH 接続が予期せず切断された場合などに役立ちます)、以下を有効にしてください :
export HERMES_TUI_RESUME=1 # most-recent TUI session
# or:
export HERMES_TUI_RESUME= # specific session
Unset the variable or pass –resume <id> explicitly to override on a per-launch basis.
ステータスライン
TUI のステータスラインは、エージェントの状態をリアルタイムで追跡します :
- (ステータス – 意味)
- starting agent… – セッション ID は有効です; ツールとスキルはまだ起動処理中です。メッセージを入力すると、キューイングされ、準備ができ次第送信されます。
- ready – エージェントは待機中で、入力を受け付けています。
- thinking… / running… – エージェントは推論中、またはツールを実行中です。
- interrupted – 現在のターンはキャンセルされました; もう一度送信するには Enter キーを押してください。
- forging session… / resuming… – 初回接続または –resume ハンドシェイク (ハンドシェイクの再開)。
スキンごとのステータスバーの色としきい値は、従来の CLI と共通です — see Skins for customization.
ステータス行には、以下の情報も表示されます :
- Git ブランチのある作業ディレクトリ — ~/projects/hermes-agent (docs/two-week-gap-sweep).ブランチサフィックスは、サイドターミナルで `git checkout` を実行すると更新されます (mtime-cached) ので、TUI には起動時のブランチではなく、現在アクティブなブランチが表示されます。
- プロンプトごとの経過時間 — ターン実行中 (ライブ) は ⏱ 12s/3m 45s、ターン完了後は ⏲ 32s / 3m 45s に固定されます。最初の数値は最後のユーザーメッセージからの経過時間; 2番目の数値はセッションの合計継続時間です。新しいプロンプトが表示されるたびにリセットされます。
- 🗜️ N — 実行中のセッションが自動圧縮された回数。最初の圧縮が実行されると表示されます。
- ▶ N — このセッションで現在実行中の /background タスクの数。少なくとも1つのタスクが実行中の場合に表示されます。
- ⚠ YOLO — YOLO モードがオンになっている場合 (`hermes –yolo`、`/yolo`、または HERMES_YOLO_MODE=1)、常に警告が表示されます。同じバッジは起動バナーにも表示されるため、気づかずに自動承認セッションを開始することはできません。
以上