CLI 界面

Hermes Agent 的 CLI 是一个完整的终端用户界面(TUI),而不是 Web UI。它支持多行编辑、slash-command 自动补全、对话历史、可中断并重定向的交互,以及流式 tool output。专为长期使用终端的人设计。

运行 CLI

  1. # 启动交互式会话(默认)
  2. hermes
  3. # 单次查询模式(非交互式)
  4. hermes chat -q "Hello"
  5. # 指定 model
  6. hermes chat --model "anthropic/claude-sonnet-4"
  7. # 指定 provider
  8. hermes chat --provider nous # 使用 Nous Portal
  9. hermes chat --provider openrouter # 强制使用 OpenRouter
  10. # 指定 toolsets
  11. hermes chat --toolsets "web,terminal,skills"
  12. # 启动时预加载一个或多个 skills
  13. hermes -s hermes-agent-dev,github-auth
  14. hermes chat -s github-pr-workflow -q "open a draft PR"
  15. # 恢复之前的 sessions
  16. hermes --continue # 恢复最近一次 CLI session(-c)
  17. hermes --resume <session_id> # 通过 ID 恢复指定 session(-r)
  18. # Verbose 模式(debug 输出)
  19. hermes chat --verbose
  20. # 隔离的 git worktree(用于并行运行多个 agents)
  21. hermes -w # 在 worktree 中进入交互模式
  22. hermes -w -q "Fix issue #123" # 在 worktree 中执行单次查询

界面布局

Stylized preview of the Hermes CLI layout showing the banner, conversation area, and fixed input prompt.

Hermes CLI 的横幅、对话流和固定输入提示,以稳定的文档插图形式展示,而不是脆弱的文本艺术图。

欢迎横幅会一目了然地显示你的 model、terminal backend、working directory、可用工具以及已安装的 skills。

状态栏

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

  1. claude-sonnet-4-20250514 12.4K/200K [██████░░░░] 6% $0.06 15m
元素 说明
Model name 当前 model 名称(如果超过 26 个字符会被截断)
Token count 已使用的 context tokens / 最大 context window
Context bar 带颜色阈值的可视化填充指示条
Cost 预估的 session 成本(若未知或模型价格为零则显示 n/a
Duration 已经过的会话时长

该状态栏会根据终端宽度自适应——当宽度 ≥ 76 列时显示完整布局,52–75 列时显示紧凑布局,小于 52 列时则显示最简布局(仅 model + duration)。

Context 颜色编码:

颜色 阈值 含义
Green < 50% 空间充足
Yellow 50–80% 开始接近上限
Orange 80–95% 接近限制
Red ≥ 95% 即将溢出 —— 建议使用 /compress

使用 /usage 可查看更详细的分解,包括分项成本(例如 input tokens 与 output tokens)。

Session 恢复显示

当恢复之前的 session(hermes -chermes --resume <id>)时,横幅和输入提示之间会出现一个 “Previous Conversation” 面板,用于显示对话历史的紧凑回顾。详情与配置请参阅 Sessions — Conversation Recap on Resume

快捷键

按键 操作
Enter 发送消息
Alt+EnterCtrl+J 新起一行(多行输入)
Alt+V 在终端支持时,从剪贴板粘贴图片
Ctrl+V 粘贴文本,并在可能时附加剪贴板中的图片
Ctrl+B 在启用 voice mode 时开始 / 停止录音(voice.record_key,默认:ctrl+b
Ctrl+C 中断 agent(2 秒内连按两次则强制退出)
Ctrl+D 退出
Ctrl+Z 将 Hermes 挂起到后台(仅 Unix)。在 shell 中运行 fg 可恢复。
Tab 接受自动建议(ghost text)或自动补全 slash commands

Slash Commands

输入 / 可看到自动补全下拉菜单。Hermes 支持大量 CLI slash commands、动态 skill commands,以及用户自定义 quick commands。

常见示例:

命令 说明
/help 显示命令帮助
/model 显示或修改当前 model
/tools 列出当前可用工具
/skills browse 浏览 skills hub 和官方可选 skills
/background <prompt> 在单独的后台 session 中运行一个 prompt
/skin 显示或切换当前 CLI skin
/voice on 启用 CLI voice mode(按 Ctrl+B 录音)
/voice tts 开关 Hermes 回复的语音播放
/reasoning high 提高 reasoning effort
/title My Session 为当前 session 命名

完整的内置 CLI 与 messaging 命令列表,请参阅 Slash Commands Reference

关于 setup、providers、silence tuning,以及 messaging / Discord voice 的使用,请参阅 Voice Mode

Quick Commands

你可以定义自定义命令,在不调用 LLM 的情况下即时运行 shell commands。这些命令在 CLI 和消息平台(Telegram、Discord 等)中都可使用。

  1. # ~/.hermes/config.yaml
  2. quick_commands:
  3. status:
  4. type: exec
  5. command: systemctl status hermes-agent
  6. gpu:
  7. type: exec
  8. command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader

之后你可以在任意聊天中输入 /status/gpu。更多示例请参阅 Configuration guide

启动时预加载 Skills

如果你已经知道本次 session 需要启用哪些 skills,可以在启动时直接传入:

  1. hermes -s hermes-agent-dev,github-auth
  2. hermes chat -s github-pr-workflow -s github-auth

Hermes 会在第一轮对话开始前,将每个已命名的 skill 加载进 session prompt。这个参数在交互模式和单次查询模式中都可使用。

Skill Slash Commands

安装在 ~/.hermes/skills/ 中的每个 skill,都会自动注册成一个 slash command。Skill 名称本身就是命令名:

  1. /gif-search funny cats
  2. /axolotl help me fine-tune Llama 3 on my dataset
  3. /github-pr-workflow create a PR for the auth refactor
  4. # 只输入 skill 名称,会先加载它,并让 agent 询问你的需求:
  5. /excalidraw

Personalities

设置一个预定义 personality 来改变 agent 的语气风格:

  1. /personality pirate
  2. /personality kawaii
  3. /personality concise

内置 personalities 包括:helpfulconcisetechnicalcreativeteacherkawaiicatgirlpirateshakespearesurfernoiruwuphilosopherhype

你也可以在 ~/.hermes/config.yaml 中定义自定义 personalities:

  1. personalities:
  2. helpful: "You are a helpful, friendly AI assistant."
  3. kawaii: "You are a kawaii assistant! Use cute expressions..."
  4. pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  5. # Add your own!

多行输入

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

  1. Alt+EnterCtrl+J —— 插入新的一行
  2. 反斜杠续行 —— 在行尾加上 \ 继续输入:
  1. Write a function that:\
  2. 1. Takes a list of numbers\
  3. 2. Returns the sum

中断 Agent

你可以在任意时刻中断 agent:

  • 当 agent 正在工作时,直接输入新消息并按 Enter —— 它会中断当前任务并处理你的新指令
  • Ctrl+C —— 中断当前操作(2 秒内按两次则强制退出)
  • 正在运行的 terminal commands 会立即被终止(先发 SIGTERM,1 秒后发 SIGKILL)
  • 在中断期间输入的多条消息会被合并成一个 prompt

Busy Input Mode

display.busy_input_mode 配置项控制当 agent 正在工作时你按下 Enter 会发生什么:

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

Queue 模式适合你提前准备后续消息,而不想意外打断当前工作。未知值会自动回退为 "interrupt"

挂起到后台

在 Unix 系统上,按 Ctrl+Z 可将 Hermes 挂起到后台——就像普通终端进程一样。Shell 会显示确认信息:

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

在 shell 中输入 fg,即可从上次离开的地方继续 session。Windows 不支持该功能。

Tool Progress Display

CLI 会在 agent 工作时显示动态反馈:

Thinking animation(API 调用期间):

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

Tool execution feed:

  1. 💻 terminal `ls -la` (0.3s)
  2. 🔍 web_search (1.2s)
  3. 📄 web_extract (2.1s)

使用 /verbose 可以在这些显示模式之间切换:off → new → all → verbose。这个命令也可以为消息平台启用——详见 configuration

Tool Preview Length

display.tool_preview_length 配置项用于控制 tool call 预览行中最多显示多少字符(例如文件路径、terminal commands)。默认值为 0,表示不限制——会显示完整路径和命令。

  1. # ~/.hermes/config.yaml
  2. display:
  3. tool_preview_length: 80 # 将 tool previews 截断为 80 个字符(0 = 不限制)

这在窄终端中,或 tool 参数包含非常长的文件路径时特别有用。

Session 管理

恢复 Sessions

当你退出一个 CLI session 时,系统会打印恢复命令:

  1. Resume this session with:
  2. hermes --resume 20260225_143052_a1b2c3
  3. Session: 20260225_143052_a1b2c3
  4. Duration: 12m 34s
  5. Messages: 28 (5 user, 18 tool calls)

恢复方式:

  1. hermes --continue # 恢复最近一次 CLI session
  2. hermes -c # 简写
  3. hermes -c "my project" # 恢复某个命名 session(同 lineage 中最新的一次)
  4. hermes --resume 20260225_143052_a1b2c3 # 通过 ID 恢复指定 session
  5. hermes --resume "refactoring auth" # 通过标题恢复
  6. hermes -r 20260225_143052_a1b2c3 # 简写

恢复后会从 SQLite 中还原完整对话历史。agent 能看到之前的所有消息、tool calls 和 responses —— 就像你从未离开过一样。

你可以在聊天中使用 /title My Session Name 为当前 session 命名,或者在命令行中使用 hermes sessions rename <id> <title> 重命名。使用 hermes sessions list 可浏览历史 sessions。

Session 存储

CLI sessions 存储在 Hermes 的 SQLite 状态数据库 ~/.hermes/state.db 中。数据库保存的内容包括:

  • session 元数据(ID、title、timestamps、token counters)
  • 消息历史
  • 压缩 / 恢复 sessions 之间的 lineage
  • session_search 使用的全文搜索索引

某些 messaging adapters 也会在数据库之外保存平台级 transcript 文件,但 CLI 本身的恢复依赖的是 SQLite session store。

Context Compression

长对话在接近 context limit 时会被自动摘要压缩:

  1. # 在 ~/.hermes/config.yaml 中
  2. compression:
  3. enabled: true
  4. threshold: 0.50 # 默认在达到 context limit 的 50% 时压缩
  5. summary_model: "google/gemini-3-flash-preview" # 用于摘要的 model

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

Background Sessions

你可以在单独的后台 session 中运行一个 prompt,同时继续使用 CLI 做其他事情:

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

Hermes 会立即确认任务,并把输入权交还给你:

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

工作方式

每个 /background prompt 都会在守护线程中启动一个完全独立的 agent session

  • 隔离的对话 —— 后台 agent 不知道你当前 session 的历史。它只接收你提供的 prompt。
  • 相同配置 —— 后台 agent 会继承你当前 session 的 model、provider、toolsets、reasoning settings 和 fallback model。
  • 非阻塞 —— 你的前台 session 仍保持完全可交互。你可以继续聊天、运行命令,甚至再启动更多后台任务。
  • 支持多个任务 —— 你可以同时运行多个后台任务。每个任务都有单独编号。

结果

当后台任务完成后,结果会以一个面板形式显示在终端中:

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

如果任务失败,你会看到错误通知。如果配置中启用了 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",同时继续对话
  • 并行调查 —— 同时启动多个后台任务,从不同角度展开探索

Quiet Mode

默认情况下,CLI 运行在 quiet mode,这会:

  • 抑制来自 tools 的冗长日志
  • 启用 kawaii 风格的动态反馈
  • 让输出更干净、更友好

若要查看 debug 输出:

  1. hermes chat --verbose