H繁中版
<!-- Source: https://hermesbible.com/docs/user-guide/tui -->

章節:使用 Hermes · 網址:https://hermesbible.com/docs/user-guide/tui

TUI 是 Hermes 的現代化前端——一個終端機介面,與 Classic CLI 共用相同的 Python 運行時。相同的 agent、相同的 session、相同的斜線命令;介面更乾淨、回應更即時。

這是建議的互動式執行 Hermes 方式。

啟動

# 啟動 TUI
hermes --tui

# 繼續最近的 TUI session(若無則回到最近的 classic session)
hermes --tui -c
hermes --tui --continue

# 透過 ID 或標題恢復特定 session
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"

# 直接執行原始碼——跳過預建構步驟(供 TUI 貢獻者使用)
hermes --tui --dev

也可以透過環境變數啟用:

export HERMES_TUI=1
hermes          # 現在會使用 TUI
hermes chat     # 同上

或在 ~/.hermes/config.yaml 中設定為持久預設值:

display:
  interface: tui   # "cli"(預設)或 "tui"

設定 display.interface: tui 後,直接執行 hermes(和 hermes chat)就會啟動 TUI。明確的參數永遠優先——執行 hermes --cli 可以在單次呼叫中回到經典 REPL,或用 hermes --tui / HERMES_TUI=1 在 config 預設為 cli 時強制使用 TUI。

經典 CLI 仍然是出廠預設。所有在 CLI 介面 中記載的功能——斜線命令、快捷命令、skill 預載入、personality、多行輸入、中斷——在 TUI 中完全相同地運作。

為什麼選用 TUI

  • 首幀即時顯示 — 應用程式還在載入時,橫幅就已經繪製完成,所以 Hermes 啟動時終端機永遠不會感覺卡住。
  • 非阻斷式輸入 — 在 session 尚未就緒前就可以打字佇列訊息。你的第一個提示詞會在 agent 上線後立即送出。
  • 豐富的浮動面板 — 模型選擇器、session 選擇器、批准與澄清提示都以模態面板呈現,而非行內流程。
  • 即時 session 面板 — 工具和 skill 會在初始化過程中逐步填入。
  • 滑鼠友善選取 — 拖曳時以統一的背景色高亮顯示,而非 SGR 反白。使用你終端機的正常複製手勢即可複製。
  • 替換畫面渲染 — 差異更新代表串流時不會閃爍,退出後也不會留下捲動歷史雜亂。
  • 編輯器輔助功能 — 長片段的行內貼上自動折疊、Cmd+V / Ctrl+V 文字貼上搭配剪貼簿圖片備援、括號貼上安全機制,以及圖片/檔案路徑附件的標準化處理。

相同的 主題外觀personality 適用。在 session 期間使用 /skin ares/personality pirate 即時切換,UI 會立即重繪。參閱 主題外觀與佈景主題 取得完整可自訂項目清單,以及哪些適用於經典 CLI 與 TUI——TUI 支援橫幅色盤、UI 顏色、提示字元/顏色、session 顯示、選單、選取背景、tool_prefixhelp_header

可折疊的橫幅區段

TUI 啟動橫幅將執行時資訊分為四個可折疊區段,每個區段標題旁都有一個 / 箭頭符號:

區段預設狀態
工具展開
Skills折疊
系統提示折疊
MCP 伺服器折疊

點擊區段標題(或其箭頭)即可切換。工具列表預設展開,因為它是啟動時最常查看的區段;Skills、系統提示和 MCP 伺服器預設折疊,即使你已安裝數十個 skill 或接上許多 MCP 伺服器,橫幅仍能保持精簡。狀態為橫幅實例的區域性設定,下次啟動會重設為預設值。

系統需求

  • Node.js ≥ 20 — TUI 以 Python CLI 啟動的子程序運行。hermes doctor 會驗證此需求。
  • TTY — 與經典 CLI 相同,管線 stdin 或在非互動環境中執行時,會退回為單次查詢模式。

首次啟動時,Hermes 會將 TUI 的 Node 依賴項安裝到 ui-tui/node_modules(一次性,約幾秒)。後續啟動速度很快。如果你拉取新的 Hermes 版本,當原始碼比 dist 更新時,TUI bundle 會自動重新建構。

