知识引擎/Hermes 知识引擎/命令行界面 (CLI Interface)

Hermes Agent 的 CLI 是一个完整的终端用户界面(TUI)——不是 Web UI。它具有多行编辑、斜杠命令自动补全、对话历史、中断重定向和流式工具输出等功能。为生活在终端中的用户而构建。 Hermes CLI 布局的风格化预览,显示横幅、对话区域和固定输入提示。 Hermes CLI 横幅、对话流和固定输

命令行界面 (CLI Interface)

> 📖 本文档翻译自 Hermes Agent 官方文档 > 最后更新:2026-04-16


Hermes Agent 的 CLI 是一个完整的终端用户界面(TUI)——不是 Web UI。它具有多行编辑、斜杠命令自动补全、对话历史、中断重定向和流式工具输出等功能。为生活在终端中的用户而构建。

运行 CLI

# 启动交互式会话(默认)
hermes

# 单次查询模式(非交互式)
hermes chat -q "Hello"

# 使用指定模型
hermes chat --model "anthropic/claude-sonnet-4"

# 使用指定 Provider
hermes chat --provider nous        # 使用 Nous Portal
hermes chat --provider openrouter  # 强制使用 OpenRouter

# 使用指定工具集
hermes chat --toolsets "web,terminal,skills"

# 启动时预加载一个或多个技能
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# 恢复之前的会话
hermes --continue             # 恢复最近的 CLI 会话(-c)
hermes --resume <session_id>  # 按 ID 恢复指定会话(-r)

# 详细模式(调试输出)
hermes chat --verbose

# 隔离的 git worktree(用于并行运行多个 Agent)
hermes -w                         # 在 worktree 中交互模式
hermes -w -q "Fix issue #123"     # 在 worktree 中单次查询

界面布局

Hermes CLI 布局的风格化预览,显示横幅、对话区域和固定输入提示。

Hermes CLI 横幅、对话流和固定输入提示呈现为稳定的文档图示,而非脆弱的文本艺术。

欢迎横幅一目了然地显示你的模型、终端后端、工作目录、可用工具和已安装的技能。

状态栏

输入区域上方有一个持久状态栏,实时更新:

 ⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
元素描述
模型名称当前模型(超过 26 个字符时截断)
Token 计数已使用的上下文 Token / 最大上下文窗口
上下文条带颜色编码阈值的可视化填充指示器
费用估算的会话费用(对于未知/零价格模型显示 n/a)
时长已用会话时间

状态栏会根据终端宽度自适应——完整布局在 ≥ 76 列时显示,紧凑布局在 52-75 列时显示,极简模式(仅模型 + 时长)在 52 列以下时显示。

上下文颜色编码:

颜色阈值含义
绿色< 50%空间充足
黄色50–80%正在变满
橙色80–95%接近限制
红色≥ 95%即将溢出——考虑压缩

使用 /usage 查看详细的分类信息,包括按类别的费用(输入 vs 输出 Token)。

会话恢复显示

恢复之前的会话时(hermes -chermes --resume &lt;id&gt;),横幅和输入提示之间会出现一个"之前的对话"面板,显示对话历史的紧凑回顾。详见会话——恢复时的对话回顾

快捷键

按键操作
Enter发送消息
Alt+Enter 或 Ctrl+J新行(多行输入)
Alt+V当终端支持时从剪贴板粘贴图片
Ctrl+V粘贴文本并自动附加剪贴板图片
Ctrl+B语音模式启用时开始/停止录音(voice.record_key,默认:ctrl+b)
Ctrl+C中断 Agent(2 秒内双击强制退出)
Ctrl+D退出
Ctrl+Z将 Hermes 挂起到后台(仅 Unix)。在 Shell 中运行 fg 恢复。
Tab接受自动建议(幽灵文本)或自动补全斜杠命令

斜杠命令

输入 / 可以看到自动补全下拉列表。Hermes 支持大量 CLI 斜杠命令、动态技能命令和用户自定义快捷命令。

常用示例:

命令描述
/help显示命令帮助
/model显示或更改当前模型
/tools列出当前可用工具
/skills browse浏览技能中心和官方可选技能
/background <prompt>在单独的后台会话中运行提示
/skin显示或切换活动的 CLI 皮肤
/voice on启用 CLI 语音模式(按 Ctrl+B 录音)
/voice tts切换 Hermes 回复的语音播放
/reasoning high增加推理力度
/title My Session命名当前会话

完整内置 CLI 和消息命令列表,参见斜杠命令参考

关于设置、Provider、静默调优以及消息/Discord 语音使用,参见语音模式

:::tip

:::

快捷命令

你可以定义自定义命令,立即运行 Shell 命令而无需调用 LLM。这些命令在 CLI 和消息平台(Telegram、Discord 等)中均可使用。

# ~/.hermes/config.yaml
quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  gpu:
    type: exec
    command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader

然后输入 /status/gpu 即可在任何聊天中使用。参见配置指南获取更多示例。

启动时预加载技能

如果你已经知道本次会话需要激活哪些技能,可以在启动时传入:

hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -s github-auth

Hermes 会在第一轮对话之前将每个命名的技能加载到会话提示中。该标志在交互模式和单次查询模式下均可使用。

技能斜杠命令

~/.hermes/skills/ 中的每个已安装技能都会自动注册为斜杠命令。技能名称即为命令:

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor

# 仅技能名称会加载它并让 Agent 询问你需要什么:
/excalidraw

人格设定

设置预定义的个性来更改 Agent 的语气:

/personality pirate
/personality kawaii
/personality concise

内置个性包括:helpfulconcisetechnicalcreativeteacherkawaiicatgirlpirateshakespearesurfernoiruwuphilosopherhype

你还可以在 ~/.hermes/config.yaml 中定义自定义个性:

personalities:
  helpful: "You are a helpful, friendly AI assistant."
  kawaii: "You are a kawaii assistant! Use cute expressions..."
  pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  # 添加你自己的!

多行输入

有两种方式输入多行消息:

  1. Alt+EnterCtrl+J — 插入新行
  2. 反斜杠续行 — 在行尾使用 \ 续行:
❯ Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum

:::info

:::

中断 Agent

你可以在任何时候中断 Agent:

  • 输入新消息 + Enter——在 Agent 工作时会中断并处理你的新指令
  • Ctrl+C——中断当前操作(2 秒内双击强制退出)
  • 正在运行的终端命令会立即被终止(SIGTERM,1 秒后 SIGKILL)
  • 中断期间输入的多条消息会合并为一个提示

忙碌输入模式

display.busy_input_mode 配置键控制当 Agent 正在工作时按 Enter 会发生什么:

模式行为
"interrupt"(默认)你的消息中断当前操作并立即处理
"queue"你的消息被静默排队,在 Agent 完成后作为下一轮发送
# ~/.hermes/config.yaml
display:
  busy_input_mode: "queue"   # 或 "interrupt"(默认)

当你想准备后续消息而不意外取消正在进行的工作时,队列模式很有用。未知值会回退到 "interrupt"

挂起到后台

在 Unix 系统上,按 Ctrl+Z 将 Hermes 挂起到后台——就像任何终端进程一样。Shell 会打印确认信息:

Hermes Agent has been suspended. Run `fg` to bring Hermes Agent back.

在 Shell 中输入 fg 即可恢复到你离开时的会话。Windows 不支持此功能。

工具进度显示

CLI 在 Agent 工作时显示动画反馈:

思考动画(API 调用期间):

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ◠ (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

工具执行信息流:

  ┊ 💻 terminal `ls -la` (0.3s)
  ┊ 🔍 web_search (1.2s)
  ┊ 📄 web_extract (2.1s)

使用 /verbose 循环切换显示模式:off → new → all → verbose。此命令也可以在消息平台上启用——参见配置

工具预览长度

display.tool_preview_length 配置键控制工具调用预览行(如文件路径、终端命令)中显示的最大字符数。默认为 0,表示无限制——显示完整路径和命令。

# ~/.hermes/config.yaml
display:
  tool_preview_length: 80   # 将工具预览截断为 80 个字符(0 = 无限制)

这在窄终端或工具参数包含很长文件路径时很有用。

会话管理

恢复会话

当你退出 CLI 会话时,会打印恢复命令:

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

Session:        20260225_143052_a1b2c3
Duration:       12m 34s
Messages:       28 (5 user, 18 tool calls)

恢复选项:

hermes --continue                          # 恢复最近的 CLI 会话
hermes -c                                  # 简写形式
hermes -c "my project"                     # 恢复命名会话(系列中最新的)
hermes --resume 20260225_143052_a1b2c3     # 按 ID 恢复指定会话
hermes --resume "refactoring auth"         # 按标题恢复
hermes -r 20260225_143052_a1b2c3           # 简写形式

恢复会从 SQLite 还原完整的对话历史。Agent 可以看到所有之前的消息、工具调用和响应——就像你从未离开一样。

在聊天中使用 /title My Session Name 来命名当前会话,或从命令行使用 hermes sessions rename &lt;id&gt; &lt;title&gt;。使用 hermes sessions list 浏览历史会话。

会话存储

CLI 会话存储在 Hermes 的 SQLite 状态数据库 ~/.hermes/state.db 中。数据库保存:

  • 会话元数据(ID、标题、时间戳、Token 计数器)
  • 消息历史
  • 跨压缩/恢复会话的谱系
  • session_search 使用的全文搜索索引

一些消息适配器也会在数据库旁边保存每个平台的转录文件,但 CLI 本身从 SQLite 会话存储恢复。

上下文压缩

当接近上下文限制时,长对话会自动摘要:

# 在 ~/.hermes/config.yaml 中
compression:
  enabled: true
  threshold: 0.50    # 默认在上下文限制的 50% 时压缩

# 摘要模型在 auxiliary 下配置:
auxiliary:
  compression:
    model: "google/gemini-3-flash-preview"  # 用于摘要的模型

当压缩触发时,中间的对话轮次会被摘要,而前 3 轮和最后 4 轮始终保留。

后台会话

在单独的后台会话中运行提示,同时继续使用 CLI 进行其他工作:

/background Analyze the logs in /var/log and summarize any errors from today

Hermes 立即确认任务并返回提示:

🔄 Background task #1 started: "Analyze the logs in /var/log and summarize..."
   Task ID: bg_143022_a1b2c3

工作原理

每个 /background 提示都会在一个守护线程中生成一个完全独立的 Agent 会话

  • 隔离的对话——后台 Agent 不知道你当前会话的历史。它只接收你提供的提示。
  • 相同的配置——后台 Agent 继承你当前会话的模型、Provider、工具集、推理设置和回退模型。
  • 非阻塞——你的前台会话保持完全交互。你可以聊天、运行命令,甚至启动更多后台任务。
  • 多个任务——你可以同时运行多个后台任务。每个都会获得一个编号 ID。

结果

当后台任务完成时,结果会作为面板显示在你的终端中:

╭─ ⚕ Hermes (background #1) ──────────────────────────────────╮
│ Found 3 errors in syslog from today:                         │
│ 1. OOM killer invoked at 03:22 — killed process nginx        │
│ 2. Disk I/O error on /dev/sda1 at 07:15                      │
│ 3. Failed SSH login attempts from 192.168.1.50 at 14:30      │
╰──────────────────────────────────────────────────────────────╯

如果任务失败,你会看到错误通知。如果在配置中启用了 display.bell_on_complete,任务完成时终端会响铃。

使用场景

  • 长时间运行的研究——"/background research the latest developments in quantum error correction" 同时你继续编写代码
  • 文件处理——"/background analyze all Python files in this repo and list any security issues" 同时你继续对话
  • 并行调查——启动多个后台任务同时探索不同角度

:::info

:::

静默模式

默认情况下,CLI 在静默模式下运行,它会:

  • 抑制工具的详细日志
  • 启用 kawaii 风格的动画反馈
  • 保持输出简洁和用户友好

调试输出:

hermes chat --verbose

Continue Exploring

继续探索

这不是课程式的上一篇下一篇,而是从当前节点向外继续漫游。

User Guide

使用指南

围绕 CLI、配置、安全、回滚与日常操作,把 Hermes 变成稳定可控的生产工具。

8 篇文档8 个节点

当前节点

命令行界面 (CLI Interface)

同主题继续探索

相关节点