ByteNoteByteNote

字节笔记本

2026年6月22日

hermes教程-CLI 命令参考

API中转
¥120

全局入口点

bash
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 工作树中启动,用于并行代理工作流。
--yolo绕过危险命令的批准提示。
--pass-session-id将会话 ID 包含在代理的系统提示中。
--ignore-user-config忽略 ~/.hermes/config.yaml,回退到内置默认值。仍会加载 .env 中的凭据。
--ignore-rules跳过 AGENTS.mdSOUL.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管理语言服务器协议集成(write_file/patch 的语义诊断)。
hermes setup全部或部分配置的交互式设置向导。
hermes whatsapp配置并配对 WhatsApp 桥接。
hermes slackSlack 辅助工具(当前:生成应用清单,每个命令作为原生斜杠命令)。
hermes auth管理凭据 — 添加、列出、删除、重置、设置策略。处理 Codex/Nous/Anthropic 的 OAuth 流程。
hermes login / logout已弃用 — 改用 hermes auth
hermes send向已配置的消息平台发送一次性消息(Telegram、Discord、Slack、Signal、SMS 等)。适用于 shell 脚本、cron 作业、CI 钩子和监控守护进程 — 无代理循环,无 LLM。
hermes secrets管理外部密钥源(当前为 Bitwarden Secrets Manager),用于在进程启动时拉取 API 密钥,而不是从 ~/.hermes/.env 中读取。
hermes migrate诊断并(可选)重写 config.yaml,替换对已退役模型或已弃用设置的引用(例如 migrate xai)。
hermes status显示代理、认证和平台状态。
hermes cron检查并触发 cron 调度器。
hermes kanban多配置文件协作看板(任务、链接、调度器)。
hermes webhook管理用于事件驱动激活的动态 webhook 订阅。
hermes hooks检查、批准或删除在 config.yaml 中声明的 shell 脚本钩子。
hermes doctor诊断配置和依赖问题。
hermes security audit按需供应链审计(OSV.dev),针对 venv、插件需求和固定的 MCP 服务器。
hermes dump可复制粘贴的设置摘要,用于支持/调试。
hermes prompt-size显示系统提示 + 工具模式(技能索引、内存、配置文件)的字节分解。离线运行。
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后台技能维护 — 状态、运行、暂停、固定。参见 策展人
hermes memory配置外部内存提供商。特定插件的子命令(例如 hermes honcho)在其提供商激活时自动注册。
hermes acp将 Hermes 作为 ACP 服务器运行,用于编辑器集成。
hermes mcp管理 MCP 服务器配置,并将 Hermes 作为 MCP 服务器运行。
hermes plugins管理 Hermes Agent 插件(安装、启用、禁用、删除)。
hermes portalNous Portal 状态、订阅链接和工具网关路由。参见 工具网关
hermes tools按平台配置启用的工具。
hermes computer-use安装或检查 cua-driver 后端(macOS 计算机使用)。
hermes sessions浏览、导出、修剪、重命名和删除会话。
hermes insights显示令牌/成本/活动分析。
hermes clawOpenClaw 迁移辅助工具。
hermes dashboard启动 Web 仪表板,用于管理配置、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

bash
hermes chat [options]

常用选项:

选项描述
-q, --query "..."一次性、非交互式提示。
-m, --model <model>覆盖本次运行的模型。
-t, --toolsets <csv>启用逗号分隔的工具集集合。
--provider <provider>强制指定提供商:autoopenrouternousopenai-codexcopilot-acpcopilotanthropicgeminigoogle-gemini-clihuggingfacenovita(别名 novita-ainovitaai)、openai-apizaikimi-codingkimi-coding-cnminimaxminimax-cnminimax-oauthkilocodexiaomiarceegmialibabaalibaba-coding-plan(别名 alibaba_coding)、deepseeknvidiaollama-cloudxai(别名 grok)、xai-oauth(别名 grok-oauth)、qwen-oauthbedrockopencode-zenopencode-goazure-foundrylmstudiostepfuntencent-tokenhub(别名 tencenttokenhub)。
-s, --skills <name>为会话预加载一个或多个技能(可重复或逗号分隔)。
-v, --verbose详细输出。
-Q, --quiet程序化模式:抑制横幅/旋转器/工具预览。
--image <path>将本地图像附加到单个查询。
--resume <session> / --continue [name]直接从 chat 恢复会话。
--worktree为此运行创建隔离的 git 工作树。
--checkpoints在破坏性文件更改前启用文件系统检查点。
--yolo跳过批准提示。
--pass-session-id将会话 ID 传递到系统提示中。
--ignore-user-config忽略 ~/.hermes/config.yaml 并使用内置默认值。仍会加载 .env 中的凭据。适用于隔离的 CI 运行、可重现的错误报告和第三方集成。
--ignore-rules跳过 AGENTS.mdSOUL.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)。

示例:

