跳到主要內容

TUI

TUI 是 Hermes 的現代化前端——一個由與 經典 CLI 相同的 Python 運行時支持的終端用戶界面。相同的代理、相同的會話、相同的斜槓命令;但提供了更簡潔、響應更快的交互界面。

這是交互式運行 Hermes 的推薦方式。

啟動

# 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

你也可以通過環境變量啟用它:

export HERMES_TUI=1
hermes # now uses the TUI
hermes chat # same

經典 CLI 仍然作為默認選項可用。CLI 接口 中記錄的所有內容——斜槓命令、快速命令、技能預加載、人格設定、多行輸入、中斷——在 TUI 中的工作方式完全相同。

為什麼選擇 TUI

  • 即時首幀渲染——橫幅在應用完成加載前繪製,因此 Hermes 啟動時終端永遠不會感覺凍結。
  • 非阻塞輸入——在會話就緒之前即可輸入和排隊消息。當代理上線時,你的第一個提示符會立即發送。
  • 豐富的覆蓋層——模型選擇器、會話選擇器、批准和澄清提示均呈現為模態面板,而非內聯流程。
  • 實時會話面板——工具和技能在初始化過程中逐步填充顯示。
  • 友好的鼠標選擇——拖動以統一背景高亮文本,而非使用 SGR 反色。使用終端的正常複製手勢進行復制。
  • 備用屏幕渲染——差異更新意味著流式傳輸時無閃爍,退出後無回滾雜亂。
  • 編輯器輔助功能——長片段的內聯粘貼摺疊、Cmd+V / Ctrl+V 文本粘貼(帶剪貼板圖像回退)、括號化粘貼安全機制,以及圖像/文件路徑附件規範化。

相同的 皮膚人格 同樣適用。在會話中途使用 /skin ares/personality pirate 切換,UI 會實時重繪。請參閱 皮膚與主題 獲取可自定義鍵的完整列表,以及哪些適用於經典 CLI 與 TUI——TUI 遵循橫幅調色板、UI 顏色、提示符字形/顏色、會話顯示、完成菜單、選擇背景、tool_prefixhelp_header

要求

  • Node.js ≥ 20——TUI 作為從 Python CLI 啟動的子進程運行。hermes doctor 可驗證此項。
  • TTY——與經典 CLI 一樣,管道輸入 stdin 或在非交互式環境中運行將回退到單查詢模式。

首次啟動時,Hermes 會將 TUI 的 Node 依賴項安裝到 ui-tui/node_modules 中(一次性操作,耗時幾秒)。後續啟動速度很快。如果你拉取了新的 Hermes 版本,當源代碼比分發版更新時,TUI 捆綁包會自動重建。

外部預構建

附帶預構建捆綁包的發行版(Nix、系統包)可以將 Hermes 指向該捆綁包:

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

該目錄必須包含 dist/entry.js 和最新的 node_modules

鍵綁定

鍵綁定與 經典 CLI 完全匹配。唯一的行為差異如下:

  • 鼠標拖動使用統一的選擇背景高亮文本。
  • Cmd+V / Ctrl+V 首先嚐試正常文本粘貼,然後回退到 OSC52/原生剪貼板讀取,最後當剪貼板或粘貼負載解析為圖像時執行圖像附加。
  • /terminal-setup 安裝本地 VS Code / Cursor / Windsurf 終端綁定,以在 macOS 上實現更好的 Cmd+Enter 和撤銷/重做一致性。
  • 斜槓自動補全以帶有描述的浮動面板形式打開,而非內聯下拉菜單。

斜槓命令

所有斜槓命令均保持不變地工作。少數命令由 TUI 專屬支持——它們產生更豐富的輸出或以覆蓋層而非內聯面板形式渲染:

命令TUI 行為
/help覆蓋層顯示分類命令,支持方向鍵導航
/sessions模態會話選擇器——預覽、標題、令牌總數、內聯恢復
/model模態模型選擇器,按提供商分組,附帶成本提示
/skin實時預覽——瀏覽時主題更改即時生效
/details切換詳細工具調用詳情(全局或每部分)
/usage豐富的令牌/成本/上下文面板

其他所有斜槓命令(包括已安裝的技能、快速命令和人格切換)的工作方式與經典 CLI 完全相同。請參閱 斜槓命令參考

狀態欄

TUI 的狀態欄實時跟蹤代理狀態:

狀態含義
starting agent…會話 ID 已激活;工具和技能仍在上線中。你可以輸入——消息會排隊並在就緒時發送。
ready代理處於空閒狀態,接受輸入。
thinking… / running…代理正在推理或運行工具。
interrupted當前輪次已取消;按 Enter 再次發送。
forging session… / resuming…初始連接或 --resume 握手。

每種皮膚的狀態欄顏色和閾值與經典 CLI 共享——請參閱 皮膚 進行自定義。

配置

TUI 尊重所有標準 Hermes 配置:~/.hermes/config.yaml、配置文件、人格、皮膚、快速命令、憑證池、記憶提供者、工具/技能啟用。不存在特定於 TUI 的配置文件。

少量鍵專門用於調整 TUI 界面:

display:
skin: default # any built-in or custom skin
personality: helpful
details_mode: collapsed # hidden | collapsed | expanded — global accordion default
sections: # optional: per-section overrides (any subset)
thinking: expanded # always open
tools: expanded # always open
activity: collapsed # opt back IN to the activity panel (hidden by default)
mouse_tracking: true # disable if your terminal conflicts with mouse reporting

運行時切換:

  • /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 中顯式設置的任何內容都優先於默認值,因此現有配置保持不變且繼續有效。

會話

會話在 TUI 和經典 CLI 之間共享——兩者都寫入同一個 ~/.hermes/state.db。你可以在一個界面中啟動會話,在另一個界面中恢復。會話選擇器會展示來自兩個來源的會話,並帶有來源標籤。

請參閱 Sessions 瞭解生命週期、搜索、壓縮和導出。

回退到經典 CLI

啟動 hermes(不帶 --tui)將保持在經典 CLI 模式。要讓機器優先使用 TUI,請在你的 shell 配置文件中設置 HERMES_TUI=1。要恢復原狀,請取消設置該變量。

如果 TUI 啟動失敗(沒有 Node、缺少捆綁包、TTY 問題),Hermes 會打印診斷信息並回退——而不是讓你卡住。

另請參閱