外部預建構

發行預建構 bundle 的發行版(Nix、系統套件)可以指引 Hermes 使用它:

export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui

該目錄必須包含 dist/entry.js

快速鍵

快速鍵與 經典 CLI 完全相同。行為差異僅有:

  • 滑鼠拖曳 會以統一的選取背景色高亮文字。
  • Cmd+V / Ctrl+V 先嘗試一般文字貼上,再退回 OSC52/原生剪貼簿讀取,最後當剪貼簿或貼上內容解析為圖片時會附加圖片。
  • /terminal-setup 安裝本地 VS Code / Cursor / Windsurf 終端機快速鍵綁定,以改善 macOS 上 Cmd+Enter 以及復原/重做的操作體驗。
  • 斜線自動完成 會以浮動面板顯示並附帶說明,而非行內下拉選單。
  • Ctrl+X 開啟即時 session 切換器。當佇列訊息被高亮時(在 agent 仍在運行時送出的),它仍然會刪除該佇列訊息。Esc 會取消編輯並取消高亮,但不刪除。
  • Ctrl+G / Ctrl+X Ctrl+E — 在 $EDITOR 中開啟目前輸入緩衝區,用於多行/長提示詞編輯;儲存並離開後,內容會作為提示詞送回。

斜線命令

所有斜線命令功能不變。部分命令為 TUI 專屬——它們會產生更豐富的輸出或以浮動面板而非行內面板渲染:

