本頁面介紹從終端機執行的命令列指令。
關於聊天中的斜線指令,請參閱斜線指令參考。
全域入口
hermes [global-options] <command> [subcommand/options]
全域選項
| 選項 | 說明 |
|---|---|
--version, -V | 顯示版本並離開。 |
--profile <name>, -p <name> | 選擇本次執行使用的 Hermes 設定檔。覆蓋由 hermes profile use 設定的預設值。 |
--resume <session>, -r <session> | 透過 ID 或標題恢復先前的對話。 |
--continue [name], -c [name] | 恢復最近一次對話,或符合指定標題的最近一次對話。 |
--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 輔助工具(目前:產生將每個命令註冊為原生斜線指令的 app manifest)。 |
hermes auth | 管理憑證 — 新增、列出、移除、重置、設定策略。處理 Codex/Nous/Anthropic 的 OAuth 流程。 |
hermes login / logout | 已棄用 — 請改用 hermes auth。 |
hermes send | 將一次性訊息传送至已設定的訊息平台(Telegram、Discack、Slack、Signal、SMS、…)。適用於 shell 腳本、排程任務、CI hook 和監控守護行程 — 無代理迴圈、無 LLM。 |
hermes secrets | 管理外部密鑰來源(目前為 Bitwarden Secrets Manager),用於在程式啟動時拉取 API 金鑰,而非從 ~/.hermes/.env 讀取。 |
hermes migrate | 診斷並(選擇性地)重寫 config.yaml,替換已淘汰模型或已棄用設定的引用(例如 migrate xai)。 |
hermes status | 顯示代理、認證和平台狀態。 |
hermes cron | 檢視並觸發排程器。 |
hermes kanban | 多設定檔協作看板(任務、連結、分派器)。 |
hermes webhook | 管理事件驅動觸發的動態 webhook 訂閱。 |
hermes hooks | 檢視、核准或移除在 config.yaml 中宣告的 shell 腳本 hook。 |
hermes doctor | 診斷配置和相依性問題。 |
hermes security audit | 按需供應鏈審計(OSV.dev),涵蓋 venv、外掛需求和鎖定的 MCP 伺服器。 |
hermes dump | 可複製貼上的設定摘要,用於支援/除錯。 |
hermes prompt-size | 顯示系統提示 + 工具 schema(技能索引、記憶、設定檔)的位元組數分布。離線執行。 |
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 | 瀏覽、匯出、修剪、重新命名和刪除對話。 |
hermes insights | 顯示 token/成本/活動分析。 |
hermes claw | OpenClaw 遷移輔助工具。 |
hermes dashboard | 啟動用於管理設定、API 金鑰和對話的網頁控制面板。 |
hermes 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> | 預載一個或多個技能至對話中(可重複或逗號分隔)。 |
-v, --verbose | 詳細輸出。 |
-Q, --quiet | 程式化模式:隱藏橫幅/旋轉提示/工具預覽。 |
--image <path> | 附加本機圖片至單次查詢。 |
--resume <session> / --continue [name] | 直接從 chat 恢復對話。 |
--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> | 對話來源標籤,用於篩選(預設:cli)。第三方整合請使用 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 腳本、CI、排程任務、父程序管道輸入提示),hermes -z 是最純粹的一次性入口點:單一提示輸入,最終回應文字輸出,stdout 或 stderr 上沒有其他內容。 沒有橫幅、沒有旋轉提示、沒有工具預覽、沒有 Session: 行 — 只有代理的最終回覆純文字。
hermes -z "What's the capital of France?"
# → Paris.
# Parent scripts can cleanly capture the response:
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 聊天對話中執行。
hermes model
適用於以下情境:
- 新增供應商(OpenRouter、Anthropic、Copilot、DeepSeek、自訂等)
- 登入支援 OAuth 的供應商(Anthropic、Copilot、Codex、Nous Portal)
- 輸入或更新 API 金鑰
- 從供應商專屬模型清單中選擇
- 設定自訂/自架端點
- 將新的預設值儲存至設定檔
注意 — hermes model 與 /model 的差異
hermes model(從你的終端機執行,在任何 Hermes 對話之外)是完整的供應商設定精靈。它可以新增供應商、執行 OAuth 流程、提示輸入 API 金鑰,並設定端點。
/model(在活躍的 Hermes 聊天對話中輸入)只能在你已設定的供應商和模型之間切換。它無法新增供應商、執行 OAuth 或提示輸入 API 金鑰。如果需要新增供應商: 先退出你的 Hermes 對話(
Ctrl+C或/quit),然後從終端機提示中執行hermes model。
/model 斜線指令(對話中)
在不離開對話的情況下切換已設定的模型:
/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 的變更僅適用於目前對話。加上 --global 可將變更持久化至 config.yaml:
/model claude-sonnet-4 --global # 切換並儲存為新預設值
資訊 — 如果只看到 OpenRouter 模型怎麼辦?
如果你只設定了 OpenRouter,
/model只會顯示 OpenRouter 模型。要新增其他供應商(Anthropic、DeepSeek、Copilot 等),請退出對話並從終端機執行hermes model。
供應商和 base URL 的變更會自動持久化至 config.yaml。切換離開自訂端點時,過時的 base URL 會被清除以防止洩漏到其他供應商。
hermes gateway
hermes gateway <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
run | 在前景執行閘道。建議用於 WSL、Docker 和 Termux。 |
start | 啟動已安裝的 systemd/launchd 背景服務。 |
stop | 停止服務(或前景程序)。 |
restart | 重啟服務。 |
status | 顯示服務狀態。 |
list | 列出所有設定檔及其閘道是否正在執行(如有 PID 則一併顯示)。適用於並行執行多個設定檔時查看概覽。 |
install | 安裝為 systemd(Linux)或 launchd(macOS)背景服務。 |
uninstall | 移除已安裝的服務。 |
setup | 互動式訊息平台設定。 |
選項:
| 選項 | 說明 |
|---|---|
--all | 對 start / restart / stop:作用於所有設定檔的閘道,而非僅限活躍的 HERMES_HOME。適用於並行執行多個設定檔時,想在 hermes update 後全部重啟。 |
--no-supervise | 對 run:在 s6-overlay Docker 映像中,選擇不使用自動監控而採用 pre-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 FAQ。
hermes lsp
hermes lsp <subcommand>
管理 Language Server Protocol 整合。LSP 在背景執行真正的
語言伺服器(pyright、gopls、rust-analyzer、…),並將其診斷資訊
餵入 write_file 和 patch 使用的寫入後檢查。
受 git 工作區偵測限制 — LSP 僅在 cwd 或編輯的檔案位於 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 碼配對。
hermes slack
hermes slack manifest # 將 manifest 輸出至 stdout
hermes slack manifest --write # 寫入 ~/.hermes/slack-manifest.json
hermes slack manifest --slashes-only # 僅輸出 features.slash_commands 陣列
產生一個 Slack app manifest,將 COMMAND_REGISTRY 中的每個閘道命令
(/btw、/stop、/model、…)註冊為一等的
Slack 斜線指令 — 與 Discord 和 Telegram 功能對等。將
輸出貼到你的 Slack app 設定中,
https://api.slack.com/apps → 你的 app →
Features → App Manifest → Edit,然後 Save。如果範圍或斜線指令有變更,
Slack 會提示重新安裝。
| 標記 | 預設值 | 用途 |
|---|---|---|
--write [PATH] | stdout | 寫入檔案而非 stdout。裸 --write 寫入 $HERMES_HOME/slack-manifest.json。 |
--name NAME | Hermes | Slack 中的機器人顯示名稱。 |
--description DESC | 預設描述 | 在 Slack app 目錄中顯示的機器人描述。 |
--slashes-only | 關閉 | 僅輸出 features.slash_commands,用於合併至手動維護的 manifest。 |
在 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),因此作業腳本、排程任務、CI hook 和監控守護行程可以發送狀態更新,無需重新實作每個平台的 REST 客戶端。
對於使用 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:<本地路徑> 指令引用:
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 中引用的 xAI 模型(計劃於 2026 年 5 月 15 日淘汰),並(使用 --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]
多設定檔、多專案協作看板。每個安裝可承載多個看板(每個專案、儲存庫或領域一個);每個看板是一個獨立的佇列,有自己的 SQLite 資料庫和分派器範圍。新安裝會建立一個名為 default 的看板,其資料庫為 ~/.hermes/kanban.db(向後相容);額外的看板位於 ~/.hermes/kanban/boards/<slug>/kanban.db。閘道內建的分派器每次 tick 會掃描所有看板。
全域標記(適用於以下所有操作):
| 標記 | 用途 |
|---|---|
--board <slug> | 操作特定看板。預設為目前看板(透過 hermes kanban boards switch、HERMES_KANBAN_BOARD 環境變數或 default 設定)。 |
這是人類/腳本化操作介面。 分派器產生的代理工作者透過專屬的 kanban_* 工具集(kanban_show、kanban_complete、kanban_block、kanban_create、kanban_link、kanban_comment、kanban_heartbeat;協調器設定檔還會有 kanban_list 和 kanban_unblock)驅動看板,而非透過 shell 執行 hermes kanban。工作者的環境中釘選了 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>" | 附加註解。下一個認領該任務的工作者會在其 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> | 列出工作者會看到的完整上下文(標題 + 內文 + 父任務結果 + 註解)。 |
specify <id> / specify --all | 透過輔助 LLM 將分派欄任務具體化為規格(標題 + 內文含目標、方法、驗收標準),然後提升至 todo。標記:--tenant(將 --all 限定於一個租戶)、--author、--json。在 config.yaml 的 auxiliary.triage_specifier 下設定模型。 |
decompose <id> / decompose --all | 將分派欄任務展開為子任務圖,按描述路由至專業設定檔。當 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>
管理事件驅動代理觸發的動態 webhook 訂閱。需要在設定中啟用 webhook 平台 — 如未設定,會顯示設定指示。
| 子指令 | 說明 |
|---|---|
subscribe / add | 建立 webhook 路由。回傳 URL 和 HMAC 密鑰,用於在你的服務上設定。 |
list / ls | 顯示所有代理建立的訂閱。 |
remove / rm | 刪除動態訂閱。設定檔中的靜態路由不受影響。 |
test | 傳送測試 POST 以驗證訂閱是否正常運作。 |
hermes webhook subscribe
hermes webhook subscribe <name> [options]
| 選項 | 說明 |
|---|---|
--prompt | 包含 {dot.notation} payload 引用的提示範本。 |
--events | 逗號分隔的事件類型(例如 issues,pull_request)。空值 = 全部。 |
--description | 人類可讀的描述。 |
--skills | 逗號分隔的技能名稱,用於代理執行時載入。 |
--deliver | 傳送目標:log(預設)、telegram、discord、slack、github_comment。 |
--deliver-chat-id | 跨平台傳送的目標聊天/頻道 ID。 |
--secret | 自訂 HMAC 密鑰。省略時自動產生。 |
--deliver-only | 跳過代理 — 將渲染後的 --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 版本 |
| 身分 | 活躍設定檔名稱、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 版本)、近期代理和閘道日誌(每個檔案 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 設定、技能、對話和資料的 zip 壓縮檔。備份不包含 hermes-agent 程式碼本身。
| 選項 | 說明 |
|---|---|
-o, --output <path> | zip 檔案的輸出路徑(預設:~/hermes-backup-<timestamp>.zip)。 |
-q, --quick | 快速快照:僅包含關鍵狀態檔案(config.yaml、state.db、.env、auth、cron jobs)。比完整備份快得多。 |
-l, --label <name> | 快照標籤(僅與 --quick 一起使用)。 |
備份使用 SQLite 的 backup() API 進行安全複製,因此即使 Hermes 正在執行也能正確運作(WAL 模式安全)。
zip 中排除的內容:
*.db-wal、*.db-shm、*.db-journal— SQLite 的 WAL / 共用記憶體 / 日誌側車檔案。*.db檔案已透過sqlite3.backup()取得一致快照;與其一起打包即時側車檔案會讓還原看到半提交的狀態。checkpoints/— 每個對話的軌跡快取。以雜湊鍵值化且每個對話重新產生;無法完整移殖到其他安裝。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 儲存 — 這是對話中 /rollback 指令的儲存層。可隨時安全執行;不需要代理正在執行。
| 子指令 | 說明 |
|---|---|
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。
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>/logs/)。
日誌檔案
| 名稱 | 檔案 | 記錄內容 |
|---|---|---|
agent(預設) | agent.log | 所有代理活動 — API 呼叫、工具分派、對話生命週期(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
# 按特定對話篩選
hermes logs --session abc123
# 從 30 分鐘前開始追蹤 errors.log
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]
報告全新對話的固定提示預算 — 在任何對話內容之前,每次 API 呼叫都會發送的內容。適用於下游適配器或代理的提示預算比模型的上下文視窗更緊湊時,或想查看哪個區塊(技能索引、記憶、設定檔)佔比最大。
它會建立代理會使用的相同系統提示,然後進行分解:
- 系統提示總計 — 完整組裝的提示(身分、指引、技能 索引、上下文檔案、記憶、設定檔、時間戳)。
- 技能索引 —
<available_skills>區塊。當安裝了大量技能時, 這通常是最大的單一區塊。 - 記憶和使用者設定檔 — 你的
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 | 取消釘選被標記為 user_modified 的內建技能,清除其 manifest 項目。加上 --restore 也會將使用者副本替換回內建版本。 |
opt-out | 停止將內建技能植入活躍設定檔。寫入 .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 架構和行為請參閱技能套件。
子指令:
| 子指令 | 說明 |
|---|---|
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
在聊天對話中,/bundles 列出已安裝的套件,/<bundle-name> 載入一個。
hermes curator
hermes curator <subcommand>
Curator 是一個輔助模型背景任務,定期檢視代理建立的技能、修剪過時的技能、整合重疊的部分,並封存過時的技能。內建和 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 時立即進行整理。在此之前使用 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 腳本 hook,使用合成 payload 測試它們,並管理 ~/.hermes/shell-hooks-allowlist.json 中的首次使用同意白名單。
| 子指令 | 說明 |
|---|---|
list(別名:ls) | 列出已設定的 hook 及其匹配器、逾時和同意狀態 |
test <event> | 使用合成 payload 觸發所有匹配 <event> 的 hook |
revoke(別名:remove、rm) | 移除命令的白名單項目(下次重啟時生效) |
doctor | 檢查每個已設定的 hook:exec 權限、白名單、mtime 漂移、JSON 有效性和合成執行計時 |
事件簽名和 payload 格式請參閱 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 伺服器執行 — 對其他代理暴露對話。 |
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 是安裝
cua-driver 二進位檔案的穩定入口點,
供 computer_use 工具集使用。它執行與 hermes tools
在你首次啟用 Computer Use 時呼叫的相同上游安裝程式,因此可以安全地
用於在工具集切換未觸發安裝時重新執行(例如在回訪使用者設定中)。
hermes update 會在更新結束時自動重新執行上游安裝程式(如果 cua-driver 在 PATH 上),因此大多數使用者不需要
手動呼叫 --upgrade。當上游發佈了你想要立即取得的修復而不想等待下一次 Hermes 更新時使用它。
hermes sessions
hermes sessions <subcommand>
子指令:
| 子指令 | 說明 |
|---|---|
list | 列出近期對話。 |
browse | 互動式對話選擇器,支援搜尋和恢復。 |
export <output> [--session-id ID] | 將對話匯出為 JSONL。 |
delete <session-id> | 刪除一個對話。 |
prune | 刪除舊對話。 |
stats | 顯示對話儲存統計。 |
rename <session-id> <title> | 設定或變更對話標題。 |
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+ 個類別,包括角色、記憶、技能、模型供應商、訊息平台、代理行為、對話策略、MCP 伺服器、TTS 等。項目會被直接匯入至 Hermes 對應項或封存以供手動審查。
直接匯入: SOUL.md、MEMORY.md、USER.md、AGENTS.md、技能(4 個來源目錄)、預設模型、自訂供應商、MCP 伺服器、訊息平台 token 和白名單(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、代理預設值(推理強度、壓縮、人類延遲、時區、沙箱)、對話重置策略、核准規則、TTS 設定、瀏覽器設定、工具設定、exec 逾時、命令白名單、閘道設定,以及來自 3 個來源的 API 金鑰。
封存以供手動審查: 排程工作、外掛、hook/webhook、記憶後端(QMD)、技能登錄設定、UI/身分、日誌、多代理設定、頻道綁定、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]
啟動網頁控制面板 — 用於管理設定、API 金鑰和監控對話的瀏覽器 UI。需要 pip install hermes-agent[web](FastAPI + Uvicorn)。內建瀏覽器的聊天分頁始終可用,另外需要 pty 附加元件(pip install 'hermes-agent[web,pty]')以及 POSIX PTY 環境(如 Linux、macOS 或 WSL2)。完整文件請參閱網頁控制面板。
| 選項 | 預設值 | 說明 |
|---|---|---|
--port | 9119 | Web 伺服器執行的連接埠 |
--host | 127.0.0.1 | 綁定位址 |
--no-open | — | 不自動開啟瀏覽器 |
--insecure | 關閉 | 允許綁定非 localhost 主機。在網路上暴露控制面板憑證;僅在可信網路控制後使用。 |
--isolated | 關閉 | 從命名設定檔啟動時(worker dashboard),執行專屬的按設定檔伺服器而非路由至機器控制面板。 |
--stop | — | 停止執行中的 hermes dashboard 程序並離開。 |
--status | — | 列出執行中的 hermes dashboard 程序並離開。 |
# 預設 — 開啟瀏覽器至 http://127.0.0.1:9119
hermes dashboard
# 自訂連接埠,不開瀏覽器
hermes dashboard --port 8080 --no-open
# 從設定檔別名 — 路由至機器控制面板,在側邊欄切換器中
# 預選該設定檔(執行中則連線)
worker dashboard
hermes profile
hermes profile <subcommand>
管理設定檔 — 多個隔離的 Hermes 實例,每個都有自己的設定、對話、技能和主目錄。
| 子指令 | 說明 |
|---|---|
list | 列出所有設定檔。 |
use <name> | 設定固定的預設設定檔。 |
create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias] | 建立新設定檔。--clone 從活躍設定檔複製設定、.env、SOUL.md 和技能。--clone-all 複製所有狀態。--clone-from 指定來源設定檔,隱含設定複製(除非搭配 --clone-all)。 |
delete <name> [-y] | 刪除設定檔。 |
show <name> | 顯示設定檔詳細資訊(主目錄、設定等)。 |
alias <name> [--remove] [--name NAME] | 管理用於快速存取設定檔的包裝腳本。 |
rename <old> <new> | 重新命名設定檔。 |
export <name> [-o FILE] | 將設定檔匯出為 .tar.gz 封存(本機備份)。 |
import <archive> [--name NAME] | 從 .tar.gz 封存匯入設定檔(本機還原)。 |
install <source> [--name N] [--alias] [--force] [-y] | 從 git URL 或本機目錄安裝設定檔發行版。 |
update <name> [--force-config] [-y] | 重新拉取發行版;保留使用者資料(記憶、對話、認證)。 |
info <name> | 顯示設定檔的發行版 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 設定檔中 source 輸出以取得 Hermes 指令、子指令和設定檔名稱的 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 可能在拉取前切換到更新分支。在更新前提交分支工作,如果你想將其保留在更新自動 stash 流程之外。
| 選項 | 說明 |
|---|---|
--gateway | 訊息 /update 指令使用的內部模式。使用基於檔案的 IPC 進行提示和進度串流,而非從終端 stdin 讀取。不是閘道重啟標記。 |
--check | 檢查是否有可用更新,不拉取、不安裝相依性、不重啟任何東西。 |
--no-backup | 跳過本次執行的更新前備份,即使 config.yaml 中啟用了 updates.pre_update_backup。 |
--backup | 在拉取前建立帶標籤的 HERMES_HOME 更新前快照(設定、認證、對話、技能、配對資料)。預設為關閉 — 之前的始終備份行為在大型主目錄上會增加數分鐘的更新時間。透過 config.yaml 中的 updates.pre_update_backup: true 永久開啟。 |
--yes, -y | 對互動式提示假設為是,例如設定遷移和 stash 還原。跳過 API 金鑰輸入;需要時另行執行 hermes config migrate。 |
額外行為:
- 閘道重啟。 成功更新後,Hermes 會嘗試自動重啟所有執行中的閘道設定檔以取得新程式碼。想要重啟閘道但不套用更新時,請使用
hermes gateway restart。 - 本機來源變更。 對於 git 安裝,分支切換或拉取前會自動 stash 有變更的已追蹤檔案和未追蹤檔案(
git stash push --include-untracked)。互動式終端更新會在還原 stash 前詢問。非互動式更新預設會還原;僅在管理安裝上設定updates.non_interactive_local_changes: discard,使本機來源編輯在成功拉取後被丟棄。如果 stash 還原衝突或拉取失敗,stash 會保留供手動恢復。 - npm lockfile 變動。 在 stash 或切換分支前,Hermes 會盡最大努力清理 npm install/build 步驟產生的已追蹤
package-lock.json差異。在執行hermes update前提交或手動 stash 有意的 lockfile 編輯。 - 配對資料快照。 即使
--backup關閉,hermes update也會在git pull前對~/.hermes/pairing/和 Feishu 評論規則進行輕量級快照。如果拉取重寫了你正在編輯的檔案,你可以使用hermes backup restore --state pre-update還原。 - 舊版
hermes.service警告。 如果 Hermes 偵測到更名前的hermes.servicesystemd 單元(而非目前的hermes-gateway.service),它會顯示一次性的遷移提示以避免震盪迴圈問題。 - 退出碼。 成功為
0,拉取/安裝/安裝後錯誤為1,阻擋git pull的意外工作區變更為2。
維護指令
| 指令 | 說明 |
|---|---|
hermes version | 列出版本資訊。 |
hermes update | 拉取最新變更並重新安裝相依性。 |
hermes postinstall | 內部引導程式。在 pip install hermes-agent(或 pip 安裝的 hermes update)後執行一次,安裝 pip 無法提供的非 Python 相依性 — Node.js 執行時、無頭瀏覽器、ripgrep、ffmpeg — 然後在設定檔尚未設定時觸發 hermes setup。可安全地以幂等方式重新執行。 |
hermes uninstall [--full] [--gui] [--yes] | 移除 Hermes,選擇性刪除所有設定/資料。--gui 僅移除桌面聊天 GUI,保留代理完整;--full 同時刪除設定/資料;--yes 跳過提示。 |