bash
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、cron、通过管道传入提示的父进程),hermes -z 是最纯粹的一次性入口点:单个提示输入,最终响应文本输出,stdout 和 stderr 上无其他内容。 无横幅、无旋转器、无工具预览、无 Session: 行 — 只有代理的最终回复作为纯文本。

bash
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>(无)覆盖本次运行的提供商
bash
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 聊天会话内部运行。

bash
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 斜杠命令(会话中)

在不离开会话的情况下在已配置的模型之间切换:

text
/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

提供商和基础 URL 更改会自动持久化到 config.yaml。当从自定义端点切换时,过时的基础 URL 会被清除,以防止泄漏到其他提供商。

hermes gateway

bash
hermes gateway <subcommand>

子命令:

子命令描述
run在前台运行网关。推荐用于 WSL、Docker 和 Termux。
start启动已安装的 systemd/launchd 后台服务。
stop停止服务(或前台进程)。
restart重启服务。
status显示服务状态。
list列出所有配置文件以及每个配置文件的网关是否正在运行(如果可用,显示 PID)。当您并排运行多个配置文件并希望获得单一概览时非常方便。
install安装为 systemd(Linux)或 launchd(macOS)后台服务。
uninstall删除已安装的服务。
setup交互式消息平台设置。

选项:

选项描述
--allstart / restart / stop 上:作用于每个配置文件的网关,而不仅仅是活跃的 HERMES_HOME。如果您并排运行多个配置文件并希望在 hermes update 后全部重启,则很有用。
--no-superviserun 上:在 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 常见问题

hermes lsp

bash
hermes lsp <subcommand>

管理语言服务器协议集成。LSP 在后台运行真正的语言服务器(pyright、gopls、rust-analyzer 等),并将其诊断结果输入到 write_filepatch 使用的写入后检查中。受 git 工作区检测限制 — LSP 仅在当前工作目录或编辑的文件位于 git 工作树内时运行。

子命令:

子命令描述
status显示服务状态、已配置的服务器、安装状态。
list打印支持的服务器注册表。传递 --installed-only 以跳过缺失的服务器。
install <id>主动安装一个服务器的二进制文件。
install-all安装每个具有已知自动安装配方的服务器。
restart拆除正在运行的客户端,以便下次编辑时重新生成。
which <id>打印一个服务器的已解析二进制路径。

有关完整指南、支持的语言和配置选项,请参阅 LSP — 语义诊断

hermes setup

bash
hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure] [--portal]

最简单的路径: hermes setup --portal — 通过 OAuth 登录 Nous Portal 并一次性选择加入工具网关

首次运行: 启动首次向导。

返回用户(已配置): 直接进入完整重新配置向导 — 每个提示都显示当前值作为默认值,按 Enter 保留或输入新值。无菜单。

跳转到某个部分而不是完整向导:

部分描述
model提供商和模型设置。
terminal终端后端和沙箱设置。
gateway消息平台设置。
tools按平台启用/禁用工具。
agent代理行为设置。

选项:

选项描述
--quick在返回用户运行时:仅提示缺失或未设置的项目。跳过您已配置的项目。
--non-interactive使用默认值/环境值,无需提示。
--reset在设置前将配置重置为默认值。
--reconfigure向后兼容别名 — 现在裸 hermes setup 在现有安装上默认执行此操作。
--portal一次性 Nous Portal 设置:通过 OAuth 登录,将 Nous 设置为推理提供商,并选择加入工具网关。跳过向导的其余部分。

hermes portal

bash
hermes portal [status|open|tools]

检查 Nous Portal 认证、工具网关路由并访问订阅页面。无子命令调用运行 status

子命令描述
status(默认)Portal 认证状态 + 每个工具的工具网关路由摘要。未提供子命令时也显示。
open在默认浏览器中打开 portal.nousresearch.com/manage-subscription
tools列出每个工具网关合作伙伴(Firecrawl、FAL、OpenAI TTS、Browser Use、Modal)以及哪些通过 Nous 路由。

有关网关本身的配置,请参阅工具网关。有关一次性设置路径,请参阅上面的 hermes setup --portal

hermes whatsapp

bash
hermes whatsapp

运行 WhatsApp 配对/设置流程,包括模式选择和二维码配对。

hermes slack

bash
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 NAMEHermesSlack 中的机器人显示名称。
--description DESC默认描述Slack 应用目录中显示的机器人描述。
--slashes-only关闭仅输出 features.slash_commands,用于合并到手动维护的清单中。

hermes update 后再次运行 hermes slack manifest --write 以获取任何新命令。

hermes send

bash
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 作业、CI 钩子和监控守护进程可以发布状态更新,而无需重新实现每个平台的 REST 客户端。

对于机器人令牌平台(Telegram、Discord、Slack、Signal、SMS、WhatsApp-CloudAPI),无需运行网关 — hermes send 直接与平台的 REST 端点通信。需要持久适配器的插件平台仍然需要实时网关。