命令TUI 行為
/help以分類方式顯示命令的浮動面板,支援方向鍵導覽
/sessions(別名 /switch即時 session 切換器——列出開啟中的 TUI session、切換、關閉,或啟動另一個
/model以供應商分組的模態模型選擇器,附帶成本提示
/skin即時預覽——瀏覽時即時套用佈景主題變更
/details切換詳細的工具呼叫資訊(全域或按區段)
/usage豐富的 token / 成本 / 情境面板
/agents(別名 /tasks可觀測性浮動面板——即時子 agent 樹狀結構,附帶終止/暫停控制、各分支成本/token/檔案彙總,以及逐輪歷史
/reload~/.hermes/.env 重新讀入運行中的 TUI 程序,讓新加入的 API 金鑰無需重啟即可生效
/mouse [on|off|toggle|wheel|buttons|all]在運行時選擇滑鼠追蹤預設(同時持久化到 config.yamldisplay.mouse_tracking)。wheel(1000+1006)保留捲軸滾動但不含讓 tmux 在提示列上不斷刷出「No image in clipboard」的游標懸停事件;buttons 增加拖曳選取功能;all 為預設值,包含游標懸停驅動的 UI。

其他所有斜線命令(包括已安裝的 skill、快捷命令和 personality 切換)與經典 CLI 完全相同。參閱 斜線命令參考

即時 session 切換器

當你希望用一個終端機作為多個 TUI session 的調度器時,可以使用即時 session 切換器。它僅列出目前在此 TUI 程序中處於活躍狀態的 session;已關閉的 session 仍保存為記錄檔,可透過 /resumehermes --tui --resume <id-or-title> 重新開啟。

以下任一方式可開啟:

  • 在 TUI 中按 Ctrl+X
  • 使用 /sessions/switch
  • 使用 /sessions new 立即建立新的活躍 session。
  • 點擊狀態列中的 N live sessions 計數。
<video controls muted loop playsInline src="/img/docs/tui-session-orchestrator/session-orchestrator-demo.mp4" title="Hermes TUI Session Orchestrator demo" />

在切換器中:

  • / 移動選取;滑鼠點擊也可選取列。
  • Enter 切換到選取的活躍 session。
  • Ctrl+D 關閉選取的活躍 session。
  • Ctrl+N 啟動空白的活躍 session。
  • Ctrl+R 重新整理活躍 session 列表。
  • Esc 關閉切換器。
  • 選取 +new,輸入提示詞,然後按 Enter 來派送新的活躍 session。若要為該新 session 選擇模型,先按 Tab

LaTeX 數學運算式渲染

TUI 的 Markdown 處理器會將 LaTeX 數學運算式行內渲染:$E = mc^2$$$\frac{a}{b}$$ 會渲染為 Unicode 格式的數學運算式,而非原始 TeX 原始碼。支援行內和區塊數學運算式;不支援的語法會退回為顯示包裹在程式碼跨度中的原始 TeX,以便複製。

此功能始終啟用——無需設定。經典 CLI 保留原始 TeX。

淺色終端機偵測

TUI 會自動偵測淺色終端機並相應切換為淺色主題。偵測分為三個層級:

  1. HERMES_TUI_THEME 環境變數——最高優先權。可選值:lightdark,或原始的 6 碼十六進位背景色(例如 ffffff1a1a2e)。
  2. COLORFGBG 環境變數——經典的「我的背景色是什麼?」提示,由 xterm 衍生終端機使用。
  3. 透過 OSC 11 偵測終端機背景色——適用於不設定 COLORFGBG 的現代終端機(Ghostty、Warp、iTerm2、WezTerm、Kitty)。

若要永久使用淺色主題(不受終端機影響):

export HERMES_TUI_THEME=light

忙碌指示器樣式

狀態列的忙碌指示器是可插拔的——預設會在 agent 工作時每 2.5 秒輪播 Hermes 的顏文字表情。可透過設定或 /indicator 斜線命令選擇其他樣式:

display:
  tui_status_indicator: kaomoji   # kaomoji | emoji | unicode | ascii

或在 session 中使用:/indicator emoji(等)。各樣式配有匹配的字元寬度,因此狀態列的其餘部分在輪播時不會抖動。

自動恢復

預設情況下,hermes --tui 每次啟動都會開始全新 session。若要自動重新連接最近的 TUI session(當你的終端機或 SSH 連線意外中斷時很有用),請啟用:

export HERMES_TUI_RESUME=1          # 最近的 TUI session
# 或:
export HERMES_TUI_RESUME=<session-id>   # 指定的 session

取消設定該變數或明確傳入 --resume <id> 即可在每次啟動時覆蓋。

狀態列

TUI 的狀態列即時追蹤 agent 狀態:

狀態意義
starting agent…Session ID 已啟用;工具和 skill 尚在載入中。你可以打字——訊息會排隊,就緒後送出。
readyAgent 閒置中,可接受輸入。
thinking… / running…Agent 正在推理或執行工具。
interrupted目前回合已取消;按 Enter 重新送出。
forging session… / resuming…初始連線或 --resume 握手。

各主題外觀的狀態列顏色和閾值與經典 CLI 共用——參閱 主題外觀 進行自訂。

狀態列還會顯示:

  • 工作目錄與 git 分支~/projects/hermes-agent (docs/two-week-gap-sweep)。當你在側邊終端機執行 git checkout 時,分支後綴會更新(基於 mtime 快取),讓 TUI 反映你實際的活動分支,而非啟動時的分支。
  • 每次提示詞的經過時間 — 回合運行中時顯示 ⏱ 12s/3m 45s(即時),回合完成後凍結為 ⏲ 32s / 3m 45s。第一個數字是自上一條使用者訊息以來的時間;第二個是整個 session 的總時間。每次新提示詞時重設。
  • 🗜️ N — 運行中的 session 已自動壓縮的次數。第一次壓縮觸發後出現。
  • ▶ N — 此 session 中目前正在執行的 /background 任務數量。至少有一個任務進行中時出現。
  • ⚠ YOLO — 當 YOLO 模式開啟時(hermes --yolo/yoloHERMES_YOLO_MODE=1)顯示的警告。相同標記也會出現在啟動橫幅中,確保你不會在不知情的情況下啟動自動批准的 session。

設定

TUI 遵守所有標準 Hermes 設定:~/.hermes/config.yaml、設定檔、personality、主題外觀、快捷命令、憑證池、記憶體供應商、工具/skill 啟用。沒有 TUI 專用的設定檔。

有幾個設定項目專門調整 TUI 介面:

display:
  skin: default              # 任何內建或自訂主題外觀
  personality: helpful
  details_mode: collapsed    # hidden | collapsed | expanded — 全域手風琴預設值
  sections:                  # 選填:按區段覆蓋(任何子集)
    thinking: expanded       # 始終展開
    tools: expanded          # 始終展開
    activity: collapsed      # 重新啟用活動面板(預設隱藏)
  mouse_tracking: all        # off | wheel | buttons | all(或 true/false 兼容舊版)。
                             #   wheel   — 1000+1006(捲動 + 點擊;無拖曳、無懸停——
                             #             推薦在 tmux 內使用,以消除游標懸停事件導致的
                             #             提示列「No image in clipboard」刷頻)
                             #   buttons — 增加 1002 支援終端機端拖曳選取
                             #   all     — 增加 1003 支援支援懸停(捲軸懸停翻頁、
                             #             連結滑鼠移入等)

運行時切換:

  • /details [hidden|collapsed|expanded|cycle] — 設定全域模式
  • /details <section> [hidden|collapsed|expanded|reset] — 覆蓋特定區段 (區段:thinkingtoolssubagentsactivity

預設可見性

TUI 出廠時對各區段設有經過調整的預設值,將回合渲染為即時逐字稿,而非一整排箭頭:

  • thinking展開。推理過程會隨模型產生即時串流顯示。
  • tools展開。工具呼叫及其結果預設展開顯示。
  • subagents — 採用全域 details_mode(預設折疊在箭頭下——直到真正發生委派才顯示)。
  • activity隱藏。環境元資訊(閘道提示、終端機相容性提示、背景通知)在日常使用中大多是雜訊。工具失敗仍會在該工具列上行內顯示;當所有面板都隱藏時,環境錯誤/警告會透過浮動警告提示呈現。

各區段的覆蓋設定優先於區段預設值和全域 details_mode。若要調整佈局:

  • display.sections.thinking: collapsed — 將推理過程放回箭頭下
  • display.sections.tools: collapsed — 將工具呼叫放回箭頭下
  • display.sections.activity: collapsed — 重新啟用活動面板
  • 在運行時使用 /details <section> <mode>

display.sections 中明確設定的任何內容都會優先於預設值,因此現有設定不受影響。

Sessions

Sessions 在 TUI 和經典 CLI 之間共用——兩者都寫入相同的 ~/.hermes/state.db。你可以在其中一個中啟動 session,然後在另一個中恢復。Session 選擇器會顯示來自兩者的 session,並附帶來源標記。

參閱 Sessions 了解生命週期、搜尋、壓縮和匯出。

TUI 如何與閘道通訊

預設情況下,TUI 會啟動自己的行程內閘道,因此每個 TUI 實例都是自包含的——無需設定。

你可能會在原始碼或日誌中看到 HERMES_TUI_GATEWAY_URL 環境變數的引用。這是 Web 儀表板的內部接線細節,並非供使用者設定的遠端連接參數。當你開啟儀表板的「Chat」分頁(hermes dashboard/chat)時,儀表板的 Web 伺服器會啟動一個內建的 TUI 子程序,並注入 HERMES_TUI_GATEWAY_URL,讓該子程序透過回環 WebSocket(/api/ws)連接到儀表板自身的行程內 tui_gateway/api/ws 端點僅存在於儀表板伺服器(hermes_cli/web_server.py)內部,且與該程序的生命週期和授權綁定。

不存在通用的「將任何 TUI 指向任何獨立閘道端口」模式。特別是,OpenAI 相容的 API 伺服器(hermes gateway / api_server 平台)不提供 /api/ws 服務——它是模型後端介面(/v1/chat/completions/v1/models、…),刻意不暴露 TUI 的 JSON-RPC 控制通道。將 HERMES_TUI_GATEWAY_URL 設定為該端口會導致 404。

若要讓多個介面共用同一組 sessions,請使用共用的 ~/.hermes/state.db(參閱 Sessions)或 Web 儀表板的內建聊天功能(參閱 Web 儀表板)——而非手動設定閘道 URL。

回到經典 CLI

啟動 hermes(不帶 --tui)預設會使用經典 CLI。若要讓機器偏好使用 TUI,請在 ~/.hermes/config.yaml 中設定 display.interface: tui(持久),或在你的 shell 設定檔中設定 HERMES_TUI=1(per-shell)。若要回退,設定 interface: cli / 取消環境變數,或使用 hermes --cli 進行一次性呼叫。

如果 TUI 啟動失敗(無 Node、缺少 bundle、TTY 問題),Hermes 會輸出診斷訊息並自動退回——不會讓你卡住。

參見



設定