字节笔记本
2026年6月22日
hermes教程-CLI 命令参考
全局入口点
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.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 | 管理语言服务器协议集成(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 脚本、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 portal | Nous Portal 状态、订阅链接和工具网关路由。参见 工具网关。 |
hermes tools | 按平台配置启用的工具。 |
hermes computer-use | 安装或检查 cua-driver 后端(macOS 计算机使用)。 |
hermes sessions | 浏览、导出、修剪、重命名和删除会话。 |
hermes insights | 显示令牌/成本/活动分析。 |
hermes claw | OpenClaw 迁移辅助工具。 |
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
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 工作树。 |
--checkpoints | 在破坏性文件更改前启用文件系统检查点。 |
--yolo | 跳过批准提示。 |
--pass-session-id | 将会话 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、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 聊天会话内部运行。
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。
提供商和基础 URL 更改会自动持久化到 config.yaml。当从自定义端点切换时,过时的基础 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 常见问题。
hermes lsp
hermes lsp <subcommand>管理语言服务器协议集成。LSP 在后台运行真正的语言服务器(pyright、gopls、rust-analyzer 等),并将其诊断结果输入到 write_file 和 patch 使用的写入后检查中。受 git 工作区检测限制 — LSP 仅在当前工作目录或编辑的文件位于 git 工作树内时运行。
子命令:
| 子命令 | 描述 |
|---|---|
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 并一次性选择加入工具网关。
首次运行: 启动首次向导。
返回用户(已配置): 直接进入完整重新配置向导 — 每个提示都显示当前值作为默认值,按 Enter 保留或输入新值。无菜单。
跳转到某个部分而不是完整向导:
| 部分 | 描述 |
|---|---|
model | 提供商和模型设置。 |
terminal | 终端后端和沙箱设置。 |
gateway | 消息平台设置。 |
tools | 按平台启用/禁用工具。 |
agent | 代理行为设置。 |
选项:
| 选项 | 描述 |
|---|---|
--quick | 在返回用户运行时:仅提示缺失或未设置的项目。跳过您已配置的项目。 |
--non-interactive | 使用默认值/环境值,无需提示。 |
--reset | 在设置前将配置重置为默认值。 |
--reconfigure | 向后兼容别名 — 现在裸 hermes setup 在现有安装上默认执行此操作。 |
--portal | 一次性 Nous Portal 设置:通过 OAuth 登录,将 Nous 设置为推理提供商,并选择加入工具网关。跳过向导的其余部分。 |
hermes portal
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
hermes whatsapp运行 WhatsApp 配对/设置流程,包括模式选择和二维码配对。
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 作业、CI 钩子和监控守护进程可以发布状态更新,而无需重新实现每个平台的 REST 客户端。
对于机器人令牌平台(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,则当 stdin 不是 TTY 时,hermes send 从 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)。外部应用可以使用任何承载令牌指向代理;代理在出口时附加您的真实 OAuth 凭据。请参阅订阅代理获取完整指南。
| 子命令 | 描述 |
|---|---|
start | 在前台运行代理。标志:`--provider <nous |
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 | 在下一个调度器滴答时触发任务。 |
remove | 删除计划任务。 |
status | 检查 cron 调度器是否正在运行。 |
tick | 运行到期任务一次并退出。 |
hermes kanban
hermes kanban [--board <slug>] <action> [options]多配置文件、多项目协作看板。每个安装可以托管多个看板(每个项目、仓库或域一个);每个看板都是一个独立的队列,拥有自己的 SQLite 数据库和调度器范围。新安装从一个名为 default 的看板开始,其数据库为 ~/.hermes/kanban.db(为了向后兼容);其他看板位于 ~/.hermes/kanban/boards/<slug>/kanban.db。网关嵌入的调度器在每个滴答时扫描所有看板。
全局标志(适用于以下所有操作):
| 标志 | 用途 |
|---|---|
--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(默认)时,也会在每个调度器滴答时自动运行。请参阅自动与手动编排。 |
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 或看板用户指南。
hermes webhook
hermes webhook <subscribe|list|remove|test>管理用于事件驱动代理激活的动态 webhook 订阅。需要在配置中启用 webhook 平台 — 如果未配置,则打印设置说明。
| 子命令 | 描述 |
|---|---|
subscribe / add | 创建 webhook 路由。返回要在服务上配置的 URL 和 HMAC 密钥。 |
list / ls | 显示所有代理创建的订阅。 |
remove / rm | 删除动态订阅。config.yaml 中的静态路由不受影响。 |
test | 发送测试 POST 以验证订阅是否正常工作。 |
hermes webhook subscribe
hermes webhook subscribe <name> [options]| 选项 | 描述 |
|---|---|
--prompt | 包含 {dot.notation} 负载引用的提示模板。 |
--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 问题或 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 任务计数、已安装技能数量 |
| 配置覆盖 | 与默认值不同的任何配置值 |
示例输出
--- 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
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 任务)。比完整备份快得多。 |
-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 | 删除整个检查点基础。不可逆;除非使用 -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 # 擦除所有内容请参阅检查点和 /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> | 过滤包含会话 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
## 跟踪 errors.log,从 30 分钟前开始
hermes logs errors --since 30m -f
## 列出所有日志文件及其大小
hermes logs list过滤
过滤器可以组合。当多个过滤器处于活动状态时,日志行必须通过所有过滤器才能显示:
## 过去 2 小时内包含会话 "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 为缓存友好性分层提示的方式。
- 工具模式 — 所有启用工具的 JSON(固定每次调用负载的另一半)。
完全离线运行 — 无 API 调用,无需配置凭据即可工作。
## CLI 平台的人类可读分解(默认)
hermes prompt-size
## 模拟消息平台的提示(不同的平台提示)
hermes prompt-size --platform telegram
## 脚本的机器可读输出
hermes prompt-size --json提示
技能索引和工具模式随您启用的技能和工具数量而扩展。要缩小提示,请禁用未使用的工具集(
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 | 检查已安装的中心技能是否有上游更新。 |
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 | 按平台交互式启用/禁用技能配置。 |
常见示例:
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)://…/*.mdURL 直接安装单文件 SKILL.md。当前置元数据没有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>策展人是一个辅助模型后台任务,定期审查代理创建的技能,修剪过时的技能,合并重叠的技能,并归档过时的技能。捆绑和中心安装的技能永远不会被触及。归档可恢复;永远不会自动删除。
| 子命令 | 描述 |
|---|---|
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
hermes fallback <subcommand>管理回退提供商链。当主模型因速率限制、过载或连接错误而失败时,按顺序尝试回退提供商。
| 子命令 | 描述 |
|---|---|
list(别名:ls) | 显示当前回退链(未提供子命令时的默认值) |
add | 选择提供商 + 模型(与 hermes model 相同的选择器)并追加到链中 |
remove(别名:rm) | 选择要从链中删除的条目 |
clear | 删除所有回退条目 |
请参阅回退提供商。
hermes hooks
hermes hooks <subcommand>检查在 ~/.hermes/config.yaml 中声明的 shell 脚本钩子,针对合成负载进行测试,并管理 ~/.hermes/shell-hooks-allowlist.json 中的首次使用同意允许列表。
| 子命令 | 描述 |
|---|---|
list(别名:ls) | 列出已配置的钩子,包括匹配器、超时和同意状态 |
test <event> | 针对合成负载触发每个匹配 <event> 的钩子 |
revoke(别名:remove、rm) | 删除命令的允许列表条目(下次重启生效) |
doctor | 检查每个配置的钩子:执行位、允许列表、mtime 漂移、JSON 有效性和合成运行计时 |
请参阅钩子了解事件签名和负载形状。
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 配置参考、将 MCP 与 Hermes 一起使用和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 二进制文件的稳定入口点。它运行与 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 服务器、消息平台令牌和允许列表(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost)、代理默认值(推理努力、压缩、人工延迟、时区、沙箱)、会话重置策略、批准规则、TTS 配置、浏览器设置、工具设置、执行超时、命令允许列表、网关配置以及来自 3 个源的 API 密钥。
归档以供手动审查: cron 任务、插件、钩子/webhook、内存后端(QMD)、技能注册表配置、UI/身份、日志记录、多代理设置、频道绑定、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md。
API 密钥解析按优先级顺序检查三个源:配置值 → ~/.openclaw/.env → auth-profiles.json。所有令牌字段处理纯字符串、环境模板(${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-openclawhermes dashboard
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 仪表板获取完整文档。
| 选项 | 默认值 | 描述 |
|---|---|---|
--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 dashboardhermes 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> | 显示配置文件的分发清单(版本、需求、源)。 |
示例:
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 配置文件中,以获得 Hermes 命令、子命令和配置文件名称的制表符补全。
示例:
## Bash
hermes completion bash >> ~/.bashrc
## Zsh
hermes completion zsh >> ~/.zshrc
## Fish
hermes completion fish > ~/.config/fish/completions/hermes.fishhermes update
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.servicesystemd 单元(而不是当前的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 跳过提示。 |