章節:參考 · URL:https://hermesbible.com/docs/reference/cli-commands
本頁涵蓋你在終端機中執行的命令列指令。
如需聊天室內的斜線指令,請參閱斜線指令參考。
全域入口點
hermes [global-options] <command> [subcommand/options]
全域選項
| 選項 | 說明 |
|---|---|
--version, -V | 顯示版本資訊並離開。 |
--profile <name>, -p <name> | 選擇本次呼叫要使用的 Hermes profile。覆蓋由 hermes profile use 設定的慣用預設值。 |
--resume <session>, -r <session> | 透過 ID 或標題恢復先前的 session。 |
--continue [name], -c [name] | 恢復最近的 session,或恢復符合標題的最近 session。 |
--worktree, -w | 在隔離的 git worktree 中啟動,適用於多代理並行工作流程。 |
--yolo | 跳過危險指令的確認提示。 |
--pass-session-id | 將 session ID 包含在代理的系統提示中。 |
--ignore-user-config | 忽略 ~/.hermes/config.yaml 並回退至內建預設值。.env 中的憑證仍會載入。 |
--ignore-rules | 跳過自動注入 AGENTS.md、SOUL.md、.cursorrules、記憶體和預載技能。 |
--tui | 啟動 TUI 而非經典 CLI。等同於 HERMES_TUI=1。始終優先於 display.interface。 |
--cli | 強制使用經典 prompt_toolkit REPL。用於在單次呼叫中覆蓋 display.interface: tui。 |
--dev | 搭配 --tui:直接透過 tsx 執行 TypeScript 原始碼,而非預建套件(供 TUI 貢獻者使用)。 |
頂層指令
| 指令 | 用途 |
|---|---|
hermes chat | 與代理進行互動式或一次性對話。 |
hermes model | 互動式選擇預設供應商和模型。 |
hermes fallback | 管理主要模型出錯時嘗試的備援供應商。 |
hermes gateway | 執行或管理訊息閘道服務。 |
hermes proxy | 本機 OpenAI 相容代理,附加 OAuth 供應商憑證。參閱訂閱代理。 |
hermes lsp | 管理 Language Server Protocol 整合(write_file/patch 的語意診斷)。 |
hermes setup | 針對全部或部分設定的互動式設定精靈。 |
hermes whatsapp | 設定並配對 WhatsApp 橋接器。 |
hermes slack | Slack 輔助工具(目前:產生應用程式清單,將每個指令註冊為原生斜線指令)。 |
hermes auth | 管理憑證 — 新增、列出、移除、重設、設定策略。處理 Codex/Nous/Anthropic 的 OAuth 流程。 |
hermes login / logout | 已棄用 — 請改用 hermes auth。 |
hermes send | 向已設定的訊息平台(Telegram、Discord、Slack、Signal、SMS…)傳送一次性訊息。適用於 shell script、cron job、CI hook 和監控守護行程 — 無代理迴圈,無 LLM。 |
hermes secrets | 管理外部密鑰來源(目前為 Bitwarden Secrets Manager),在程式啟動時拉取 API 金鑰,而非從 ~/.hermes/.env 讀取。 |
hermes migrate | 診斷並(選擇性地)重寫 config.yaml,以替換已退役模型或已棄用設定的參照(例如 migrate xai)。 |
hermes status | 顯示代理、認證和平台狀態。 |
hermes cron | 檢視並觸發排程器。 |
hermes kanban | 多 profile 協作看板(任務、連結、調度器)。 |
hermes webhook | 管理用於事件驅動啟用的動態 webhook 訂閱。 |
hermes hooks | 檢視、核准或移除在 config.yaml 中宣告的 shell script hook。 |
hermes doctor | 設定和依賴問題診斷。 |
hermes security audit | 按需供應鏈稽核(OSV.dev),涵蓋 venv、外掛需求和已固定的 MCP 伺服器。 |
hermes dump | 可複製貼上的設定摘要,用於支援和除錯。 |
hermes prompt-size | 顯示系統提示 + 工具 schema 的位元組明細(技能索引、記憶體、profile)。離線執行。 |
hermes debug | 除錯工具 — 上傳日誌和系統資訊以尋求支援。 |
hermes backup | 將 Hermes 主目錄備份為 zip 檔案。 |
hermes checkpoints | 檢視 / 修剪 / 清除 ~/.hermes/checkpoints/(/rollback 使用的陰影儲存)。不帶參數執行可查看狀態概覽。 |
hermes import | 從 zip 檔案還原 Hermes 備份。 |
hermes logs | 檢視、追蹤和篩選代理/閘道/錯誤日誌檔案。 |
hermes config | 顯示、編輯、遷移和查詢設定檔。 |
hermes pairing | 核准或撤銷訊息配對碼。 |
hermes skills | 瀏覽、安裝、發佈、稽核和設定技能。 |
hermes bundles | 將多個技能分組在單一 /<name> 斜線指令下。參閱技能套件。 |
hermes curator | 背景技能維護 — 狀態、執行、暫停、釘選。參閱Curator。 |
hermes memory | 設定外部記憶體供應商。外掛特定的子指令(例如 hermes honcho)會在其供應商啟用時自動註冊。 |
hermes acp | 將 Hermes 作為 ACP 伺服器執行,用於編輯器整合。 |
hermes mcp | 管理 MCP 伺服器設定,並將 Hermes 作為 MCP 伺服器執行。 |
hermes plugins | 管理 Hermes Agent 外掛(安裝、啟用、停用、移除)。 |
hermes portal | Nous Portal 狀態、訂閱連結和 Tool Gateway 路由。參閱 Tool Gateway。 |
hermes tools | 按平台設定已啟用的工具。 |
hermes computer-use | 安裝或檢查 cua-driver 後端(macOS Computer Use)。 |
hermes sessions | 瀏覽、匯出、修剪、重新命名和刪除 session。 |
hermes insights | 顯示 token/成本/活動分析。 |
hermes claw | OpenClaw 遷移輔助工具。 |
hermes dashboard | 啟動 Web 控制面板,用於管理設定、API 金鑰和 session。 |
hermes profile | 管理 profile — 多個隔離的 Hermes 實例。 |
hermes completion | 列印 shell 自動完成腳本(bash/zsh/fish)。 |
hermes version | 顯示版本資訊。 |
hermes update | 拉取最新程式碼並重新安裝依賴(git 安裝),或查詢 PyPI 並執行 pip install --upgrade(pip 安裝)。--check 預覽而不安裝;--backup 在拉取前對 HERMES_HOME 進行快照。 |
hermes uninstall | 從系統中移除 Hermes。 |
hermes chat
hermes chat [options]
常用選項:
| 選項 | 說明 |
|---|---|
-q, --query "..." | 一次性、非互動式提示。 |
-m, --model <model> | 覆蓋本次執行的模型。 |
-t, --toolsets <csv> | 啟用逗號分隔的工具集。 |
--provider <provider> | 強制指定供應商:auto、openrouter、nous、openai-codex、copilot-acp、copilot、anthropic、gemini、google-gemini-cli、huggingface、novita(別名 novita-ai、novitaai)、openai-api、zai、kimi-coding、kimi-coding-cn、minimax、minimax-cn、minimax-oauth、kilocode、xiaomi、arcee、gmi、alibaba、alibaba-coding-plan(別名 alibaba_coding)、deepseek、nvidia、ollama-cloud、xai(別名 grok)、xai-oauth(別名 grok-oauth)、qwen-oauth、bedrock、opencode-zen、opencode-go、azure-foundry、lmstudio、stepfun、tencent-tokenhub(別名 tencent、tokenhub)。 |
-s, --skills <name> | 為 session 預載一個或多個技能(可重複或逗號分隔)。 |
-v, --verbose | 詳細輸出。 |
-Q, --quiet | 程式化模式:隱藏橫幅/旋轉指示器/工具預覽。 |
--image <path> | 將本機圖片附加到單次查詢。 |
--resume <session> / --continue [name] | 直接從 chat 恢復 session。 |
--worktree | 為本次執行建立隔離的 git worktree。 |
--checkpoints | 在破壞性檔案變更前啟用檔案系統檢查點。 |
--yolo | 跳過核准提示。 |
--pass-session-id | 將 session ID 傳入系統提示。 |
--ignore-user-config | 忽略 ~/.hermes/config.yaml 並使用內建預設值。.env 中的憑證仍會載入。適用於隔離的 CI 執行、可重現的錯誤報告和第三方整合。 |
--ignore-rules | 跳過自動注入 AGENTS.md、SOUL.md、.cursorrules、持久記憶體和預載技能。搭配 --ignore-user-config 可完全隔離執行。 |
--safe-mode | 除錯模式:停用所有自訂設定 — 使用者設定、規則/記憶體注入、外掛和 MCP 伺服器(隱含 --ignore-user-config 和 --ignore-rules)。用於隔離問題是否來自你的設定或 Hermes 本身。 |
--source <tag> | 用於篩選的 session 來源標籤(預設:cli)。供不應出現在使用者 session 列表中的第三方整合使用 tool。 |
--max-turns <N> | 每個對話輪次的最大工具呼叫迭代次數(預設:90,或設定中的 agent.max_turns)。 |
範例:
hermes
hermes chat -q "Summarize the latest PRs"
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills
hermes chat --quiet -q "Return only JSON"
hermes chat --worktree -q "Review this repo and open a PR"
hermes chat --ignore-user-config --ignore-rules -q "Repro without my personal setup"
hermes chat --safe-mode -q "Is this bug mine or Hermes'?"
hermes -z <prompt> — 腳本化一次性指令
供程式化呼叫者(shell script、CI、cron、管道輸入提示的父程序)使用,hermes -z 是最純粹的一次性入口點:單一提示輸入,最終回應文字輸出,stdout 和 stderr 上沒有其他內容。 無橫幅、無旋轉指示器、無工具預覽、無 Session: 行 — 只有代理的最終回覆以純文字形式呈現。
hermes -z "What's the capital of France?"
# → Paris.
# 父腳本可以乾淨地擷取回應:
answer=$(hermes -z "summarize this" < /path/to/file.txt)
每次執行的覆蓋(不會修改 ~/.hermes/config.yaml):
| 旗標 | 對應環境變數 | 用途 |
|---|---|---|
-m / --model <model> | HERMES_INFERENCE_MODEL | 覆蓋本次執行的模型 |
--provider <provider> | (無) | 覆蓋本次執行的供應商 |
hermes -z "…" --provider openrouter --model openai/gpt-5.5
# 或:
HERMES_INFERENCE_MODEL=anthropic/claude-sonnet-4.6 hermes -z "…"
相同的代理、相同的工具、相同的技能 — 只是移除了所有互動/修飾層。如果需要在對話記錄中也包含工具輸出,請改用 hermes chat -q;-z 明確用於「我只想要最終答案」。
hermes model
互動式供應商 + 模型選擇器。這是新增供應商、設定 API 金鑰和執行 OAuth 流程的指令。 從你的終端機執行 — 而非在活躍的 Hermes 聊天 session 中執行。
hermes model
在以下情況使用:
- 新增供應商(OpenRouter、Anthropic、Copilot、DeepSeek、自訂等)
- 登入支援 OAuth 的供應商(Anthropic、Copilot、Codex、Nous Portal)
- 輸入或更新 API 金鑰
- 從供應商特定的模型清單中選擇
- 設定自訂/自架端點
- 將新預設值儲存至設定檔
警告 — hermes model 與 /model 的差異
hermes model(從終端機執行,不在任何 Hermes session 內)是完整的供應商設定精靈。它可以新增供應商、執行 OAuth 流程、提示輸入 API 金鑰,以及設定端點。
/model(在活躍的 Hermes 聊天 session 中輸入)只能在你已設定的供應商和模型之間切換。它無法新增供應商、執行 OAuth 或提示輸入 API 金鑰。如果你需要新增供應商: 先離開你的 Hermes session(
Ctrl+C或/quit),然後從終端機提示執行hermes model。
/model 斜線指令(session 中)
在不離開 session 的情況下,在已設定的模型之間切換:
/model # 顯示目前模型和可用選項
/model claude-sonnet-4 # 切換模型(自動偵測供應商)
/model zai:glm-5 # 切換供應商和模型
/model custom:qwen-2.5 # 使用自訂端點上的模型
/model custom # 從自訂端點自動偵測模型
/model custom:local:qwen-2.5 # 使用具名的自訂供應商
/model openrouter:anthropic/claude-sonnet-4 # 切換回雲端
預設情況下,/model 的變更僅對目前 session 生效。加上 --global 可將變更持久化至 config.yaml:
/model claude-sonnet-4 --global # 切換並儲存為新預設值
資訊 — 如果我只看到 OpenRouter 模型怎麼辦?
如果你只設定了 OpenRouter,
/model只會顯示 OpenRouter 模型。要新增其他供應商(Anthropic、DeepSeek、Copilot 等),請離開你的 session 並從終端機執行hermes model。
供應商和 base URL 變更會自動持久化至 config.yaml。當切離自訂端點時,過時的 base URL 會被清除,以防止其洩漏到其他供應商。
hermes gateway
hermes gateway <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
run | 在前景執行閘道。建議用於 WSL、Docker 和 Termux。 |
start | 啟動已安裝的 systemd/launchd 背景服務。 |
stop | 停止服務(或前景程序)。 |
restart | 重啟服務。 |
status | 顯示服務狀態。 |
list | 列出所有 profile 及其閘道是否正在執行(如有 PID 則一併顯示)。當你同時執行多個 profile 並需要單一總覽時很方便。 |
install | 安裝為 systemd(Linux)或 launchd(macOS)背景服務。 |
uninstall | 移除已安裝的服務。 |
setup | 互動式訊息平台設定。 |
選項:
| 選項 | 說明 |
|---|---|
--all | 在 start / restart / stop 時:對所有 profile 的閘道生效,而非僅限活躍的 HERMES_HOME。當你同時執行多個 profile 並想在 hermes update 後全部重啟時很有用。 |
--no-supervise | 在 run 時:在 s6-overlay Docker 映像中,選擇退出自動監督並使用 s6 前景語義 — 閘道作為容器的主要程序執行,不會自動重啟。在 s6 映像外無作用。等同於設定 HERMES_GATEWAY_NO_SUPERVISE=1。 |
提示 — WSL 使用者
請使用
hermes gateway run而非hermes gateway start— WSL 的 systemd 支援不穩定。用 tmux 包裝以確保持久性:tmux new -s hermes 'hermes gateway run'。詳情請參閱 WSL 常見問題。
hermes lsp
hermes lsp <subcommand>
管理 Language Server Protocol 整合。LSP 在背景執行真正的語言伺服器(pyright、gopls、rust-analyzer…),並將其診斷結果餵入 write_file 和 patch 使用的寫入後檢查。受 git 工作區偵測限制 — LSP 僅在目前目錄或編輯的檔案位於 git worktree 內時執行。
子指令:
| 子指令 | 說明 |
|---|---|
status | 顯示服務狀態、已設定的伺服器、安裝狀態。 |
list | 列印支援的伺服器登錄。傳入 --installed-only 可跳過未安裝的。 |
install <id> | 積極安裝某個伺服器的執行檔。 |
install-all | 安裝所有有已知自動安裝配方的伺服器。 |
restart | 關閉執行中的客戶端,使下次編輯重新產生。 |
which <id> | 列印某個伺服器的解析後執行檔路徑。 |
完整指南、支援的語言和設定項,請參閱 LSP — 語意診斷。
hermes setup
hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure] [--portal]
最簡單的路徑: hermes setup --portal — 透過 OAuth 登入 Nous Portal 並加入 Tool Gateway,一次搞定。
首次執行: 啟動首次設定精靈。
回訪使用者(已設定): 直接進入完整重新設定精靈 — 每個提示會顯示你目前的值作為預設值,按 Enter 保留或輸入新值。無選單。
跳入特定區段而非完整精靈:
| 區段 | 說明 |
|---|---|
model | 供應商和模型設定。 |
terminal | 終端機後端和沙箱設定。 |
gateway | 訊息平台設定。 |
tools | 按平台啟用/停用工具。 |
agent | 代理行為設定。 |
選項:
| 選項 | 說明 |
|---|---|
--quick | 在回訪使用者執行時:只提示缺少或未設定的項目。跳過你已設定的項目。 |
--non-interactive | 使用預設值/環境變數而不提示。 |
--reset | 在設定前將設定重設為預設值。 |
--reconfigure | 向後相容的別名 — 在已安裝環境上執行裸 hermes setup 現在預設執行此操作。 |
--portal | 一次性 Nous Portal 設定:透過 OAuth 登入、將 Nous 設為推論供應商,並加入 Tool Gateway。跳過精靈的其餘部分。 |
hermes portal
hermes portal [status|open|tools]
檢查 Nous Portal 認證、Tool Gateway 路由,並前往訂閱頁面。不帶子指令時執行 status。
| 子指令 | 說明 |
|---|---|
status(預設) | Portal 認證狀態 + 每個工具的 Tool Gateway 路由摘要。未提供子指令時也顯示此資訊。 |
open | 在你的預設瀏覽器中開啟 portal.nousresearch.com/manage-subscription。 |
tools | 列出所有 Tool Gateway 夥伴(Firecrawl、FAL、OpenAI TTS、Browser Use、Modal)及其是否透過 Nous 路由。 |
閘道本身的設定,請參閱 Tool Gateway。一次性設定路徑,請參閱上方的 hermes setup --portal。
hermes whatsapp
hermes whatsapp
執行 WhatsApp 配對/設定流程,包含模式選擇和 QR code 配對。
hermes slack
hermes slack manifest # 將清單列印至 stdout
hermes slack manifest --write # 寫入 ~/.hermes/slack-manifest.json
hermes slack manifest --slashes-only # 僅 features.slash_commands 陣列
產生 Slack 應用程式清單,將 COMMAND_REGISTRY 中的每個閘道指令(/btw、/stop、/model…)註冊為一等 Slack 斜線指令 — 與 Discord 和 Telegram 功能對齊。將輸出貼到你的 Slack 應用程式設定中:https://api.slack.com/apps → 你的應用程式 → Features → App Manifest → Edit,然後 Save。如果範圍或斜線指令有變更,Slack 會提示重新安裝。
| 旗標 | 預設值 | 用途 |
|---|---|---|
--write [PATH] | stdout | 寫入檔案而非 stdout。裸 --write 寫入 $HERMES_HOME/slack-manifest.json。 |
--name NAME | Hermes | Slack 中的機器人顯示名稱。 |
--description DESC | 預設描述 | Slack 應用程式目錄中顯示的機器人描述。 |
--slashes-only | 關閉 | 僅發出 features.slash_commands,用於合併到手動維護的清單中。 |
在 hermes update 後重新執行 hermes slack manifest --write 以取得任何新指令。
hermes send
hermes send --to <target> "message text"
hermes send --to <target> --file <path>
echo "message" | hermes send --to <target>
hermes send --list [platform]
向已設定的訊息平台傳送一次性訊息,無需啟動代理或閘道迴圈。重用閘道已設定的憑證(~/.hermes/.env + ~/.hermes/config.yaml),讓運維腳本、cron job、CI hook 和監控守護行程可以發送狀態更新,無需重新實作每個平台的 REST client。
對於使用 bot token 的平台(Telegram、Discord、Slack、Signal、SMS、WhatsApp-CloudAPI),不需要運行中的閘道 — hermes send 直接與平台的 REST 端點通訊。需要持久適配器的外掛平台仍需要活躍的閘道。
| 選項 | 說明 |
|---|---|
-t, --to <TARGET> | 傳送目標。格式:platform(使用首選頻道)、platform:chat_id、platform:chat_id:thread_id 或 platform:#channel-name。範例:telegram、telegram:-1001234567890、discord:#ops、slack:C0123ABCD、signal:+15551234567。 |
-f, --file <PATH> | 從 PATH 讀取訊息正文(僅限文字檔案 — 日誌、報告、markdown)。傳入 - 可強制從 stdin 讀取。要傳送圖片或其他二進位檔案,請使用 MEDIA:<path>(見下方)。 |
-s, --subject <LINE> | 在訊息正文前附加主旨/標題行。 |
-l, --list [platform] | 列出所有平台(或僅指定平台)的已設定目標。 |
-q, --quiet | 成功時隱藏 stdout — 在腳本中很有用(僅依賴結束碼)。 |
--json | 發出原始 JSON 結果而非人類可讀輸出。 |
如果未提供位置參數 message 也不是 --file,hermes send 會在不是 TTY 時從 stdin 讀取。結束碼:成功為 0,傳遞/後端失敗為 1,使用錯誤為 2。
傳送圖片和其他媒體
--file 僅用於文字正文。要以原生平台附件形式傳遞圖片、文件、影片或音訊檔案,請在訊息文字中使用 MEDIA:<local_path> 指令參照:
hermes send --to telegram "MEDIA:/tmp/screenshot.png"
hermes send --to telegram "Build chart for today MEDIA:/tmp/chart.png" # 附說明文字
hermes send --to discord:#ops "MEDIA:/tmp/report.pdf"
預設情況下,圖片檔案會以照片形式傳送(Telegram 等平台會重新壓縮)。在訊息中加入 [[as_document]] 可改為以未壓縮的檔案附件形式傳遞:
hermes send --to telegram "[[as_document]] MEDIA:/tmp/screenshot.png"
範例:
hermes send --to telegram "deploy finished"
echo "RAM 92%" | hermes send --to telegram:-1001234567890
hermes send --to discord:#ops --file /tmp/report.md
hermes send --to slack:#eng --subject "[CI]" --file build.log
hermes send --list # 所有平台
hermes send --list telegram # 按平台篩選
hermes secrets
hermes secrets bitwarden <subcommand>
hermes secrets bw <subcommand> # 短別名
在程式啟動時從外部密鑰管理器拉取 API 金鑰,而非儲存在 ~/.hermes/.env 中。目前支援 Bitwarden Secrets Manager。完整指南請參閱:Bitwarden 整合。
bitwarden(別名 bw)子指令:
| 子指令 | 說明 |
|---|---|
setup | 互動式精靈:安裝已固定的 bws 執行檔、儲存存取權杖並選擇專案。支援 --project-id、--access-token 和 --server-url 供非互動式使用。 |
status | 顯示目前設定、執行檔路徑/版本和上次拉取資訊。 |
sync | 立即拉取密鑰並報告變更。加入 --apply 可實際將密鑰匯出到目前 shell 的環境中(預設為試運行)。 |
install | 下載並驗證已固定的 bws 執行檔。--force 即使已有受管理的副本也會重新下載。 |
disable | 關閉 Bitwarden 整合。 |
hermes migrate
hermes migrate <type>
診斷並(選擇性地)重寫活躍的 config.yaml,以替換已退役模型或已棄用設定的參照。在任何重寫之前會對原始 config.yaml 進行帶時間戳的備份(使用 --no-backup 可跳過)。
| 子指令 | 說明 |
|---|---|
xai | 掃描 config.yaml 中參照已排定於 2026 年 5 月 15 日退役的 xAI 模型,並(搭配 --apply)依照 xAI 遷移指南就地重寫為官方替補方案。預設為試運行。 |
遷移子指令的常用旗標:
| 旗標 | 說明 |
|---|---|
--apply | 就地重寫 config.yaml(預設:試運行,不寫入)。 |
--no-backup | 套用時跳過 config.yaml 的帶時間戳備份。 |
請勿與
hermes claw migrate(將 OpenClaw 設定一次性匯入 Hermes)混淆 —hermes migrate是頂層設定重寫指令。
hermes proxy
hermes proxy <subcommand>
執行本機 OpenAI 相容 HTTP 伺服器,將請求轉發到經 OAuth 認證的上游供應商(例如 Nous Portal、xAI)。外部應用程式可以使用任何 bearer token 指向代理;代理會在轉發時附加你的真實 OAuth 憑證。完整指南請參閱訂閱代理。
| 子指令 | 說明 |
|---|---|
start | 在前景執行代理。旗標:--provider <nous|xai>(預設 nous)、--host <addr>(預設 127.0.0.1;使用 0.0.0.0 在區域網路上暴露)、--port <int>(預設 8645)。 |
status | 顯示哪些代理上游已就緒(憑證存在、OAuth 有效)。 |
providers | 列出可用的代理上游供應商。 |
hermes security
hermes security <subcommand>
按需漏洞掃描,對抗 OSV.dev。涵蓋 Hermes venv(已安裝的 PyPI 發行版)、外掛在 ~/.hermes/plugins/ 下宣告的 Python 依賴,以及 config.yaml 中已固定的 npx/uvx MCP 伺服器。不掃描全域安裝的套件或編輯器/瀏覽器擴充功能。
| 子指令 | 說明 |
|---|---|
audit | 執行一次性供應鏈稽核。 |
audit 旗標:
| 旗標 | 預設值 | 說明 |
|---|---|---|
--json | 關閉 | 發出機器可讀的 JSON 而非人類可讀文字。 |
--fail-on <level> | critical | 當任何發現達到此嚴重等級時以非零狀態離開(low、moderate、high、critical)。 |
--skip-venv | 關閉 | 跳過掃描 Hermes Python venv。 |
--skip-plugins | 關閉 | 跳過掃描外掛需求檔案。 |
--skip-mcp | 關閉 | 跳過掃描 config.yaml 中已固定的 MCP 伺服器。 |
hermes login / hermes logout (已棄用)
注意
hermes login已移除。請使用hermes auth管理 OAuth 憑證、hermes model選擇供應商,或hermes setup進行完整的互動式設定。
hermes auth
管理相同供應商金鑰輪替的憑證池。完整文件請參閱憑證池。
hermes auth # 互動式精靈
hermes auth list # 顯示所有池
hermes auth list openrouter # 顯示特定供應商
hermes auth add openrouter --api-key sk-or-v1-xxx # 新增 API 金鑰
hermes auth add anthropic --type oauth # 新增 OAuth 憑證
hermes auth remove openrouter 2 # 按索引移除
hermes auth reset openrouter # 清除冷卻期
hermes auth status anthropic # 顯示供應商的認證狀態
hermes auth logout anthropic # 登出並清除已儲存的認證狀態
hermes auth spotify # 透過 PKCE 認證 Hermes 與 Spotify
子指令:add、list、remove、reset、status、logout、spotify。不帶子指令呼叫時,啟動互動式管理精靈。
hermes status
hermes status [--all] [--deep]
| 選項 | 說明 |
|---|---|
--all | 以可分享的遮蔽格式顯示所有詳細資訊。 |
--deep | 執行更深層的檢查,可能需要較長時間。 |
hermes cron
hermes cron <list|create|edit|pause|resume|run|remove|status|tick>
| 子指令 | 說明 |
|---|---|
list | 顯示已排程的作業。 |
create / add | 從提示建立排程作業,可選擇透過重複 --skill 附加一個或多個技能。 |
edit | 更新作業的排程、提示、名稱、傳遞方式、重複次數或附加的技能。支援 --clear-skills、--add-skill 和 --remove-skill。 |
pause | 暫停作業但不刪除。 |
resume | 恢復已暫停的作業並計算其下次執行時間。 |
run | 在下次排程器 tick 時觸發作業。 |
remove | 刪除排程作業。 |
status | 檢查排程器是否正在執行。 |
tick | 執行到期的作業一次然後離開。 |
hermes kanban
hermes kanban [--board <slug>] <action> [options]
多 profile、多專案協作看板。每個安裝可以託管多個看板(每個專案、儲存庫或領域一個);每個看板是一個獨立的佇列,有自己的 SQLite 資料庫和調度器範圍。新安裝從一個名為 default 的看板開始,其資料庫為 ~/.hermes/kanban.db(為了向後相容);額外的看板位於 ~/.hermes/kanban/boards/<slug>/kanban.db。閘道內建的調度器每次 tick 會掃描所有看板。
全域旗標(適用於以下所有操作):
| 旗標 | 用途 |
|---|---|
--board <slug> | 操作特定看板。預設為目前的看板(透過 hermes kanban boards switch、HERMES_KANBAN_BOARD 環境變數或 default 設定)。 |
這是人類/腳本化操作介面。 調度器產生的 agent worker 透過專用的 kanban_* 工具集(kanban_show、kanban_complete、kanban_block、kanban_create、kanban_link、kanban_comment、kanban_heartbeat;協調器 profile 還有 kanban_list 和 kanban_unblock)驅動看板,而非呼叫 hermes kanban。Worker 的環境中固定了 HERMES_KANBAN_BOARD,因此它們實際上無法看到其他看板。
| 操作 | 用途 |
|---|---|
init | 如果不存在則建立 kanban.db。冪等操作。 |
boards list / boards ls | 列出所有看板及任務計數。--json、--all(包含已封存的)。 |
boards create <slug> | 建立新看板。旗標:--name、--description、--icon、--color、--switch(設為活躍)。slug 為 kebab-case 格式,自動轉小寫。 |
boards switch <slug> / boards use | 將 <slug> 持久化為活躍看板(寫入 ~/.hermes/kanban/current)。 |
boards show / boards current | 列出目前活躍看板的名稱、資料庫路徑和任務計數。 |
boards rename <slug> "<name>" | 變更看板的顯示名稱。slug 不可變。 |
boards rm <slug> | 封存(預設)或硬刪除看板。--delete 跳過封存步驟。已封存的看板移至 boards/_archived/<slug>-<ts>/。default 不允許此操作。 |
create "<title>" | 在活躍看板上建立新任務。旗標:--body、--assignee、--parent(可重複)、--workspace scratch|worktree|dir:<path>、--tenant、--priority、--triage、--idempotency-key、--max-runtime、--max-retries、--skill(可重複)。 |
list / ls | 列出活躍看板上的任務。使用 --mine、--assignee、--status、--tenant、--archived、--json 篩選。 |
show <id> | 顯示任務及其評論和事件。--json 輸出機器可讀格式。 |
assign <id> <profile> | 指派或重新指派。使用 none 取消指派。任務執行中不允許此操作。 |
link <parent> <child> | 新增依賴關係。會偵測迴圈。兩個任務必須在同一看板上。 |
unlink <parent> <child> | 移除依賴關係。 |
claim <id> | 原子性地認領一個就緒任務。列印已解析的工作區路徑。 |
comment <id> "<text>" | 追加評論。下一個認領該任務的 worker 會在其 kanban_show() 回應中讀取它。 |
complete <id> | 標記任務完成。旗標:--result、--summary、--metadata。 |
block <id> "<reason>" | 標記任務因等待人工輸入而阻塞。也會將原因追加為評論。 |
schedule <id> "<reason>" | 將延時/後續工作停放在 scheduled 中,使其不顯示為人工阻塞者。 |
unblock <id> | 將已阻塞或已排程的任務返回就緒狀態(如果依賴仍未完成則返回 todo)。 |
archive <id> | 從預設列表中隱藏。gc 會移除暫存工作區。 |
tail <id> | 追蹤任務的事件串流。 |
dispatch | 在活躍看板上執行一次調度。旗標:--dry-run、--max N、--failure-limit N、--json。 |
context <id> | 列印 worker 會看到的完整上下文(標題 + 本文 + 父任務結果 + 評論)。 |
specify <id> / specify --all | 透過輔助 LLM 將 triage 欄中的任務具體化為規格(標題 + 包含目標、方法、驗收標準的本文),然後將其提升為 todo。旗標:--tenant(將 --all 限定為一個 tenant)、--author、--json。在 config.yaml 的 auxiliary.triage_specifier 下設定模型。 |
decompose <id> / decompose --all | 將 triage 欄中的任務分散為子任務圖,由描述路由到專業 profile。當 LLM 判斷任務不需要分散時,會回退到 specify 風格的單任務提升。旗標與 specify 相同。在 config.yaml 的 auxiliary.kanban_decomposer 下設定分解器模型;kanban.orchestrator_profile 僅控制分散後根/協調任務的所有者。當 kanban.auto_decompose: true(預設)時,每次調度器 tick 也會自動執行。請參閱自動 vs 手動編排。 |
gc | 移除已封存任務的暫存工作區。 |
範例:
# 建立第二個看板並在其上建立任務,無需切換。
hermes kanban boards create atm10-server --name "ATM10 Server" --icon 🎮
hermes kanban --board atm10-server create "Restart server" --assignee ops
# 為後續呼叫切換活躍看板。
hermes kanban boards switch atm10-server
hermes kanban list # 顯示 atm10-server 任務
# 封存看板(可恢復)或硬刪除。
hermes kanban boards rm atm10-server
hermes kanban boards rm atm10-server --delete
看板解析順序(優先順序由高到低):--board <slug> 旗標 → HERMES_KANBAN_BOARD 環境變數 → ~/.hermes/kanban/current 檔案 → default。
所有操作也可在閘道中作為斜線指令使用(/kanban …),具有相同的參數介面 — 包括 boards 子指令和 --board 旗標。
如需完整設計 — 與 Cline Kanban / Paperclip / NanoClaw / Gemini Enterprise 的比較、八種協作模式、四種使用者故事、並行正確性證明 — 請參閱儲存庫中的 docs/hermes-kanban-v1-spec.pdf 或 Kanban 使用者指南。
hermes webhook
hermes webhook <subscribe|list|remove|test>
管理用於事件驅動 agent 啟用的動態 webhook 訂閱。需要在設定中啟用 webhook 平台 — 如果未設定,會顯示設定說明。
| 子指令 | 說明 |
|---|---|
subscribe / add | 建立 webhook 路由。回傳要設定在你服務上的 URL 和 HMAC 密鑰。 |
list / ls | 顯示所有 agent 建立的訂閱。 |
remove / rm | 刪除動態訂閱。設定檔中的靜態路由不受影響。 |
test | 傳送測試 POST 以驗證訂閱是否正常運作。 |
hermes webhook subscribe
hermes webhook subscribe <name> [options]
| 選項 | 說明 |
|---|---|
--prompt | 包含 {dot.notation} 載荷參照的提示模板。 |
--events | 以逗號分隔的事件類型,用於接受(例如 issues,pull_request)。空白 = 全部。 |
--description | 人類可讀的描述。 |
--skills | 以逗號分隔的技能名稱,用於 agent 執行時載入。 |
--deliver | 傳遞目標:log(預設)、telegram、discord、slack、github_comment。 |
--deliver-chat-id | 跨平台傳遞的目標聊天/頻道 ID。 |
--secret | 自訂 HMAC 密鑰。省略時自動產生。 |
--deliver-only | 跳過 agent — 將渲染後的 --prompt 作為字面訊息傳遞。零 LLM 成本,次秒級傳遞。需要 --deliver 為真正的目標(非 log)。 |
訂閱會持久化至 ~/.hermes/webhook_subscriptions.json,並由 webhook 適配器熱重載,無需重啟閘道。
hermes doctor
hermes doctor [--fix]
| 選項 | 說明 |
|---|---|
--fix | 在可能的情況下嘗試自動修復。 |
hermes dump
hermes dump [--show-keys]
輸出你完整 Hermes 設定的精簡純文字摘要。設計用於在尋求支援時複製貼上到 Discord、GitHub issues 或 Telegram — 無 ANSI 顏色、無特殊格式,只有資料。
| 選項 | 說明 |
|---|---|
--show-keys | 顯示遮蔽的 API 金鑰前綴(首尾各 4 個字元),而非僅顯示 set/not set。 |
內容
| 區段 | 詳情 |
|---|---|
| 標頭 | Hermes 版本、發佈日期、git commit hash |
| 環境 | 作業系統、Python 版本、OpenAI SDK 版本 |
| 身份 | 活躍 profile 名稱、HERMES_HOME 路徑 |
| 模型 | 已設定的預設模型和供應商 |
| 終端機 | 後端類型(local、docker、ssh 等) |
| API 金鑰 | 所有 22 個供應商/工具 API 金鑰的存在性檢查 |
| 功能 | 已啟用的工具集、MCP 伺服器數量、記憶體供應商 |
| 服務 | 閘道狀態、已設定的訊息平台 |
| 工作負載 | 排程作業數量、已安裝技能數量 |
| 設定覆蓋 | 與預設值不同的任何設定值 |
範例輸出
--- hermes dump ---
version: 0.8.0 (2026.4.8) [af4abd2f]
os: Linux 6.14.0-37-generic x86_64
python: 3.11.14
openai_sdk: 2.24.0
profile: default
hermes_home: ~/.hermes
model: anthropic/claude-opus-4.6
provider: openrouter
terminal: local
api_keys:
openrouter set
openai not set
anthropic set
nous not set
firecrawl set
...
features:
toolsets: all
mcp_servers: 0
memory_provider: built-in
gateway: running (systemd)
platforms: telegram, discord
cron_jobs: 3 active / 5 total
skills: 42
config_overrides:
agent.max_turns: 250
compression.threshold: 0.85
display.streaming: True
--- end dump ---
使用時機
- 在 GitHub 上回報錯誤 — 將 dump 貼到你的 issue 中
- 在 Discord 中尋求協助 — 在代碼區塊中分享
- 將你的設定與他人比較
- 當某個功能不正常時快速健康檢查
提示
hermes dump專為分享而設計。互動式診斷請使用hermes doctor。視覺化總覽請使用hermes status。
hermes debug
hermes debug share [options]
將除錯報告(系統資訊 + 近期日誌)上傳到貼上服務並取得可分享的 URL。適用於快速支援請求 — 包含診斷你的問題所需的一切。
| 選項 | 說明 |
|---|---|
--lines <N> | 每個日誌檔案包含的日誌行數(預設:200)。 |
--expire <days> | 貼上有效天數(預設:7)。 |
--local | 在本機列印報告而非上傳。 |
報告包含系統資訊(作業系統、Python 版本、Hermes 版本)、近期 agent 和閘道日誌(每個檔案 512 KB 限制)以及遮蔽的 API 金鑰狀態。金鑰始終被遮蔽 — 不會上傳任何密鑰。
按順序嘗試的貼上服務:paste.rs、dpaste.com。
範例
hermes debug share # 上傳除錯報告,列印 URL
hermes debug share --lines 500 # 包含更多日誌行
hermes debug share --expire 30 # 保留貼上 30 天
hermes debug share --local # 列印報告至終端機(不上傳)
hermes backup
hermes backup [options]
建立你 Hermes 設定、技能、session 和資料的 zip 壓縮檔。備份不包含 hermes-agent 程式碼本身。
| 選項 | 說明 |
|---|---|
-o, --output <path> | zip 檔案的輸出路徑(預設:~/hermes-backup-<timestamp>.zip)。 |
-q, --quick | 快速快照:僅包含關鍵狀態檔案(config.yaml、state.db、.env、auth、排程作業)。比完整備份快得多。 |
-l, --label <name> | 快照的標籤(僅與 --quick 搭配使用)。 |
備份使用 SQLite 的 backup() API 進行安全複製,因此即使 Hermes 正在執行也能正確運作(WAL 模式安全)。
zip 中排除的內容:
*.db-wal、*.db-shm、*.db-journal— SQLite 的 WAL / 共用記憶體 / journal 附屬檔案。*.db檔案已透過sqlite3.backup()取得一致的快照;將即時附屬檔案一起包含會讓還原看到半提交的狀態。checkpoints/— 每個 session 的軌跡快取。以雜湊鍵控且每個 session 重新產生;無法乾淨地移植到另一個安裝。hermes-agent程式碼本身(這是使用者資料備份,不是儲存庫快照)。
範例
hermes backup # 完整備份至 ~/hermes-backup-*.zip
hermes backup -o /tmp/hermes.zip # 完整備份至特定路徑
hermes backup --quick # 僅快速狀態快照
hermes backup --quick --label "pre-upgrade" # 帶標籤的快速快照
hermes checkpoints
hermes checkpoints [COMMAND]
檢視和管理 ~/.hermes/checkpoints/ 中的暫存 git 儲存 — 這是 session 內 /rollback 指令的儲存層。可隨時安全執行;無需 agent 正在運行。
| 子指令 | 說明 |
|---|---|
status(預設) | 顯示總大小、專案數量和每個專案的明細。裸 hermes checkpoints 等效。 |
list | status 的別名。 |
prune | 強制執行清理掃描 — 刪除孤立和過期的專案、GC 儲存、強制大小上限。忽略 24 小時冪等標記。 |
clear | 刪除整個 checkpoint 基礎目錄。不可逆;除非使用 -f 否則會要求確認。 |
clear-legacy | 僅刪除由 v1→v2 遷移產生的 legacy-<timestamp>/ 封存。 |
選項
| 選項 | 子指令 | 說明 |
|---|---|---|
--limit N | status、list | 最多列出的專案數(預設 20)。 |
--retention-days N | prune | 刪除 last_touch 早於 N 天的專案(預設 7)。 |
--max-size-mb N | prune | 在孤立/過期清除後,按專案刪除最舊的提交,直到總儲存大小 ≤ N MB(預設 500)。 |
--keep-orphans | prune | 跳過刪除工作目錄已不存在的專案。 |
-f, --force | clear、clear-legacy | 跳過確認提示。 |
範例
hermes checkpoints # 狀態概覽
hermes checkpoints prune --retention-days 3 # 積極清理
hermes checkpoints prune --max-size-mb 200 # 收緊大小上限
hermes checkpoints clear-legacy -f # 刪除 v1 封存目錄
hermes checkpoints clear -f # 清除一切
請參閱 Checkpoints 與 /rollback 以取得完整架構和 session 內指令。
hermes import
hermes import <zipfile> [options]
將先前建立的 Hermes 備份還原到你的 Hermes 主目錄。壓縮檔中的所有檔案會覆蓋你 Hermes 主目錄中的現有檔案;--force 僅跳過目標已有 Hermes 安裝時觸發的確認提示。
| 選項 | 說明 |
|---|---|
-f, --force | 跳過已安裝環境的確認提示。 |
警告
匯入前請停止閘道,以避免與運行中的程序衝突。
範例
hermes import ~/hermes-backup-20260423.zip # 覆蓋現有設定前會提示
hermes import ~/hermes-backup-20260423.zip --force # 不提示直接覆蓋
hermes logs
hermes logs [log_name] [options]
檢視、追蹤和篩選 Hermes 日誌檔案。所有日誌都儲存在 ~/.hermes/logs/(非預設 profile 為 <profile>/logs/)。
日誌檔案
| 名稱 | 檔案 | 收錄內容 |
|---|---|---|
agent(預設) | agent.log | 所有 agent 活動 — API 呼叫、工具調度、session 生命週期(INFO 及以上) |
errors | errors.log | 僅警告和錯誤 — agent.log 的篩選子集 |
gateway | gateway.log | 訊息閘道活動 — 平台連線、訊息調度、webhook 事件 |
gui | gui.log | 控制面板 / TUI 閘道 / PTY 橋接 / websocket 事件 |
desktop | desktop.log | Electron 桌面應用程式 — 啟動、後端產生輸出和近期 Python 追蹤回溯 |
選項
| 選項 | 說明 |
|---|---|
log_name | 要檢視的日誌:agent(預設)、errors、gateway,或 list 顯示可用檔案及其大小。 |
-n, --lines <N> | 顯示的行數(預設:50)。 |
-f, --follow | 即時追蹤日誌,類似 tail -f。按 Ctrl+C 停止。 |
--level <LEVEL> | 顯示的最低日誌等級:DEBUG、INFO、WARNING、ERROR、CRITICAL。 |
--session <ID> | 篩選包含 session ID 子字串的行。 |
--since <TIME> | 顯示從指定相對時間以來的行:30m、1h、2d 等。支援 s(秒)、m(分鐘)、h(小時)、d(天)。 |
--component <NAME> | 按元件篩選:gateway、agent、tools、cli、cron。 |
範例
# 檢視 agent.log 的最後 50 行(預設)
hermes logs
# 即時追蹤 agent.log
hermes logs -f
# 檢視 gateway.log 的最後 100 行
hermes logs gateway -n 100
# 僅顯示過去一小時的警告和錯誤
hermes logs --level WARNING --since 1h
# 按特定 session 篩選
hermes logs --session abc123
# 追蹤 errors.log,從 30 分鐘前開始
hermes logs errors --since 30m -f
# 列出所有日誌檔案及其大小
hermes logs list
篩選
篩選條件可以組合使用。當多個篩選條件處於啟用狀態時,日誌行必須通過所有條件才會顯示:
# 過去 2 小時內包含 session "tg-12345" 的 WARNING+ 行
hermes logs --level WARNING --since 2h --session tg-12345
當 --since 啟用時,沒有可解析時間戳的行會被包含(它們可能是多行日誌條目的延續行)。當 --level 啟用時,沒有可偵測等級的行會被包含。
日誌輪替
Hermes 使用 Python 的 RotatingFileHandler。舊日誌會自動輪替 — 尋找 agent.log.1、agent.log.2 等。hermes logs list 子指令顯示所有日誌檔案,包括已輪替的。
hermes prompt-size
hermes prompt-size [--platform <name>] [--json]
報告新 session 的固定提示預算 — 在任何對話內容之前,每次 API 呼叫都會發送的內容。當下游適配器或代理的提示預算比模型的上下文視窗更緊張時很有用,或當你想了解哪個區塊(技能索引、記憶體、profile)佔比最大時。
它會建立與 agent 相同的系統提示,然後將其分解:
- 系統提示總計 — 完整組裝的提示(身份、指引、技能索引、上下文檔案、記憶體、profile、時間戳)。
- 技能索引 —
<available_skills>區塊。安裝大量技能時通常是最大的單一區塊。 - 記憶體和使用者 profile — 你的
MEMORY.md/USER.md快照。 - 提示分層 — 穩定 / 上文 / 易變,對應 Hermes 為緩存友好性而分層提示的方式。
- 工具 schema — 所有啟用工具的 JSON(固定每次呼叫負載的另一半)。
完全離線執行 — 無需 API 呼叫,無需設定憑證即可運作。
# CLI 平台的人類可讀明細(預設)
hermes prompt-size
# 模擬訊息平台的提示(不同的平台提示)
hermes prompt-size --platform telegram
# 供腳本使用的機器可讀輸出
hermes prompt-size --json
提示
技能索引和工具 schema 的大小取決於你啟用的技能和工具數量。要縮減提示,請停用未使用的工具集(
hermes tools)或解安裝不需要的技能(hermes skills)。你目前目錄中的上下文檔案(AGENTS.md、.cursorrules)也計入總量。
hermes config
hermes config <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
show | 顯示目前設定值。 |
edit | 在你的編輯器中開啟 config.yaml。 |
set <key> <value> | 設定設定值。 |
path | 列印設定檔路徑。 |
env-path | 列印 .env 檔案路徑。 |
check | 檢查缺少或過時的設定。 |
migrate | 互動式新增新引入的選項。 |
hermes pairing
hermes pairing <list|approve|revoke|clear-pending>
| 子指令 | 說明 |
|---|---|
list | 顯示待處理和已核准的使用者。 |
approve <platform> <code> | 核准配對碼。 |
revoke <platform> <user-id> | 撤銷使用者的存取權限。 |
clear-pending | 清除待處理的配對碼。 |
hermes skills
hermes skills <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
browse | 分頁式技能登錄瀏覽。 |
search | 搜尋技能登錄。 |
install | 安裝技能。 |
inspect | 不安裝而預覽技能。 |
list | 列出已安裝的技能。 |
check | 檢查已安裝的 hub 技能是否有上游更新。 |
update | 當有上游變更時重新安裝 hub 技能。 |
audit | 重新掃描已安裝的 hub 技能。 |
uninstall | 移除 hub 安裝的技能。 |
reset | 透過清除其 manifest 條目,取消釘選標記為 user_modified 的內建技能。使用 --restore 時,也會將使用者副本替換為內建版本。 |
opt-out | 停止將內建技能植入活躍 profile。寫入 .no-bundled-skills 標記,使安裝程式、hermes update 和任何同步操作跳過內建技能植入。預設安全 — 不會變更磁碟上的任何內容。使用 --remove 時,也會刪除已存在但未修改的內建技能(使用者編輯的、hub 安裝的和手寫的技能不會被刪除;會先預覽並確認,--yes 可跳過)。 |
opt-in | 透過移除 .no-bundled-skills 標記來撤銷 opt-out,使內建技能在下次 hermes update 時重新植入。使用 --sync 可立即重新植入。 |
publish | 將技能發佈到登錄。 |
snapshot | 匯出/匯入技能設定。 |
tap | 管理自訂技能來源。 |
config | 按平台互動式啟用/停用技能設定。 |
常用範例:
hermes skills browse
hermes skills browse --source official
hermes skills search react --source skills-sh
hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect official/security/1password
hermes skills inspect skills-sh/vercel-labs/json-render/json-render-react
hermes skills install official/migration/openclaw-migration
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills install https://sharethis.chat/SKILL.md # 直接 URL(單檔 SKILL.md)
hermes skills install https://example.com/SKILL.md --name my-skill # 當 frontmatter 無名稱時覆蓋名稱
hermes skills check
hermes skills update
hermes skills config
hermes skills reset google-workspace
hermes skills reset google-workspace --restore --yes
hermes skills opt-out # 停止未來的內建技能植入(不刪除任何內容)
hermes skills opt-out --remove --yes # 同時刪除未修改的內建技能
hermes skills opt-in --sync # 撤銷:移除標記並立即重新植入
備註:
--force可覆蓋第三方/社群技能的非危險策略阻擋。--force不會覆蓋dangerous掃描判定。--source skills-sh搜尋公開的skills.sh目錄。--source well-known讓你將 Hermes 指向暴露/.well-known/skills/index.json的網站。--source browse-sh搜尋 browse.sh 的 200+ 網站特定瀏覽器自動化技能目錄。識別碼格式如browse-sh/airbnb.com/search-listings-ddgioa。- 傳入
http(s)://…/*.mdURL 會直接安裝單檔 SKILL.md。當 frontmatter 沒有name:且 URL slug 不是有效的識別碼時,互動式終端機會提示輸入名稱;非互動式介面(TUI 中的/skills install、閘道平台)需要改用--name <x>。
hermes bundles
hermes bundles <subcommand>
技能套件將多個技能組合在一個 /<bundle-name> 斷線指令下。呼叫套件會將每個引用的技能載入為單一組合的使用者訊息。儲存位置:~/.hermes/skill-bundles/<slug>.yaml。請參閱技能套件以了解 YAML schema 和行為。
子指令:
| 子指令 | 說明 |
|---|---|
list | 列出已安裝的套件(未提供子指令時的預設行為) |
show <name> | 顯示一個套件的名稱、描述、技能和檔案路徑 |
create <name> | 建立新套件。傳入 --skill <id>(可重複)或省略以互動式輸入。可用 --description、--instruction、--force。 |
delete <name> | 移除套件檔案 |
reload | 重新掃描 ~/.hermes/skill-bundles/ 並報告新增/移除的套件 |
範例:
hermes bundles create backend-dev \
--skill github-code-review \
--skill test-driven-development \
--skill github-pr-workflow \
-d "Backend feature work"
hermes bundles list
hermes bundles show backend-dev
hermes bundles delete backend-dev
在聊天 session 中,/bundles 列出已安裝的套件,/<bundle-name> 載入一個。
hermes curator
hermes curator <subcommand>
Curator 是一個輔助模型背景任務,定期檢視 agent 建立的技能、修剪過時的技能、整合重疊的技能,並封存過時的技能。內建和 hub 安裝的技能不會被觸碰。封存的技能可以恢復;永遠不會自動刪除。
| 子指令 | 說明 |
|---|---|
status | 顯示 curator 狀態和技能統計 |
run | 立即觸發 curator 檢視(阻塞直到 LLM 處理完成) |
run --background | 在背景執行緒中啟動 LLM 處理並立即回傳 |
run --dry-run | 僅預覽 — 產生檢視報告但不進行任何變更 |
backup | 手動對 ~/.hermes/skills/ 進行 tar.gz 快照(curator 在每次真實執行前也會自動快照) |
rollback | 從快照還原 ~/.hermes/skills/(預設為最新的) |
rollback --list | 列出可用的快照 |
rollback --id <ts> | 按 ID 還原特定快照 |
rollback -y | 跳過確認提示 |
pause | 暫停 curator 直到恢復 |
resume | 恢復已暫停的 curator |
pin <skill> | 釘選技能,使 curator 永遠不會自動轉換它 |
unpin <skill> | 取消釘選技能 |
restore <skill> | 還原已封存的技能 |
archive <skill> | 手動封存技能 |
prune | 手動修剪 curator 通常會清理的技能 |
list-archived | 列出已封存的技能(可透過 restore 恢復) |
在全新安裝上,第一次排程的處理會延後一個完整的 interval_hours(預設 7 天)— 閘道不會在 hermes update 後的第一次 tick 上立即進行 curate。使用 hermes curator run --dry-run 在此之前預覽。
請參閱 Curator 以了解行為和設定。
hermes fallback
hermes fallback <subcommand>
管理備援供應商鏈。當主要模型因速率限制、過載或連線錯誤而失敗時,會按順序嘗試備援供應商。
| 子指令 | 說明 |
|---|---|
list(別名:ls) | 顯示目前的備援鏈(未提供子指令時的預設行為) |
add | 選擇供應商 + 模型(與 hermes model 相同的選擇器)並附加到鏈中 |
remove(別名:rm) | 選擇要從鏈中刪除的項目 |
clear | 移除所有備援項目 |
請參閱備援供應商。
hermes hooks
hermes hooks <subcommand>
檢視在 ~/.hermes/config.yaml 中宣告的 shell script hook,使用合成負載測試它們,並管理 ~/.hermes/shell-hooks-allowlist.json 中的首次使用同意允許清單。
| 子指令 | 說明 |
|---|---|
list(別名:ls) | 列出已設定的 hook 及其匹配器、逾時和同意狀態 |
test <event> | 以合成負載觸發每個匹配 <event> 的 hook |
revoke(別名:remove、rm) | 移除指令的允許清單條目(在下次重啟時生效) |
doctor | 檢查每個已設定的 hook:執行權限位元、允許清單、修改時間偏差、JSON 有效性,以及合成執行計時 |
請參閱 Hooks 以了解事件簽章和負載結構。
hermes memory
hermes memory <subcommand>
設定和管理外部記憶體供應商外掛。可用的供應商:honcho、openviking、mem0、hindsight、holographic、retaindb、byterover、supermemory。同一時間只能啟用一個外部供應商。內建記憶體(MEMORY.md/USER.md)始終啟用。
子指令:
| 子指令 | 說明 |
|---|---|
setup | 互動式供應商選擇和設定。 |
status | 顯示目前記憶體供應商設定。 |
off | 停用外部供應商(僅保留內建)。 |
資訊 — 供應商特定子指令
當外部記憶體供應商處於啟用狀態時,它可能會註冊自己的頂層
hermes <provider>指令,用於供應商特定的管理(例如 Honcho 啟用時的hermes honcho)。未啟用的供應商不會暴露其子指令。執行hermes --help查看目前已接入的內容。
hermes acp
hermes acp
將 Hermes 作為 ACP(Agent Client Protocol)stdio 伺服器啟動,用於編輯器整合。
相關入口點:
hermes-acp
python -m acp_adapter
請先安裝支援:
pip install -e '.[acp]'
hermes mcp
hermes mcp <subcommand>
管理 MCP(Model Context Protocol)伺服器設定,並將 Hermes 作為 MCP 伺服器執行。
| 子指令 | 說明 |
|---|---|
(無) 或 picker | 互動式目錄選擇器 — 瀏覽 Nous 核准的 MCP 並安裝/啟用/停用。 |
catalog | 列出 Nous 核准的 MCP(純文字,可用腳本處理)。 |
install <name> | 安裝目錄項目(例如 hermes mcp install n8n)。 |
serve [-v|--verbose] | 將 Hermes 作為 MCP 伺服器執行 — 向其他 agent 暴露對話。 |
add <name> [--url URL] [--command CMD] [--auth oauth|header] [--args ...] | 新增具有自動工具發現功能的自訂 MCP 伺服器。--args 會將剩餘的 argv 傳遞給 stdio 指令,因此請放在最後。 |
remove <name>(別名:rm) | 從設定中移除 MCP 伺服器。 |
list(別名:ls) | 列出已設定的 MCP 伺服器。 |
test <name> | 測試與 MCP 伺服器的連線。 |
configure <name>(別名:config) | 切換伺服器的工具選擇。 |
login <name> | 強制重新認證基於 OAuth 的 MCP 伺服器。 |
請參閱 MCP 設定參考、在 Hermes 中使用 MCP 和 MCP 伺服器模式。
hermes plugins
hermes plugins [subcommand]
統一的外掛管理 — 一般外掛、記憶體供應商和上下文引擎都在同一處。不帶子指令執行 hermes plugins 會開啟一個組合式互動畫面,包含兩個區段:
- 一般外掛 — 多選複選框,用於啟用/停用已安裝的外掛
- 供應商外掛 — 單選設定,用於記憶體供應商和上下文引擎。按 ENTER 開啟一個類比選擇器。
| 子指令 | 說明 |
|---|---|
| (無) | 組合式互動 UI — 一般外掛開關 + 供應商外掛設定。 |
install <identifier> [--force] | 從 Git URL 或 owner/repo 安裝外掛。 |
update <name> | 拉取已安裝外掛的最新變更。 |
remove <name>(別名:rm、uninstall) | 移除已安裝的外掛。 |
enable <name> | 啟用已停用的外掛。 |
disable <name> | 停用外掛但不移除。 |
list(別名:ls) | 列出已安裝的外掛及其啟用/停用狀態。 |
供應商外掛選擇會儲存至 config.yaml:
memory.provider— 活躍的記憶體供應商(空白 = 僅內建)context.engine— 活躍的上下文引擎("compressor"= 內建預設值)
一般外掛停用清單儲存在 config.yaml 的 plugins.disabled 下。
請參閱外掛和建立 Hermes 外掛。
hermes tools
hermes tools [--summary]
| 選項 | 說明 |
|---|---|
--summary | 列印目前啟用工具摘要然後離開。 |
不使用 --summary 時,這會啟動互動式的每平台工具設定 UI。
hermes computer-use
hermes computer-use <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
install | 執行上游 cua-driver 安裝程式(僅限 macOS)。 |
install --upgrade | 即使 cua-driver 已在 PATH 上也重新執行安裝程式。上游腳本始終拉取最新版本,因此這會執行就地升級。 |
status | 列印 cua-driver 是否在 $PATH 上以及已安裝的版本。 |
hermes computer-use install 是安裝 computer_use 工具集所使用的 cua-driver 執行檔的穩定入口點。它執行的上游安裝程式與你首次啟用 Computer Use 時 hermes tools 呼叫的相同,因此可以安全地在工具集切換未觸發安裝時重新執行(例如在回訪使用者設定中)。
hermes update 會在更新結束時自動重新執行上游安裝程式(如果 cua-driver 在 PATH 上),因此大多數使用者不需要手動呼叫 --upgrade。當上游發佈了你想立即取得的修復而不想等待下一次 Hermes 更新時使用它。
hermes sessions
hermes sessions <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
list | 列出近期的 session。 |
browse | 互動式 session 選擇器,支援搜尋和恢復。 |
export <output> [--session-id ID] | 將 session 匯出為 JSONL。 |
delete <session-id> | 刪除一個 session。 |
prune | 刪除舊的 session。 |
stats | 顯示 session 儲存統計。 |
rename <session-id> <title> | 設定或變更 session 標題。 |
hermes insights
hermes insights [--days N] [--source platform]
| 選項 | 說明 |
|---|---|
--days <n> | 分析過去 n 天(預設:30)。 |
--source <platform> | 按來源篩選,例如 cli、telegram 或 discord。 |
hermes claw
hermes claw migrate [options]
將你的 OpenClaw 設定遷移到 Hermes。從 ~/.openclaw(或自訂路徑)讀取並寫入 ~/.hermes。自動偵測舊版目錄名稱(~/.clawdbot、~/.moltbot)和設定檔名稱(clawdbot.json、moltbot.json)。
| 選項 | 說明 |
|---|---|
--dry-run | 預覽將遷移的內容而不寫入任何東西。 |
--preset <name> | 遷移預設集:full(所有相容設定)或 user-data(排除基礎設施設定)。兩個預設集都不匯入密鑰 — 需要明確傳入 --migrate-secrets。 |
--overwrite | 衝突時覆蓋現有的 Hermes 檔案(預設:計畫有衝突時拒絕套用)。 |
--migrate-secrets | 在遷移中包含 API 金鑰。即使在 --preset full 下也需要。 |
--no-backup | 跳過遷移前對 ~/.hermes/ 的 zip 快照(預設會在套用前將單一還原點封存寫入 ~/.hermes/backups/pre-migration-*.zip;可透過 hermes import 還原)。 |
--source <path> | 自訂 OpenClaw 目錄(預設:~/.openclaw)。 |
--workspace-target <path> | 工作區指示(AGENTS.md)的目標目錄。 |
--skill-conflict <mode> | 處理技能名稱衝突:skip(預設)、overwrite 或 rename。 |
--yes | 跳過確認提示。 |
遷移內容
遷移涵蓋 30 多個類別,包括角色、記憶體、技能、模型供應商、訊息平台、agent 行為、session 策略、MCP 伺服器、TTS 等。項目會被直接匯入到 Hermes 對應項目中或封存供人工檢視。
直接匯入: SOUL.md、MEMORY.md、USER.md、AGENTS.md、技能(4 個來源目錄)、預設模型、自訂供應商、MCP 伺服器、訊息平台 token 和允許清單(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、agent 預設值(推理強度、壓縮、人為延遲、時區、沙箱)、session 重設策略、核准規則、TTS 設定、瀏覽器設定、工具設定、執行逾時、指令允許清單、閘道設定,以及 3 個來源的 API 金鑰。
封存供人工檢視: 排程作業、外掛、hook/webhook、記憶體後端(QMD)、技能登錄設定、UI/身份、日誌、多 agent 設定、頻道綁定、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md。
API 金鑰解析按優先順序檢查三個來源:設定值 → ~/.openclaw/.env → auth-profiles.json。所有 token 欄位都支援純字串、env 模板(${VAR})和 SecretRef 物件。
如需完整的設定鍵對應、SecretRef 處理細節和遷移後檢查清單,請參閱**完整遷移指南**。
範例
# 預覽將遷移的內容
hermes claw migrate --dry-run
# 完整遷移(所有相容設定,不含密鑰)
hermes claw migrate --preset full
# 包含 API 金鑰的完整遷移
hermes claw migrate --preset full --migrate-secrets
# 僅遷移使用者資料(不含密鑰),覆蓋衝突
hermes claw migrate --preset user-data --overwrite
# 從自訂 OpenClaw 路徑遷移
hermes claw migrate --source /home/user/old-openclaw
hermes dashboard
hermes dashboard [options]
啟動 Web 控制面板 — 基於瀏覽器的 UI,用於管理設定、API 金鑰和監控 session。需要 pip install hermes-agent[web](FastAPI + Uvicorn)。內建瀏覽器的 Chat 分頁始終可用,另外需要 pty 附加(pip install 'hermes-agent[web,pty]')以及 POSIX PTY 環境(例如 Linux、macOS 或 WSL2)。完整文件請參閱 Web 控制面板。
| 選項 | 預設值 | 說明 |
|---|---|---|
--port | 9119 | Web 伺服器的埠號 |
--host | 127.0.0.1 | 綁定位址 |
--no-open | — | 不自動開啟瀏覽器 |
--insecure | 關閉 | 允許綁定非 localhost 主機。會在網路中暴露控制面板憑證;僅在受信任的網路控制後方使用。 |
--isolated | 關閉 | 從命名 profile 啟動(worker dashboard)時,執行專用的每 profile 伺服器而非路由到機器控制面板。 |
--stop | — | 停止執行中的 hermes dashboard 程序並離開。 |
--status | — | 列出執行中的 hermes dashboard 程序並離開。 |
# 預設 — 開啟瀏覽器至 http://127.0.0.1:9119
hermes dashboard
# 自訂埠,不開瀏覽器
hermes dashboard --port 8080 --no-open
# 從 profile 別名 — 路由到機器控制面板,側邊欄切換器中
# 預選該 profile(運行中時附加)
worker dashboard
hermes profile
hermes profile <subcommand>
管理 profile — 多個隔離的 Hermes 實例,每個都有自己的設定、session、技能和主目錄。
| 子指令 | 說明 |
|---|---|
list | 列出所有 profile。 |
use <name> | 設定固定的預設 profile。 |
create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias] | 建立新 profile。--clone 從活躍 profile 複製設定、.env、SOUL.md 和技能。--clone-all 複製所有狀態。--clone-from 指定來源 profile,除非搭配 --clone-all,否則會隱含設定複製。 |
delete <name> [-y] | 刪除 profile。 |
show <name> | 顯示 profile 詳情(主目錄、設定等)。 |
alias <name> [--remove] [--name NAME] | 管理用於快速 profile 存取的包裝腳本。 |
rename <old> <new> | 重新命名 profile。 |
export <name> [-o FILE] | 將 profile 匯出為 .tar.gz 封存(本機備份)。 |
import <archive> [--name NAME] | 從 .tar.gz 封存匯入 profile(本機還原)。 |
install <source> [--name N] [--alias] [--force] [-y] | 從 git URL 或本機目錄安裝 profile 發行版。 |
update <name> [--force-config] [-y] | 重新拉取發行版;保留使用者資料(記憶體、session、認證)。 |
info <name> | 顯示 profile 的發行版 manifest(版本、需求、來源)。 |
範例:
hermes profile list
hermes profile create work --clone
hermes profile use work
hermes profile alias work --name h-work
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes profile install github.com/user/my-distro --alias
hermes profile update work
hermes -p work chat -q "Hello from work profile"
hermes completion
hermes completion [bash|zsh|fish]
將 shell 自動完成腳本列印至 stdout。在你的 shell profile 中 source 輸出內容,以取得 Hermes 指令、子指令和 profile 名稱的 Tab 自動完成。
範例:
# Bash
hermes completion bash >> ~/.bashrc
# Zsh
hermes completion zsh >> ~/.zshrc
# Fish
hermes completion fish > ~/.config/fish/completions/hermes.fish
hermes update
hermes update [--gateway] [--check] [--no-backup] [--backup] [--yes]
拉取最新的 hermes-agent 程式碼並在你的 venv 中重新安裝依賴,然後重新執行安裝後 hook(MCP 伺服器、技能同步、自動完成安裝)。可安全地在活躍安裝上執行。
pip 安裝: hermes update 會自動偵測基於 pip 的安裝 — 它查詢 PyPI 的最新版本並執行 pip install --upgrade hermes-agent 而非 git pull。PyPI 發佈版追蹤標籤版本(主要/次要發佈版),而非 main 上的每個提交。使用 --check 查看是否有更新的 PyPI 版本可用,但不安裝。
git 安裝: hermes update 拉取設定的更新分支(預設:main)。如果你的 checkout 在其他分支上,Hermes 可能會在拉取前簽出更新分支。在更新前提交分支工作,如果你希望將其保留在更新自動儲存流程之外。
| 選項 | 說明 |
|---|---|
--gateway | 訊息 /update 指令使用的內部模式。使用基於檔案的 IPC 進行提示和進度串流,而非從終端機 stdin 讀取。不是閘道重啟旗標。 |
--check | 檢查是否有可用更新,但不拉取、安裝依賴或重啟任何東西。 |
--no-backup | 跳過本次執行的更新前備份,即使 config.yaml 中啟用了 updates.pre_update_backup。 |
--backup | 在拉取前建立帶標籤的 HERMES_HOME 更新前快照(設定、認證、session、技能、配對資料)。預設為關閉 — 先前的始終備份行為在大型主目錄上會為每次更新增加數分鐘。透過 config.yaml 中的 updates.pre_update_backup: true 永久開啟。 |
--yes、-y | 對互動式提示假設為是,例如設定遷移和 stash 還原。API 金鑰輸入會被跳過;需要時請單獨執行 hermes config migrate。 |
額外行為:
- 閘道重啟。 成功更新後,Hermes 會嘗試自動重啟所有運行中的閘道 profile,以便它們取得新程式碼。如需在不套用更新的情況下重啟閘道,請使用
hermes gateway restart。 - 本機原始碼變更。 對於 git 安裝,已追蹤的髒檔案和未追蹤的檔案會在分支簽出或拉取前自動儲存(
git stash push --include-untracked)。互動式終端機更新會在還原 stash 前詢問。非互動式更新預設會還原;僅在本地原始碼編輯應在成功拉取後丟棄的受管安裝上設定updates.non_interactive_local_changes: discard。如果 stash 還原衝突或拉取失敗,stash 會保留以供手動恢復。 - npm lockfile 抖動。 在儲存或切換分支之前,Hermes 會盡力清理 npm install/build 步驟產生的已追蹤
package-lock.json差異。在執行hermes update前提交或手動儲存有意的 lockfile 編輯。 - 配對資料快照。 即使
--backup關閉,hermes update也會在git pull前對~/.hermes/pairing/和飛書評論規則進行輕量級快照。如果 pull 重寫了你正在編輯的檔案,可以使用hermes backup restore --state pre-update還原。 - 舊版
hermes.service警告。 如果 Hermes 偵測到更名前的hermes.servicesystemd 單元(而非目前的hermes-gateway.service),會顯示一次性遷移提示,以便你避免迴圈問題。 - 退出碼。 成功為
0,pull/安裝/安裝後錯誤為1,阻擋git pull的非預期工作區變更為2。
維護指令
| 指令 | 說明 |
|---|---|
hermes version | 列印版本資訊。 |
hermes update | 拉取最新變更並重新安裝依賴。 |
hermes postinstall | 內部引導。在 pip install hermes-agent(或 pip 安裝的 hermes update)後執行一次,以安裝 pip 無法提供的非 Python 依賴 — Node.js 執行時、無頭瀏覽器、ripgrep、ffmpeg — 然後如果 profile 尚未設定則觸發 hermes setup。可安全地冪等重跑。 |
hermes uninstall [--full] [--gui] [--yes] | 移除 Hermes,可選擇刪除所有設定/資料。--gui 僅移除桌面 Chat GUI,保留 agent 完整;--full 同時刪除設定/資料;--yes 跳過提示。 |