Hermes CLI 近期更新:后台监控、全量换肤、模型补全

记录 Hermes CLI 最近一轮比较值得写进博客的改动:watch_patterns 实时监控、CLI 颜色全面皮肤化,以及 gpt-5.4 / gpt-5.4-mini 在模型列表中的补全。

这次把 Hermes CLI 最近几处我觉得真正影响使用体验的改动,整理成一篇短更新。

它们不是那种“看起来改了很多、实际很难感知”的调整,而是会直接影响日常使用节奏的东西:

  1. 后台任务终于能在运行过程中主动提醒
  2. CLI 的视觉系统终于做到全链路 skin-aware
  3. ChatGPT OAuth / OpenAI Codex 这条线路里,模型列表补上了 gpt-5.4gpt-5.4-mini

1. 后台进程监控:不是只等结束,而是中途就能提醒

之前的后台任务通知更偏向于“任务跑完以后告诉你结果”。

这对于一次性命令当然够用,但对于以下场景就不太顺手:

  • npm run dev 想等服务真正启动完成;
  • 长时间测试想在出现 ERROR / FAIL 时第一时间知道;
  • 日志流里已经出现关键提示,但进程还没退出。

这次增加了 watch_patterns 之后,后台进程可以在匹配到指定输出时立刻回推通知

例如:

terminal(
    command="npm run dev",
    background=True,
    watch_patterns=["ERROR", "WARN", "listening on port"]
)

这类通知和原本的 notify_on_complete 不冲突:

  • 任务完成时,仍然会有 completion 通知;
  • 任务运行中如果命中了 watch pattern,也会触发一条系统消息。

换句话说,CLI 对后台任务的感知从“只会等结果”升级成了“会在关键节点打断告诉你”。

这对 agent 工作流很重要,因为很多开发任务的关键时刻其实都发生在进程尚未结束之前

这次实现里我比较喜欢的点

不是简单做一个字符串匹配就结束,而是把工程上的边界也补上了:

  • 做了 rate limit,避免高频日志把通知刷爆;
  • 持续过载会自动停用 watching,避免反噬主交互;
  • CLI 空闲时和 agent 正在运行时,都会统一 drain 这些事件;
  • 事件格式统一,不再把 completion / watch match 分两套逻辑处理。

这意味着它不只是“功能加上了”,而是已经朝着可长期维护的交互机制迈了一步。

2. CLI 颜色全量皮肤化:终于不是“换皮一半”了

另一个我很喜欢的改动,是 CLI 颜色系统被继续往前推了一大步。

以前虽然已经有 skin / theme 的概念,但总会残留一些硬编码颜色:

  • 某些响应框边框还是固定金色;
  • 某些状态提示没有完全跟着皮肤切换;
  • 切到别的 skin 时,整体视觉会有“80% 生效,20% 出戏”的感觉。

这次的重点不是单纯换几个颜色值,而是把 CLI 里关键显示路径都接到了 skin engine:

  • 响应框边框颜色;
  • banner / accent / dim 等展示色;
  • session resume 提示;
  • status line;
  • /reasoning/fast、voice mode 等命令反馈;
  • /skin 切换后的 ANSI 缓存刷新。

这个方向非常对,因为皮肤系统最怕“概念存在,但落地不彻底”

一旦还有大量硬编码颜色残留,用户会立刻感觉到:

  • 主题不统一;
  • 视觉品牌不稳定;
  • 自定义 skin 很难做到真正有辨识度。

现在这轮调整之后,CLI 的主题能力终于更像一个完整系统,而不是零散的样式补丁。

3. 模型列表补全:gpt-5.4 / gpt-5.4-mini 终于出现

第三个改动没有前两个那么“显眼”,但对实际使用同样重要。

之前 OpenAI Codex 这条 curated model list 里,缺了 gpt-5.4gpt-5.4-mini。结果就是:

  • 底层其实已经支持;
  • 某些默认模型配置里也已经有;
  • 但 Telegram / Discord / CLI 某些模型选择入口里看不到它们。

这种问题最烦的地方就在于:功能像是有了,但入口又像没开

这次补完之后,至少在模型选择体验上更一致了。对于依赖 ChatGPT OAuth / OpenAI Codex 路线的用户来说,这属于那种不会写进宣传页,但会明显减少困惑的修复。

我对这三处改动的判断

如果把这轮更新放在一起看,我会把它理解为同一个方向上的推进:

1)CLI 更像“实时协作界面”了

后台进程 watch 机制的价值,不只是多一个参数,而是让 agent 和用户都能更早接收到关键状态变化。

2)CLI 更像“可定制产品”了

skin-aware 的覆盖面越完整,CLI 就越能摆脱“开发工具默认长一个样”的局限。

3)CLI 更像“可依赖入口”了

模型列表补全这类修复,虽然不 flashy,但决定了用户到底能不能顺畅找到应该出现的东西。

接下来我会继续关注什么

这几类改动之后,我更关心的是后续能不能继续往下面几个方向推进:

  • 后台任务通知是否还能进一步结构化;
  • 皮肤系统是否能把更多细节(比如 diff、tool 输出、状态反馈)继续统一;
  • 模型选择和 provider 路由是否还能进一步减少“支持了但找不到”的情况。

对一个 agent CLI 来说,真正的体验差异往往不来自某个大功能,而来自这些细节级交互是否持续变顺

这次这几处修改,我觉得就是这种“看起来不夸张,但会持续提高可用性”的更新。