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_prefix 和 help_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]— 覆蓋單個部分 (部分包括:thinking、tools、subagents、activity)
默認可見性
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 會打印診斷信息並回退——而不是讓你卡住。
另請參閱
- CLI Interface — 完整的斜槓命令和鍵綁定參考(共享)
- Sessions — 恢復、分支和歷史記錄
- Skins & Themes — 自定義橫幅、狀態欄和疊加層的主題
- Voice Mode — 在兩個界面中均可使用
- Configuration — 所有配置鍵