选项描述
-t, --to <TARGET>投递目标。格式:platform(使用主频道)、platform:chat_idplatform:chat_id:thread_idplatform:#channel-name。示例:telegramtelegram:-1001234567890discord:#opsslack:C0123ABCDsignal:+15551234567
-f, --file <PATH>PATH 读取消息正文(仅文本文件 — 日志、报告、markdown)。传递 - 以强制从 stdin 读取。要发送图像或其他二进制文件,请使用 MEDIA:<path>(见下文)。
-s, --subject <LINE>在消息正文前添加主题/标题行。
-l, --list [platform]列出所有平台(或仅给定平台)的已配置目标。
-q, --quiet成功时抑制 stdout — 在脚本中有用(仅依赖退出代码)。
--json输出原始 JSON 结果而不是人类可读的输出。

如果既没有提供位置参数 message 也没有提供 --file,则当 stdin 不是 TTY 时,hermes send 从 stdin 读取。退出代码:0 成功,1 投递/后端失败,2 使用错误。

发送图像和其他媒体

--file 仅用于文本正文。要将图像、文档、视频或音频文件作为原生平台附件投递,请在消息文本中使用 MEDIA:<local_path> 指令引用它:

bash
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]] 以将其作为未压缩的文件附件投递:

bash
hermes send --to telegram "[[as_document]] MEDIA:/tmp/screenshot.png"

示例:

bash
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

bash
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

bash
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

bash
hermes proxy <subcommand>

运行一个本地 OpenAI 兼容的 HTTP 服务器,将请求转发到 OAuth 认证的上游提供商(例如 Nous Portal、xAI)。外部应用可以使用任何承载令牌指向代理;代理在出口时附加您的真实 OAuth 凭据。请参阅订阅代理获取完整指南。

