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

Section: Using Hermes · URL: https://hermesbible.com/docs/user-guide/cli

Hermes Agent 的 CLI 是一個完整的終端使用者介面(TUI)——不是 Web UI。它支援多行編輯、斜線指令自動補全、對話歷史、中斷重導向,以及串流工具輸出。專為習慣在終端中工作的人設計。

提示 — 首次設定

只需一道指令 — hermes setup --portal — 就能開始使用 hermes chat。詳見 Nous Portal

提示

Hermes 也提供一個現代化的 TUI,具備模式化覆蓋層、滑鼠選取和非阻塞輸入。使用 hermes --tui 啟動 — 詳見 TUI 指南。

啟動 CLI

# 啟動互動式工作階段(預設)
hermes

# 單次查詢模式(非互動式)
hermes chat -q "Hello"

# 指定模型
hermes chat --model "anthropic/claude-sonnet-4"

# 指定供應商
hermes chat --provider nous        # 使用 Nous Portal
hermes chat --provider openrouter  # 強制使用 OpenRouter

# 指定工具集
hermes chat --toolsets "web,terminal,skills"

# 啟動時預載一個或多個技能
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# 恢復先前的工作階段
hermes --continue             # 恢復最近的 CLI 工作階段(-c)
hermes --resume <session_id>  # 透過 ID 恢復特定工作階段(-r)

# 除錯模式
hermes chat --verbose

# 隔離的 git worktree(用於平行執行多個 agent)
hermes -w                         # 在 worktree 中啟動互動模式
hermes -w -z "Fix issue #123"     # 在 worktree 中執行單次查詢

介面配置

<p className="docs-figure-caption">Hermes CLI 橫幅、對話串流和固定輸入提示,以穩定的文件圖示呈現,而非脆弱的文字藝術。</p>

歡迎橫幅一覽顯示你的模型、終端後端、工作目錄、可用工具和已安裝的技能。

狀態列

輸入區域上方有一個持續顯示的狀態列,即時更新:

 ⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
元素說明
Model name目前的模型(超過 26 字元時會截斷)
Token count已使用的上下文 token / 最大上下文視窗
Context bar視覺化填充指示器,依閾值以顏色區分
Cost預估的工作階段費用(未知或免費模型顯示 n/a
🗜️ N上下文壓縮次數 — 目前工作階段已自動壓縮的次數。第一次壓縮觸發後才會顯示。
▶ N背景工作任務數 — 目前工作階段中仍在執行的 /background 提示數量。至少有一個任務進行中時才會顯示。
Duration工作階段經過時間
⚠ YOLOYOLO 模式警告 — 只要 HERMES_YOLO_MODE 開啟就會顯示(無論是啟動時使用 hermes --yolo 還是工作中透過 /yolo 切換)。與橫幅列的警告同步,避免你忘記自己處於自動核准模式。

狀態列會依終端寬度自動調整 — 寬度 ≥ 76 欄時顯示完整版面,52–75 欄為精簡版,低於 52 欄時僅顯示模型名稱和時間(以及啟用時的 YOLO 徽章)。

上下文顏色編碼:

顏色閾值意義
綠色< 50%充足空間
黃色50–80%即將用盡
橘色80–95%接近上限
紅色≥ 95%即將溢位 — 考慮使用 /compress

使用 /usage 查看詳細的費用分類明細(輸入 vs 輸出 token)。

工作階段恢復顯示

恢復先前的工作階段時(hermes -chermes --resume <id>),橫幅和輸入提示之間會出現「Previous Conversation」面板,顯示對話歷史的精簡摘要。詳見 工作階段 — 恢復時的對話摘要 了解細節和設定。

快速鍵

按鍵動作
Enter傳送訊息
Alt+EnterCtrl+JShift+Enter換行(多行輸入)。Shift+Enter 需要終端能區分它和 Enter — 詳見下文。在 Windows Terminal 中,Alt+Enter 被終端攔截(全螢幕切換);請改用 Ctrl+EnterCtrl+J
Alt+V從剪貼簿貼上圖片(需終端支援)
Ctrl+V貼上文字,並嘗試附加剪貼簿圖片
Ctrl+B啟動/停止語音錄製(需啟用語音模式,對應 voice.record_key,預設為 ctrl+b
Ctrl+G$EDITOR(vim/nvim/nano/VS Code 等)中開啟目前的輸入緩衝區。儲存並離開後,編輯過的文字會作為下一個提示傳送 — 適合長篇多段落的提示。
Ctrl+X Ctrl+EEmacs 風格的替代綁定,功能同 Ctrl+G
Ctrl+C中斷 agent(2 秒內按兩次可強制退出)
Ctrl+D離開
Ctrl+Z將 Hermes 暫停至背景(僅 Unix)。在終端中執行 fg 可恢復。
Tab接受自動建議(幽靈文字)或自動補全斜線指令

多行貼上預覽。 貼上多行區塊時,CLI 會顯示精簡的單行預覽([pasted: 47 lines, 1,842 chars — press Enter to send]),而非將整份內容傾倒到捲動緩衝區。實際傳送的仍是完整內容;這僅是顯示優化。

最終回應中的 Markdown 剝離。 CLI 會剝離最終 agent 回覆中最冗長的 markdown 圍欄和 **粗體** / *斜體* 包裝,使其以可讀的終端文字呈現,而非原始原始碼格式。程式碼區塊和清單會保留。此行為不影響閘道平台或工具結果 — 它們保留其 markdown 以供原生渲染。

斜線指令

輸入 / 即可看到自動補全下拉選單。Hermes 支援大量的 CLI 斜線指令、動態技能指令和使用者自訂的快速指令。

常用範例:

指令說明
/help顯示指令說明
/model顯示或切換目前的模型
/tools列出目前可用的工具
/skills browse瀏覽技能中心和官方選用技能
/background <prompt>在獨立的背景工作階段中執行提示
/skin顯示或切換 CLI 外觀
/voice on啟用 CLI 語音模式(按 Ctrl+B 錄製)
/voice tts切換 Hermes 回覆的語音播放
/reasoning high增加推理運算量
/title My Session為目前的工作階段命名
/status顯示工作階段資訊 — 模型/設定檔/token/時間 — 接著顯示本地的 工作階段摘要 區塊(近期回合統計、最常用工具、存取過的檔案、最新的使用者提示與 assistant 回覆)。純本地運算,無 LLM 呼叫。
/sessions在經典 CLI 中開啟互動式工作階段選擇器(與 TUI 使用相同的介面)。輸入即可篩選,方向鍵導航,Enter 恢復。

完整內建 CLI 和訊息列表,詳見 斜線指令參考

設定、供應商、靜音調整和訊息/Discord 語音用法,詳見 語音模式

提示

指令不分大小寫 — /HELP/help 效果相同。已安裝的技能也會自動成為斜線指令。

快速指令

你可以自訂快速指令,無需呼叫 LLM 即可立即執行 shell 指令。這在 CLI 和訊息平台(Telegram、Discord 等)中都能使用。

# ~/.hermes/config.yaml
quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  gpu:
    type: exec
    command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
  restart:
    type: alias
    target: /gateway restart

然後在任何聊天中輸入 /status/gpu/restart。更多範例詳見 設定指南

啟動時預載技能

如果你已經知道想在工作階段中使用的技能,可以在啟動時傳入:

hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -s github-auth

Hermes 會在第一個回合之前將每個指定的技能載入工作階段提示。此旗標在互動模式和單次查詢模式中皆可使用。

技能斜線指令

~/.hermes/skills/ 中每個已安裝的技能都會自動註冊為斜線指令。技能名稱即是指令名:

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor

# 只輸入技能名稱會載入它,讓 agent 詢問你需要什麼:
/excalidraw

人格設定

設定預定義的人格以改變 agent 的語氣:

/personality pirate
/personality kawaii
/personality concise

內建人格包括:helpfulconcisetechnicalcreativeteacherkawaiicatgirlpirateshakespearesurfernoiruwuphilosopherhype

你也可以在 ~/.hermes/config.yaml 中定義自訂人格:

personalities:
  helpful: "You are a helpful, friendly AI assistant."
  kawaii: "You are a kawaii assistant! Use cute expressions..."
  pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  # 新增你自己的!

多行輸入

有兩種方式可以輸入多行訊息:

  1. Alt+EnterCtrl+JShift+Enter — 插入新行
  2. 反斜線延續 — 以 \ 結尾即可延續:
❯ Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum

資訊

支援貼上多行文字 — 使用上述任一換行鍵,或直接貼上內容即可。

Shift+Enter 相容性

大多數終端在預設情況下,EnterShift+Enter 會傳送相同的位元序列,因此應用程式無法區分。Hermes 僅在終端透過 Kitty keyboard protocol 或 xterm 的 modifyOtherKeys 模式傳送不同序列時,才能識別 Shift+Enter

終端狀態
Kitty、foot、WezTerm、Ghostty預設啟用不同的 Shift+Enter
iTerm2(近期版本)、Alacritty、VS Code terminal、Warp在設定中啟用 Kitty 協定後即支援
Windows Terminal Preview 1.25+在設定中啟用 Kitty 協定後即支援
macOS Terminal.app、Windows Terminal 穩定版(預設)不支援 — Shift+EnterEnter 無法區分

在終端無法區分的情況下,Alt+EnterCtrl+J 仍然能在所有平台上使用。特別是在 Windows Terminal 中,Alt+Enter 會被終端攔截(切換全螢幕),永遠不會到達 Hermes — 請使用 Ctrl+Enter(以 Ctrl+J 傳送)或直接使用 Ctrl+J 換行。

中斷 Agent

你可以在任何時候中斷 agent:

  • 輸入新訊息 + Enter — agent 正在運作時,它會中斷並處理你的新指令
  • Ctrl+C — 中斷目前操作(2 秒內按兩次可強制退出)
  • 進行中的終端指令會立即被終止(先發送 SIGTERM,1 秒後發送 SIGKILL)
  • 中斷時輸入的多則訊息會合併為一個提示

忙碌輸入模式

display.busy_input_mode 設定鍵控制你在 agent 運作中按 Enter 時的行為:

模式行為
"interrupt"(預設)你的訊息中斷目前操作並立即處理
"queue"你的訊息靜默排入佇列,在 agent 完成後作為下一個回合傳送
"steer"你的訊息透過 /steer 注入目前的執行流程,在下一次工具呼叫後到達 agent — 不會中斷,也不會產生新回合
# ~/.hermes/config.yaml
display:
  busy_input_mode: "steer"   # 或 "queue" 或 "interrupt"(預設)

"queue" 模式適用於你想準備後續訊息而不小心取消進行中工作的時候。"steer" 模式適用於你想在工作中重新導向 agent 而不中斷時 — 例如,當它還在編輯程式碼時,你可以說「其實,也檢查一下測試」。未知值會回退至 "interrupt"

"steer" 有兩個自動回退機制:如果 agent 尚未開始,或附加了圖片,訊息會回退至 "queue" 行為,以免遺漏任何內容。

你也可以在 CLI 中更改:

/busy queue
/busy steer
/busy interrupt
/busy status

提示 — 首次提示

當 Hermes 首次在運作中被你按下 Enter 時,會顯示一行關於 /busy 設定的說明("(tip) Your message interrupted the current run…")。每個安裝只會觸發一次 — config.yamlonboarding.seen.busy_input_prompt 下的旗標會記錄它。刪除此設定鍵即可再次看到提示。

暫停至背景

在 Unix 系統上,按 Ctrl+Z 可將 Hermes 暫停至背景 — 就像任何終端程序一樣。終端會顯示確認訊息:

Hermes Agent has been suspended. Run `fg` to bring Hermes Agent back.

在終端中輸入 fg 即可恢復工作階段,從你離開的地方繼續。Windows 不支援此功能。

工具進度顯示

CLI 在 agent 運作時會顯示動態回饋:

思考動畫(API 呼叫期間):

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ◠ (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

工具執行摘要:

  ┊ 💻 terminal `ls -la` (0.3s)
  ┊ 🔍 web_search (1.2s)
  ┊ 📄 web_extract (2.1s)

使用 /verbose 循環切換顯示模式:off → new → all → verbose。此指令也可用於訊息平台 — 詳見 設定

工具預覽長度

display.tool_preview_length 設定鍵控制工具呼叫預覽行(例如檔案路徑、終端指令)中顯示的最大字元數。預設值為 0,表示無上限 — 完整路徑和指令都會顯示。

# ~/.hermes/config.yaml
display:
  tool_preview_length: 80   # 將工具預覽截斷為 80 字元(0 = 無上限)

這在終端寬度不足或工具參數包含很長的檔案路徑時很有用。

工作階段管理

恢復工作階段

離開 CLI 工作階段時,會顯示一道恢復指令:

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

Session:        20260225_143052_a1b2c3
Duration:       12m 34s
Messages:       28 (5 user, 18 tool calls)

恢復選項:

hermes --continue                          # 恢復最近的 CLI 工作階段
hermes -c                                  # 縮寫
hermes -c "my project"                     # 恢復命名的工作階段(譜系中最新的)
hermes --resume 20260225_143052_a1b2c3     # 透過 ID 恢復特定工作階段
hermes --resume "refactoring auth"         # 透過標題恢復
hermes -r 20260225_143052_a1b2c3           # 縮寫

恢復會從 SQLite 還原完整的對話歷史。agent 會看到所有先前的訊息、工具呼叫和回覆 — 就像你從未離開一樣。

在聊天中使用 /title My Session Name 為目前的工作階段命名,或從命令列使用 hermes sessions rename <id> <title>。使用 hermes sessions list 瀏覽過去的工作階段。

工作階段儲存

CLI 工作階段儲存在 Hermes 的 SQLite 狀態資料庫中,路徑為 ~/.hermes/state.db。資料庫保存:

  • 工作階段中繼資料(ID、標題、時間戳記、token 計數器)
  • 訊息歷史
  • 壓縮/恢復工作階段的譜系
  • session_search 使用的全文搜尋索引

部分訊息適配器也會在資料庫旁保留各平台的對話記錄檔,但 CLI 本身是從 SQLite 工作階段儲存中恢復的。

上下文壓縮

長篇對話在接近上下文限制時會自動摘要:

# 在 ~/.hermes/config.yaml 中
compression:
  enabled: true
  threshold: 0.50    # 預設在上下文限制的 50% 時壓縮

# 摘要模型設定於 auxiliary 下:
auxiliary:
  compression:
    model: ""  # 留空以使用主要聊天模型(預設)。或指定一個便宜快速的模型,例如 "google/gemini-3-flash-preview"。

壓縮觸發時,中間的回合會被摘要,而前 3 個和後 20 個回合永遠保留。

背景工作階段

在獨立的背景工作階段中執行提示,同時繼續使用 CLI 處理其他工作:

/background Analyze the logs in /var/log and summarize any errors from today

Hermes 會立即確認任務並將控制權歸還給你:

🔄 Background task #1 started: "Analyze the logs in /var/log and summarize..."
   Task ID: bg_143022_a1b2c3

運作原理

每個 /background 提示會在背景執行緒中產生一個 完全獨立的 agent 工作階段

  • 隔離的對話 — 背景 agent 不知道你目前工作階段的歷史。它只會收到你提供的提示。
  • 相同的設定 — 背景 agent 繼承你目前工作階段的模型、供應商、工具集、推理設定和備用模型。
  • 非阻塞 — 你的前景工作階段保持完全互動。你可以聊天、執行指令,甚至啟動更多背景任務。
  • 多任務 — 你可以同時執行多個背景任務。每個都有獨立的編號 ID。

結果

背景任務完成時,結果會以面板形式顯示在終端中:

╭─ ⚕ Hermes (background #1) ──────────────────────────────────╮
│ Found 3 errors in syslog from today:                         │
│ 1. OOM killer invoked at 03:22 — killed process nginx        │
│ 2. Disk I/O error on /dev/sda1 at 07:15                      │
│ 3. Failed SSH login attempts from 192.168.1.50 at 14:30      │
╰──────────────────────────────────────────────────────────────╯

如果任務失敗,你會看到錯誤通知。如果設定中啟用了 display.bell_on_complete,任務完成時終端會響鈴。

使用情境

  • 長時間研究 — 在你寫程式碼時,用 /background research the latest developments in quantum error correction 研究量子錯誤校正的最新進展
  • 檔案處理 — 在你繼續對話時,用 /background analyze all Python files in this repo and list any security issues 分析此專案的所有 Python 檔案並列出安全問題
  • 平行調查 — 啟動多個背景任務同時探索不同方向

資訊

背景工作階段不會出現在你的主要對話歷史中。它們是獨立的工作階段,有自己的任務 ID(例如 bg_143022_a1b2c3)。

靜音模式

CLI 預設以靜音模式運行,具有以下特性:

  • 抑制來自工具的冗長日誌
  • 啟用 kawaii 風格的動態回饋
  • 保持輸出簡潔且友善

若需除錯輸出:

hermes chat --verbose


TUI