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 | 工作階段經過時間 |
| ⚠ YOLO | YOLO 模式警告 — 只要 HERMES_YOLO_MODE 開啟就會顯示(無論是啟動時使用 hermes --yolo 還是工作中透過 /yolo 切換)。與橫幅列的警告同步,避免你忘記自己處於自動核准模式。 |
狀態列會依終端寬度自動調整 — 寬度 ≥ 76 欄時顯示完整版面,52–75 欄為精簡版,低於 52 欄時僅顯示模型名稱和時間(以及啟用時的 YOLO 徽章)。
上下文顏色編碼:
| 顏色 | 閾值 | 意義 |
|---|---|---|
| 綠色 | < 50% | 充足空間 |
| 黃色 | 50–80% | 即將用盡 |
| 橘色 | 80–95% | 接近上限 |
| 紅色 | ≥ 95% | 即將溢位 — 考慮使用 /compress |
使用 /usage 查看詳細的費用分類明細(輸入 vs 輸出 token)。
工作階段恢復顯示
恢復先前的工作階段時(hermes -c 或 hermes --resume <id>),橫幅和輸入提示之間會出現「Previous Conversation」面板,顯示對話歷史的精簡摘要。詳見 工作階段 — 恢復時的對話摘要 了解細節和設定。
快速鍵
| 按鍵 | 動作 |
|---|---|
Enter | 傳送訊息 |
Alt+Enter、Ctrl+J 或 Shift+Enter | 換行(多行輸入)。Shift+Enter 需要終端能區分它和 Enter — 詳見下文。在 Windows Terminal 中,Alt+Enter 被終端攔截(全螢幕切換);請改用 Ctrl+Enter 或 Ctrl+J。 |
Alt+V | 從剪貼簿貼上圖片(需終端支援) |
Ctrl+V | 貼上文字,並嘗試附加剪貼簿圖片 |
Ctrl+B | 啟動/停止語音錄製(需啟用語音模式,對應 voice.record_key,預設為 ctrl+b) |
Ctrl+G | 在 $EDITOR(vim/nvim/nano/VS Code 等)中開啟目前的輸入緩衝區。儲存並離開後,編輯過的文字會作為下一個提示傳送 — 適合長篇多段落的提示。 |
Ctrl+X Ctrl+E | Emacs 風格的替代綁定,功能同 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
內建人格包括:helpful、concise、technical、creative、teacher、kawaii、catgirl、pirate、shakespeare、surfer、noir、uwu、philosopher、hype。
你也可以在 ~/.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..."
# 新增你自己的!
多行輸入
有兩種方式可以輸入多行訊息:
Alt+Enter、Ctrl+J或Shift+Enter— 插入新行- 反斜線延續 — 以
\結尾即可延續:
❯ Write a function that:\
1. Takes a list of numbers\
2. Returns the sum
資訊
支援貼上多行文字 — 使用上述任一換行鍵,或直接貼上內容即可。
Shift+Enter 相容性
大多數終端在預設情況下,Enter 和 Shift+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+Enter 與 Enter 無法區分 |
在終端無法區分的情況下,Alt+Enter 和 Ctrl+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.yaml中onboarding.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