子命令描述
start在前台运行代理。标志:`--provider <nous
status显示哪些代理上游已就绪(凭据存在,OAuth 有效)。
providers列出可用的代理上游提供商。

hermes security

bash
hermes security <subcommand>

按需漏洞扫描,针对 OSV.dev。涵盖 Hermes venv(已安装的 PyPI 发行版)、~/.hermes/plugins/ 下插件声明的 Python 依赖项,以及 config.yaml 中固定的 npx/uvx MCP 服务器。不扫描全局安装的包或编辑器/浏览器扩展。

子命令描述
audit运行一次性供应链审计。

audit 标志:

标志默认值描述
--json关闭输出机器可读的 JSON 而不是人类可读的文本。
--fail-on <level>critical当任何发现达到此严重级别时以非零退出(lowmoderatehighcritical)。
--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

管理同一提供商密钥轮换的凭据池。请参阅凭据池获取完整文档。

bash
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

子命令:addlistremoveresetstatuslogoutspotify。当无子命令调用时,启动交互式管理向导。

hermes status

bash
hermes status [--all] [--deep]
选项描述
--all以可共享的编辑格式显示所有详细信息。
--deep运行可能需要更长时间的深度检查。

hermes cron

bash
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在下一个调度器滴答时触发任务。
remove删除计划任务。
status检查 cron 调度器是否正在运行。
tick运行到期任务一次并退出。

hermes kanban

bash
hermes kanban [--board <slug>] <action> [options]

多配置文件、多项目协作看板。每个安装可以托管多个看板(每个项目、仓库或域一个);每个看板都是一个独立的队列,拥有自己的 SQLite 数据库和调度器范围。新安装从一个名为 default 的看板开始,其数据库为 ~/.hermes/kanban.db(为了向后兼容);其他看板位于 ~/.hermes/kanban/boards/<slug>/kanban.db。网关嵌入的调度器在每个滴答时扫描所有看板。

全局标志(适用于以下所有操作):

标志用途
--board <slug>在特定看板上操作。默认为当前看板(通过 hermes kanban boards switchHERMES_KANBAN_BOARD 环境变量或 default 设置)。

这是人类/脚本接口。 由调度器生成的工作代理通过专用的 kanban_* 工具集kanban_showkanban_completekanban_blockkanban_createkanban_linkkanban_commentkanban_heartbeat;编排器配置文件还获得 kanban_listkanban_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.yamlauxiliary.triage_specifier 下配置模型。
decompose <id> / decompose --all将分诊列中的任务展开为子任务图,根据描述路由到专业配置文件。当 LLM 确定任务不需要展开时,回退到 specify 风格的单任务提升。与 specify 相同的标志。在 config.yamlauxiliary.kanban_decomposer 下配置分解器模型;kanban.orchestrator_profile 仅控制展开后谁拥有根/编排任务。当 kanban.auto_decompose: true(默认)时,也会在每个调度器滴答时自动运行。请参阅自动与手动编排
gc删除已归档任务的临时工作区。

示例:

bash
## 创建第二个看板并在其上放置任务,无需切换。
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看板用户指南

hermes webhook

bash
hermes webhook <subscribe|list|remove|test>

管理用于事件驱动代理激活的动态 webhook 订阅。需要在配置中启用 webhook 平台 — 如果未配置,则打印设置说明。

子命令描述
subscribe / add创建 webhook 路由。返回要在服务上配置的 URL 和 HMAC 密钥。
list / ls显示所有代理创建的订阅。
remove / rm删除动态订阅。config.yaml 中的静态路由不受影响。
test发送测试 POST 以验证订阅是否正常工作。

hermes webhook subscribe

bash
hermes webhook subscribe <name> [options]
选项描述
--prompt包含 {dot.notation} 负载引用的提示模板。
--events逗号分隔的要接受的事件类型(例如 issues,pull_request)。空 = 全部。
--description人类可读的描述。
--skills逗号分隔的要在代理运行中加载的技能名称。
--deliver投递目标:log(默认)、telegramdiscordslackgithub_comment
--deliver-chat-id跨平台投递的目标聊天/频道 ID。
--secret自定义 HMAC 密钥。如果省略则自动生成。
--deliver-only跳过代理 — 将渲染后的 --prompt 作为文字消息投递。零 LLM 成本,亚秒级投递。要求 --deliver 是真实目标(不是 log)。

订阅持久化到 ~/.hermes/webhook_subscriptions.json,并由 webhook 适配器热加载,无需重启网关。

hermes doctor

bash
hermes doctor [--fix]
选项描述
--fix尽可能尝试自动修复。

hermes dump

bash
hermes dump [--show-keys]

输出整个 Hermes 设置的紧凑纯文本摘要。设计用于在寻求支持时复制粘贴到 Discord、GitHub 问题或 Telegram — 无 ANSI 颜色、无特殊格式,只有数据。

选项描述
--show-keys显示编辑后的 API 密钥前缀(前 4 个和后 4 个字符),而不是仅显示 set/not set

包含的内容

部分详细信息
头部Hermes 版本、发布日期、git 提交哈希
环境操作系统、Python 版本、OpenAI SDK 版本
身份活跃配置文件名称、HERMES_HOME 路径
模型配置的默认模型和提供商
终端后端类型(local、docker、ssh 等)
API 密钥所有 22 个提供商/工具 API 密钥的存在性检查
功能启用的工具集、MCP 服务器数量、内存提供商
服务网关状态、已配置的消息平台
工作负载cron 任务计数、已安装技能数量
配置覆盖与默认值不同的任何配置值

示例输出

text
--- 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 上报告错误 — 将转储粘贴到您的问题中
  • 在 Discord 中寻求帮助 — 在代码块中分享
  • 将您的设置与其他人进行比较
  • 当某些东西不工作时快速进行合理性检查

提示

hermes dump 专门设计用于共享。对于交互式诊断,请使用 hermes doctor。对于视觉概览,请使用 hermes status

hermes debug

bash
hermes debug share [options]

将调试报告(系统信息 + 最近的日志)上传到粘贴服务并获取可共享的 URL。对于快速支持请求很有用 — 包含帮助者诊断问题所需的一切。

选项描述
--lines <N>每个日志文件包含的日志行数(默认:200)。
--expire <days>粘贴过期天数(默认:7)。
--local在本地打印报告而不是上传。

报告包括系统信息(操作系统、Python 版本、Hermes 版本)、最近的代理和网关日志(每个文件 512 KB 限制)以及编辑后的 API 密钥状态。密钥始终被编辑 — 不会上传任何秘密。

尝试的粘贴服务顺序:paste.rs、dpaste.com。

示例

bash
hermes debug share              # 上传调试报告,打印 URL
hermes debug share --lines 500  # 包含更多日志行
hermes debug share --expire 30  # 将粘贴保留 30 天
hermes debug share --local      # 将报告打印到终端(不上传)

hermes backup

bash
hermes backup [options]

创建 Hermes 配置、技能、会话和数据的 zip 存档。备份排除 hermes-agent 代码库本身。

选项描述
-o, --output <path>zip 文件的输出路径(默认:~/hermes-backup-<timestamp>.zip)。
-q, --quick快速快照:仅关键状态文件(config.yaml、state.db、.env、auth、cron 任务)。比完整备份快得多。
-l, --label <name>快照的标签(仅与 --quick 一起使用)。

备份使用 SQLite 的 backup() API 进行安全复制,因此即使 Hermes 正在运行也能正常工作(WAL 模式安全)。

从 zip 中排除的内容:

  • *.db-wal*.db-shm*.db-journal — SQLite 的 WAL / 共享内存 / 日志侧车文件。*.db 文件已通过 sqlite3.backup() 获得一致快照;将实时侧车文件一起打包会让恢复看到半提交状态。
  • checkpoints/ — 每个会话的轨迹缓存。按哈希键控,每个会话重新生成;无论如何都无法干净地移植到另一个安装。
  • hermes-agent 代码本身(这是用户数据备份,不是仓库快照)。

示例

bash
hermes backup                           # 完整备份到 ~/hermes-backup-*.zip
hermes backup -o /tmp/hermes.zip        # 完整备份到特定路径
hermes backup --quick                   # 仅快速状态快照
hermes backup --quick --label "pre-upgrade"  # 带标签的快速快照

hermes checkpoints

bash
hermes checkpoints [COMMAND]

检查和管理 ~/.hermes/checkpoints/ 处的影子 git 存储 — 会话内 /rollback 命令背后的存储层。随时安全运行;不需要代理正在运行。

子命令描述
status(默认)显示总大小、项目计数和每个项目的细分。裸 hermes checkpoints 等效。
liststatus 的别名。
prune强制清理 — 删除孤立和过时的项目,GC 存储,强制执行大小上限。忽略 24 小时幂等标记。
clear删除整个检查点基础。不可逆;除非使用 -f,否则要求确认。
clear-legacy仅删除 v1→v2 迁移产生的 legacy-<timestamp>/ 存档。

选项

选项子命令描述
--limit Nstatuslist最大列出项目数(默认 20)。
--retention-days Nprune删除 last_touch 早于 N 天的项目(默认 7)。
--max-size-mb Nprune在孤立/过时传递之后,删除每个项目最旧的提交,直到总存储大小 ≤ N MB(默认 500)。
--keep-orphansprune跳过删除其工作目录不再存在的项目。
-f, --forceclearclear-legacy跳过确认提示。

示例

bash
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                         # 擦除所有内容

请参阅检查点和 /rollback 了解完整架构和会话内命令。

hermes import

bash
hermes import <zipfile> [options]

将先前创建的 Hermes 备份恢复到您的 Hermes 主目录中。存档中的所有文件都会覆盖 Hermes 主目录中的现有文件;--force 仅跳过当目标已有 Hermes 安装时触发的确认提示。

选项描述
-f, --force跳过现有安装确认提示。

警告

在导入之前停止网关,以避免与正在运行的进程发生冲突。

示例

bash
hermes import ~/hermes-backup-20260423.zip           # 覆盖现有配置前提示
hermes import ~/hermes-backup-20260423.zip --force   # 无提示覆盖

hermes logs

bash
hermes logs [log_name] [options]

查看、跟踪和过滤 Hermes 日志文件。所有日志存储在 ~/.hermes/logs/ 中(对于非默认配置文件,存储在 <profile>/logs/ 中)。

日志文件

名称文件捕获内容
agent(默认)agent.log所有代理活动 — API 调用、工具调度、会话生命周期(INFO 及以上)
errorserrors.log仅警告和错误 — agent.log 的过滤子集
gatewaygateway.log消息网关活动 — 平台连接、消息调度、webhook 事件
guigui.log仪表板 / TUI 网关 / PTY 桥接 / websocket 事件
desktopdesktop.logElectron 桌面应用 — 启动、后端生成输出和最近的 Python 回溯

选项

选项描述
log_name要查看的日志:agent(默认)、errorsgatewaylist 以显示可用文件及其大小。
-n, --lines <N>要显示的行数(默认:50)。
-f, --follow实时跟踪日志,类似于 tail -f。按 Ctrl+C 停止。
--level <LEVEL>要显示的最低日志级别:DEBUGINFOWARNINGERRORCRITICAL
--session <ID>过滤包含会话 ID 子字符串的行。
--since <TIME>显示从相对时间之前开始的行:30m1h2d 等。支持 s(秒)、m(分钟)、h(小时)、d(天)。
--component <NAME>按组件过滤:gatewayagenttoolsclicron

示例

bash
## 查看 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
## 跟踪 errors.log,从 30 分钟前开始
hermes logs errors --since 30m -f
## 列出所有日志文件及其大小
hermes logs list

过滤

过滤器可以组合。当多个过滤器处于活动状态时,日志行必须通过所有过滤器才能显示:

bash
## 过去 2 小时内包含会话 "tg-12345" 的 WARNING+ 行
hermes logs --level WARNING --since 2h --session tg-12345

--since 处于活动状态时,包含没有可解析时间戳的行(它们可能是多行日志条目的延续行)。当 --level 处于活动状态时,包含没有可检测级别的行。

日志轮换

Hermes 使用 Python 的 RotatingFileHandler。旧日志会自动轮换 — 查找 agent.log.1agent.log.2 等。hermes logs list 子命令显示所有日志文件,包括轮换后的文件。

hermes prompt-size

bash
hermes prompt-size [--platform <name>] [--json]

报告新会话的固定提示预算 — 在任何对话内容之前每次 API 调用发送的内容。当下游适配器或代理的提示预算比模型的上下文窗口更紧,或者当您想查看哪个块(技能索引、内存、配置文件)占主导地位时很有用。

它构建与代理相同的系统提示,然后分解:

  • 系统提示总计 — 完整组装的提示(身份、指导、技能索引、上下文文件、内存、配置文件、时间戳)。
  • 技能索引<available_skills> 块。当安装了许多技能时,这通常是最大的单个块。
  • 内存用户配置文件 — 您的 MEMORY.md / USER.md 快照。
  • 提示层级 — 稳定 / 上下文 / 易失,匹配 Hermes 为缓存友好性分层提示的方式。
  • 工具模式 — 所有启用工具的 JSON(固定每次调用负载的另一半)。

完全离线运行 — 无 API 调用,无需配置凭据即可工作。

bash
## CLI 平台的人类可读分解(默认)
hermes prompt-size
## 模拟消息平台的提示(不同的平台提示)
hermes prompt-size --platform telegram
## 脚本的机器可读输出
hermes prompt-size --json

提示

技能索引和工具模式随您启用的技能和工具数量而扩展。要缩小提示,请禁用未使用的工具集(hermes tools)或卸载不需要的技能(hermes skills)。当前目录中的上下文文件(AGENTS.md、.cursorrules)也计入总数。

hermes config

bash
hermes config <subcommand>

子命令:

子命令描述
show显示当前配置值。
edit在编辑器中打开 config.yaml
set <key> <value>设置配置值。
path打印配置文件路径。
env-path打印 .env 文件路径。
check检查缺失或过时的配置。
migrate交互式添加新引入的选项。

hermes pairing

bash
hermes pairing <list|approve|revoke|clear-pending>
子命令描述
list显示待处理和已批准的用户。
approve <platform> <code>批准配对码。
revoke <platform> <user-id>撤销用户的访问权限。
clear-pending清除待处理的配对码。

hermes skills

bash
hermes skills <subcommand>

子命令:

子命令描述
browse技能注册表的分页浏览器。
search搜索技能注册表。
install安装技能。
inspect预览技能而不安装它。
list列出已安装的技能。
check检查已安装的中心技能是否有上游更新。
update当上游更改可用时重新安装中心技能。
audit重新扫描已安装的中心技能。
uninstall删除中心安装的技能。
reset通过清除清单条目来解除标记为 user_modified 的捆绑技能。使用 --restore 还会将用户副本替换为捆绑版本。
opt-out停止将捆绑技能种子到活跃配置文件中。写入 .no-bundled-skills 标记,以便安装程序、hermes update 和任何同步跳过捆绑技能种子。默认安全 — 不触及磁盘上的任何内容。使用 --remove 还会删除已存在的未修改的捆绑技能(用户编辑的、中心安装的和手写的技能永远不会被删除;先预览并确认,--yes 跳过)。
opt-in通过删除 .no-bundled-skills 标记来撤销 opt-out,以便在下次 hermes update 时再次种子捆绑技能。使用 --sync 立即重新种子。
publish将技能发布到注册表。
snapshot导出/导入技能配置。
tap管理自定义技能源。
config按平台交互式启用/禁用技能配置。

常见示例:

bash
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        # 当前置元数据没有名称时覆盖名称
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)://…/*.md URL 直接安装单文件 SKILL.md。当前置元数据没有 name: 且 URL slug 不是有效标识符时,交互式终端会提示输入名称;非交互式界面(TUI 内的 /skills install、网关平台)需要 --name <x>

hermes bundles

bash
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/ 并报告添加/删除的包

示例:

bash
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

bash
hermes curator <subcommand>

策展人是一个辅助模型后台任务,定期审查代理创建的技能,修剪过时的技能,合并重叠的技能,并归档过时的技能。捆绑和中心安装的技能永远不会被触及。归档可恢复;永远不会自动删除。

子命令描述
status显示策展人状态和技能统计信息
run立即触发策展人审查(阻塞直到 LLM 传递完成)
run --background在后台线程中启动 LLM 传递并立即返回
run --dry-run仅预览 — 生成审查报告,不进行任何更改
backup手动创建 ~/.hermes/skills/ 的 tar.gz 快照(策展人也会在每次实际运行前自动快照)
rollback从快照恢复 ~/.hermes/skills/(默认为最新)
rollback --list列出可用快照
rollback --id <ts>按 ID 恢复特定快照
rollback -y跳过确认提示
pause暂停策展人直到恢复
resume恢复暂停的策展人
pin <skill>固定技能,使策展人永远不会自动转换它
unpin <skill>取消固定技能
restore <skill>恢复已归档的技能
archive <skill>手动归档技能
prune手动修剪策展人通常会清理的技能
list-archived列出已归档的技能(可通过 restore 恢复)

在新安装上,第一次计划传递会延迟一个完整的 interval_hours(默认 7 天) — 网关不会在 hermes update 后的第一个滴答时立即策展。使用 hermes curator run --dry-run 在此之前预览。

请参阅策展人了解行为和配置。

hermes fallback

bash
hermes fallback <subcommand>

管理回退提供商链。当主模型因速率限制、过载或连接错误而失败时,按顺序尝试回退提供商。

子命令描述
list(别名:ls显示当前回退链(未提供子命令时的默认值)
add选择提供商 + 模型(与 hermes model 相同的选择器)并追加到链中
remove(别名:rm选择要从链中删除的条目
clear删除所有回退条目

请参阅回退提供商

hermes hooks

bash
hermes hooks <subcommand>

检查在 ~/.hermes/config.yaml 中声明的 shell 脚本钩子,针对合成负载进行测试,并管理 ~/.hermes/shell-hooks-allowlist.json 中的首次使用同意允许列表。

子命令描述
list(别名:ls列出已配置的钩子,包括匹配器、超时和同意状态
test <event>针对合成负载触发每个匹配 <event> 的钩子
revoke(别名:removerm删除命令的允许列表条目(下次重启生效)
doctor检查每个配置的钩子:执行位、允许列表、mtime 漂移、JSON 有效性和合成运行计时

请参阅钩子了解事件签名和负载形状。

hermes memory

bash
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

bash
hermes acp

将 Hermes 作为 ACP(Agent Client Protocol)stdio 服务器启动,用于编辑器集成。

相关入口点:

bash
hermes-acp
python -m acp_adapter

首先安装支持:

bash
pip install -e '.[acp]'

请参阅ACP 编辑器集成ACP 内部

hermes mcp

bash
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 配置参考将 MCP 与 Hermes 一起使用MCP 服务器模式

hermes plugins

bash
hermes plugins [subcommand]

统一插件管理 — 通用插件、内存提供商和上下文引擎集中管理。运行 hermes plugins 而不带子命令会打开一个复合交互式屏幕,包含两个部分:

  • 通用插件 — 多选复选框,用于启用/禁用已安装的插件
  • 提供商插件 — 用于内存提供商和上下文引擎的单选配置。在类别上按 ENTER 打开单选选择器。
子命令描述
(无)复合交互式 UI — 通用插件切换 + 提供商插件配置。
install <identifier> [--force]从 Git URL 或 owner/repo 安装插件。
update <name>拉取已安装插件的最新更改。
remove <name>(别名:rmuninstall删除已安装的插件。
enable <name>启用已禁用的插件。
disable <name>禁用插件而不删除它。
list(别名:ls列出已安装的插件及其启用/禁用状态。

提供商插件选择保存到 config.yaml

  • memory.provider — 活跃内存提供商(空 = 仅内置)
  • context.engine — 活跃上下文引擎("compressor" = 内置默认值)

通用插件禁用列表存储在 config.yamlplugins.disabled 下。

请参阅插件构建 Hermes 插件

hermes tools

bash
hermes tools [--summary]
选项描述
--summary打印当前启用的工具摘要并退出。

不带 --summary 时,启动交互式按平台工具配置 UI。

hermes computer-use

bash
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 二进制文件的稳定入口点。它运行与 hermes tools 在您首次启用 Computer Use 时调用的相同上游安装程序,因此如果工具集切换未触发安装(例如,在返回用户设置上),可以安全地用于重新运行安装。

hermes update 在更新结束时自动重新运行上游安装程序(如果 cua-driver 在 PATH 上),因此大多数用户无需手动调用 --upgrade。当上游发布了一个您想立即应用的修复程序而不等待下一次 Hermes 更新时,请使用它。

hermes sessions

bash
hermes sessions <subcommand>

子命令:

子命令描述
list列出最近的会话。
browse交互式会话选择器,支持搜索和恢复。
export <output> [--session-id ID]将会话导出为 JSONL。
delete <session-id>删除一个会话。
prune删除旧会话。
stats显示会话存储统计信息。
rename <session-id> <title>设置或更改会话标题。

hermes insights

bash
hermes insights [--days N] [--source platform]
选项描述
--days <n>分析最近 n 天(默认:30)。
--source <platform>按源过滤,例如 clitelegramdiscord

hermes claw

bash
hermes claw migrate [options]

将您的 OpenClaw 设置迁移到 Hermes。从 ~/.openclaw(或自定义路径)读取并写入 ~/.hermes。自动检测旧目录名称(~/.clawdbot~/.moltbot)和配置文件名(clawdbot.jsonmoltbot.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(默认)、overwriterename
--yes跳过确认提示。

迁移的内容

迁移涵盖 30 多个类别,包括角色、内存、技能、模型提供商、消息平台、代理行为、会话策略、MCP 服务器、TTS 等。项目要么直接导入到 Hermes 等效项中,要么归档以供手动审查。

直接导入: SOUL.md、MEMORY.md、USER.md、AGENTS.md、技能(4 个源目录)、默认模型、自定义提供商、MCP 服务器、消息平台令牌和允许列表(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、代理默认值(推理努力、压缩、人工延迟、时区、沙箱)、会话重置策略、批准规则、TTS 配置、浏览器设置、工具设置、执行超时、命令允许列表、网关配置以及来自 3 个源的 API 密钥。

归档以供手动审查: cron 任务、插件、钩子/webhook、内存后端(QMD)、技能注册表配置、UI/身份、日志记录、多代理设置、频道绑定、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md。

API 密钥解析按优先级顺序检查三个源:配置值 → ~/.openclaw/.envauth-profiles.json。所有令牌字段处理纯字符串、环境模板(${VAR})和 SecretRef 对象。

有关完整的配置键映射、SecretRef 处理细节和迁移后检查清单,请参阅**完整迁移指南**。

示例

bash
## 预览将迁移的内容
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

bash
hermes dashboard [options]

启动 Web 仪表板 — 一个基于浏览器的 UI,用于管理配置、API 密钥和监控会话。需要 pip install hermes-agent[web](FastAPI + Uvicorn)。嵌入式浏览器聊天选项卡始终可用,并且还需要 pty 额外依赖(pip install 'hermes-agent[web,pty]')以及 POSIX PTY 环境,例如 Linux、macOS 或 WSL2。请参阅Web 仪表板获取完整文档。

选项默认值描述
--port9119Web 服务器运行的端口
--host127.0.0.1绑定地址
--no-open不自动打开浏览器
--insecure关闭允许绑定到非 localhost 主机。将仪表板凭据暴露在网络上;仅在受信任的网络控制后使用。
--isolated关闭当从命名配置文件启动时(worker dashboard),运行专用的每配置文件服务器,而不是路由到机器仪表板。
--stop停止正在运行的 hermes dashboard 进程并退出。
--status列出正在运行的 hermes dashboard 进程并退出。
bash
## 默认 — 打开浏览器到 http://127.0.0.1:9119
hermes dashboard
## 自定义端口,无浏览器
hermes dashboard --port 8080 --no-open
## 从配置文件别名 — 路由到机器仪表板,并在侧边栏切换器中预选配置文件(如果正在运行则附加)
worker dashboard

hermes profile

bash
hermes profile <subcommand>

管理配置文件 — 多个隔离的 Hermes 实例,每个都有自己的配置、会话、技能和主目录。

子命令描述
list列出所有配置文件。
use <name>设置粘性默认配置文件。
create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias]创建新配置文件。--clone 从活跃配置文件复制配置、.envSOUL.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>显示配置文件的分发清单(版本、需求、源)。

示例:

bash
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

bash
hermes completion [bash|zsh|fish]

将 shell 补全脚本打印到 stdout。将输出源到您的 shell 配置文件中,以获得 Hermes 命令、子命令和配置文件名称的制表符补全。

示例:

bash
## Bash
hermes completion bash >> ~/.bashrc
## Zsh
hermes completion zsh >> ~/.zshrc
## Fish
hermes completion fish > ~/.config/fish/completions/hermes.fish

hermes update

bash
hermes update [--gateway] [--check] [--no-backup] [--backup] [--yes]

拉取最新的 hermes-agent 代码并在您的 venv 中重新安装依赖项,然后重新运行安装后钩子(MCP 服务器、技能同步、补全安装)。在实时安装上安全运行。

pip 安装: hermes update 自动检测基于 pip 的安装 — 它查询 PyPI 以获取最新版本并运行 pip install --upgrade hermes-agent 而不是 git pull。PyPI 版本跟踪标记版本(主要/次要版本),而不是 main 上的每个提交。使用 --check 查看是否有更新的 PyPI 版本可用而不安装。

git 安装: hermes update 拉取配置的更新分支(默认:main)。如果您的检出在另一个分支上,Hermes 可能会在拉取前检出更新分支。在更新前提交分支工作,如果您想将其保留在更新自动暂存流之外。

选项描述
--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对交互式提示(如配置迁移和暂存恢复)假设为是。API 密钥输入被跳过;请单独运行 hermes config migrate

其他行为:

  • 网关重启。 成功更新后,Hermes 会尝试自动重启所有正在运行的网关配置文件,以便它们获取新代码。当您想重启网关而不应用更新时,请使用 hermes gateway restart
  • 本地源更改。 对于 git 安装,脏跟踪文件和未跟踪文件会在分支检出或拉取前自动暂存(git stash push --include-untracked)。交互式终端更新会在恢复暂存前询问。非交互式更新默认恢复暂存;仅在托管安装上设置 updates.non_interactive_local_changes: discard,其中本地源编辑应在成功拉取后丢弃。如果暂存恢复冲突或拉取失败,暂存会保留在原位以供手动恢复。
  • npm 锁文件变动。 在暂存或切换分支之前,Hermes 会尽力清理由 npm install/build 步骤产生的跟踪 package-lock.json 差异。在运行 hermes update 之前,提交或手动暂存有意的锁文件编辑。
  • 配对数据快照。 即使 --backup 关闭,hermes update 也会在 git pull 之前创建 ~/.hermes/pairing/ 和飞书评论规则的轻量级快照。如果拉取重写了您正在编辑的文件,您可以使用 hermes backup restore --state pre-update 回滚。
  • 旧版 hermes.service 警告。 如果 Hermes 检测到重命名前的 hermes.service systemd 单元(而不是当前的 hermes-gateway.service),它会打印一次性迁移提示,以便您避免 flap-loop 问题。
  • 退出代码。 0 成功,1 拉取/安装/安装后错误,2 阻止 git pull 的意外工作树更改。

维护命令

命令描述
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 跳过提示。

另请参阅


分享: