CLI 界面
Hermes Agent 的 CLI 是一個完整的終端用戶界面(TUI)——而非網頁 UI。它支持多行編輯、斜槓命令自動補全、對話歷史記錄、中斷並重定向,以及流式工具輸出。專為長期在終端中工作的人設計。
運行 CLI
# 啟動交互式 session(默認)
hermes
# 單一查詢模式(非交互)
hermes chat -q "Hello"
# 具有特定的model
hermes chat --model "anthropic/claude-sonnet-4"
# 具有特定的provider
hermes chat --provider nous # 使用諾斯門戶
hermes chat --provider openrouter # 力OpenRouter
# 具有特定的toolsets
hermes chat --toolsets "web,terminal,skills"
# 從預加載的一個或多個 skills 開始
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"
# 恢復之前的sessions
hermes --continue # 恢復最近的 CLI session (-c)
hermes --resume <session_id> # 通過 ID (-r) 恢復特定的 session
# 詳細模式(調試輸出)
hermes chat --verbose
# 隔離git worktree(用於並行運行多個代理)
hermes -w # worktree 中的交互模式
hermes -w -q "Fix issue #123" # worktree 中的單個查詢
界面佈局
Hermes CLI 的標題欄、對話流和固定輸入提示以穩定的文檔配圖呈現,而不是容易錯位的文本圖。
歡迎橫幅會一目瞭然地顯示你的模型、終端後端、工作目錄、可用工具以及已安裝的技能。
狀態欄
一個持久的狀態欄位於輸入區域上方,實時更新:
⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
| 元素 | 描述 |
|---|---|
| 模型名稱 | 當前模型(若超過 26 個字符則截斷) |
| Token 數量 | 已使用上下文 Token 數 / 最大上下文窗口 |
| 上下文條 | 帶有顏色編碼閾值的視覺填充指示器 |
| 成本 | 預估會話成本(未知或零定價模型顯示為 n/a) |
| 持續時間 | 已經過的會話時間 |
該欄會根據終端寬度自適應——≥ 76 列時顯示完整佈局,52–75 列時為緊湊佈局,低於 52 列時為最小布局(僅顯示模型和持續時間)。
上下文顏色編碼:
| 顏色 | 閾值 | 含義 |
|---|---|---|
| 綠色 | < 50% | 空間充足 |
| 黃色 | 50–80% | 逐漸填滿 |
| 橙色 | 80–95% | 接近上限 |
| 紅色 | ≥ 95% | 接近溢出——建議使用 /compress |
使用 /usage 可獲取詳細分解,包括按類別劃分的成本(輸入與輸出 Token)。
會話恢復顯示
當恢復之前的會話時(hermes -c 或 hermes --resume <id>),在標題欄和輸入提示之間會出現一個“上一次對話”面板,顯示對話歷史的緊湊摘要。詳情及配置請參見 會話 —— 恢復時的對話摘要。
快捷鍵
| 鍵 | 動作 |
|---|---|
Enter | 發送消息 |
Alt+Enter 或 Ctrl+J | 新增一行(多行輸入) |
Alt+V | 在終端支持的情況下,從剪貼板粘貼圖像 |
Ctrl+V | 粘貼文本,並在可能時附上剪貼板中的圖像 |
Ctrl+B | 在啟用語音模式時,開始/停止語音錄製(voice.record_key,默認為 ctrl+b) |
Ctrl+C | 中斷 Agent(2 秒內雙擊可強制退出) |
Ctrl+D | 退出 |
Ctrl+Z | 將 Hermes 掛起至後臺(僅限 Unix 系統)。在 shell 中運行 fg 可恢復。 |
Tab | 接受自動建議(幽靈文本)或補全斜槓命令 |
斜槓命令
輸入 / 可查看自動補全下拉菜單。Hermes 支持大量內置 CLI 斜槓命令、動態技能命令以及用戶自定義的快捷命令。
常見示例:
| 命令 | 描述 |
|---|---|
/help | 顯示命令幫助 |
/model | 顯示或更改當前模型 |
/tools | 列出當前可用的工具 |
/skills browse | 瀏覽技能中心及官方可選技能 |
/background <prompt> | 在獨立後臺會話中運行提示 |
/skin | 顯示或切換當前活動的 CLI 皮膚 |
/voice on | 啟用 CLI 語音模式(按 Ctrl+B 開始錄音) |
/voice tts | 切換 Hermes 回覆的語音播放 |
/reasoning high | 提高推理努力程度 |
/title My Session | 為當前會話命名 |
完整內置 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
然後在任意聊天中輸入 /status 或 /gpu。更多示例請參見 配置指南。
啟動時預加載技能
如果你已知本次會話需要哪些技能處於激活狀態,可以在啟動時指定:
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
# 只需輸入 skill 名稱即可加載它,並讓 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— 插入換行符- 反斜槓續行 — 以
\結尾表示繼續下一行:
❯ Write a function that:\
1. Takes a list of numbers\
2. Returns the sum
支持粘貼多行文本 —— 使用 Alt+Enter 或 Ctrl+J 插入換行,或直接粘貼內容即可。
中斷 Agent
您可以在任何時候中斷 Agent:
- 在 Agent 工作時 輸入新消息 + Enter —— 會中斷當前操作並立即處理您的新指令
Ctrl+C—— 中斷當前操作(在 2 秒內連續按兩次以強制退出)- 正在進行的終端命令會立即終止(先發送 SIGTERM,1 秒後發送 SIGKILL)
- 在中斷期間輸入的多條消息會被合併為一個提示
忙碌輸入模式
display.busy_input_mode 配置項控制您在 Agent 工作時按 Enter 的行為:
| 模式 | 行為 |
|---|---|
"interrupt"(默認) | 您的消息會中斷當前操作並立即處理 |
"queue" | 您的消息會被靜默排隊,並在 Agent 完成當前任務後作為下一輪發送 |
# ~/.hermes/config.yaml
display:
busy_input_mode: "queue" # 或“0”(默認)
隊列模式在您希望準備後續消息但又不希望意外取消正在進行的工作時非常有用。未知值將回退到 "interrupt"。
暫停到後臺
在 Unix 系統上,按 Ctrl+Z 可將 Hermes 暫停到後臺 —— 與任何終端進程相同。shell 會打印確認信息:
Hermes Agent has been suspended. Run `fg` to bring Hermes Agent back.
在 shell 中輸入 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 # 將 tool 預覽截斷為 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 session
hermes -c # 簡短形式
hermes -c "my project" # 恢復名為 session(沿襲最新)
hermes --resume 20260225_143052_a1b2c3 # 通過 ID 恢復特定的 session
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、標題、時間戳、令牌計數器)
- 消息歷史
- 壓縮/恢復會話之間的關聯關係
session_search使用的全文搜索索引
部分消息適配器還會在數據庫之外保存平臺相關的對話文件,但 CLI 本身從 SQLite 會話存儲中恢復。
上下文壓縮
當接近上下文限制時,長對話會自動被摘要:
# 在“0”中
compression:
enabled: true
threshold: 0.50 # 默認壓縮為 context 限制的 50%
summary_model: "google/gemini-3-flash-preview" # Model 用於彙總
觸發壓縮時,中間的對話輪次會被摘要,而前 3 輪和後 4 輪始終會被保留。
後臺會話
在後臺運行一個提示,同時繼續使用 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 以靜音模式運行,該模式具備以下特性:
- 抑制工具的詳細日誌輸出
- 啟用可愛的動畫反饋效果
- 保持輸出簡潔且用戶友好
如需調試輸出:
hermes chat --verbose