# Hermes Agent v0.18.2 (v2026.7.7.2)
**发布日期:** 2026年7月7日
> 基于 v0.18.1 的当日补丁,修复了标签发布版 Docker 构建所需的 WhatsApp Baileys 依赖问题。
---
## 本补丁包含的内容
- **fix(whatsapp):将 Baileys 从 Git 提交固定版本改为使用已发布的 7.0.0-rc13**([#60643](https://github.com/NousResearch/hermes-agent/pull/60643))—— WhatsApp 桥接依赖现在从已发布的 npm 版本安装,而不是固定的 Git 提交版本,从而使安装和 Docker 镜像构建更加可靠。
完整的 v0.18.0 之后版本的精选发布说明将随 v0.19.0 一同发布。
## 更新方式
```bash
hermes update # 已有安装
pip install -U hermes-agent
```
**完整更新日志:** [v2026.7.7...v2026.7.7.2](https://github.com/NousResearch/hermes-agent/compare/v2026.7.7...v2026.7.7.2)
# Hermes Agent v0.18.2 (v2026.7.7.2)
**Release Date:** July 7, 2026
> Same-day patch on top of v0.18.1, picking up the WhatsApp Baileys dependency fix needed for tagged-release Docker builds.
---
## What's in this patch
- **fix(whatsapp): unpin Baileys from git commit, use published 7.0.0-rc13** ([#60643](https://github.com/NousResearch/hermes-agent/pull/60643)) — the WhatsApp bridge dependency now installs from the published npm release instead of a pinned git commit, making installs and Docker image builds reliable.
Full curated release notes for the entire post-v0.18.0 window ship with v0.19.0.
## Updating
```bash
hermes update # existing installs
pip install -U hermes-agent
```
**Full Changelog**: [v2026.7.7...v2026.7.7.2](https://github.com/NousResearch/hermes-agent/compare/v2026.7.7...v2026.7.7.2)
# Hermes Agent v0.18.1 (v2026.7.7)
**发布日期:** 2026年7月7日
> 补丁版本。此标签汇总了自 v0.18.0(7月1日)以来合并的约 660 个 PR —— 包括错误修复、加固以及进行中的功能工作 —— 为下游用户(Docker 镜像、托管部署、PyPI 安装)提供一个稳定的标记版本。
---
## 关于此版本
这是一个由基础设施驱动的补丁标签,而非经过全面策划的版本。自六天前 v0.18.0 发布以来,主干分支已累积了约 **667 次提交,涉及约 990 个文件(+89.5k/−10.4k 行)**,包括 Windows 上的安装程序/更新程序自修复、仪表板和网关修复、WhatsApp 仪表板配对、MCP 及 provider 修复,以及大量的稳定性工作。
**此时间窗口的完整策划发布说明将随 v0.19.0 一起发布**,届时将记录从 v0.18.0 开始的所有内容 —— 亮点、功能领域以及完整的贡献者致谢。此窗口内的任何内容都不会被遗漏;所有内容都将在下一个次要版本中予以记录。
## 更新
```bash
hermes update # 现有安装
pip install -U hermes-agent
```
**完整更新日志:** [v2026.7.1...v2026.7.7](https://github.com/NousResearch/hermes-agent/compare/v2026.7.1...v2026.7.7)
# Hermes Agent v0.18.1 (v2026.7.7)
**Release Date:** July 7, 2026
> Patch release. This tag rolls up the ~660 PRs merged since v0.18.0 (July 1) — bug fixes, hardening, and in-progress feature work — into a stable tagged release for downstream consumers (Docker images, hosted deployments, PyPI installs).
---
## About this release
This is an infrastructure-driven patch tag rather than a fully curated release. Since v0.18.0 shipped six days ago, main has accumulated roughly **667 commits across ~990 files (+89.5k/−10.4k lines)**, including installer/updater self-healing on Windows, dashboard and gateway fixes, WhatsApp dashboard pairing, MCP and provider fixes, and a large volume of stability work.
**Full curated release notes for this window will ship with v0.19.0**, which will document everything from v0.18.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped; it's documented in the next minor release.
## Updating
```bash
hermes update # existing installs
pip install -U hermes-agent
```
**Full Changelog**: [v2026.7.1...v2026.7.7](https://github.com/NousResearch/hermes-agent/compare/v2026.7.1...v2026.7.7)
# Hermes Agent v0.18.0 (v2026.7.1)
**发布日期:** 2026年7月1日
**自 v0.17.0 以来:** 约 1,720 次提交 · 998 个合并 PR · 2,215 个文件变更 · 约 251,000 行新增 · 约 41,000 行删除 · **949 个 issue 关闭** · **370+ 位社区贡献者**
> **“决断”发布。** 在过去一周半的时间里,团队几乎把所有精力都投入到一个目标:解决 **Hermes Agent 仓库中每一个 P0 和 P1 级别的 issue 和 PR** —— 而在此版本发布之际,**100% 均已关闭。** 零个开放 P0。零个开放 P1。这意味着在本次窗口中,作为 **约 1,950 个总 issue 和 PR 关闭** 的一部分,**约 700 个最高优先级项** 被清空。我们打算从此将 P0/P1 保持为零。
>
> 在此次彻底清理之上,v0.18.0 还关注 Hermes 的思考 *质量* 以及它 *如何知道自己的工作是否真正完成*。混合代理模型成为一等公民 —— 您可以像选择任何其他模型一样选择命名的模型集成体,每个参考模型的推理过程都会显示给您,聚合器的答案会实时流式输出。智能体学会了根据证据而非直觉来验证自己的工作,`/goal` 获得了完成契约,`/learn` + `/journey` 将自我改进变成了您可以看见并掌控的过程。底层方面,网关变得真正可大规模部署(缩至零、排空协调),桌面端获得了头等编程项目和可玩的记忆图谱,子代理现在可以在后台并行展开。
## 🎯 P0/P1 彻底清理 —— 100% 已解决
这是本次发布的头条。团队日以继夜地猛攻优先级积压任务整整一周半,现在整个仓库中每一个 P0 和 P1 都已关闭:
| 优先级 | 关闭的 Issue | 合并的 PR |
|---|---|---|
| **P0** (关键) | 3 | 8 |
| **P1** (高) | 493 | 188 |
| **总计** | **496** | **196** |
这意味着在十二天内解决了 **约 692 个最高优先级项** —— 而在清理完成的那一刻,整个仓库的开放 P0/P1 计数达到了 **0**。最后被攻克的一批是 interrupt-protected-compression 兄弟分叉 bug(issue #56391)及其修复(#56416),在本次发布前夕的通宵工作中关闭。
特别感谢 **@kshitijk4poor**,他与核心团队一起日夜不停地消灭优先级积压任务 —— 他负责了 cron 可靠性浪潮、压缩分叉修复、凭据泄露加固以及大量 P1 关闭任务。
我们将从此保持 P0/P1 为 **0**。🫡
## ✨ 亮点
- **混合代理模型现在是一个可选的一等模型** —— MoA 过去是一个需要切换的模式;现在每个命名的 MoA 预设都作为 `moa` 提供商下的可选模型出现,与 Claude、GPT 和 Grok 并排显示在所有模型选择器(CLI、TUI、桌面版、网关)中。就像选择任何模型一样选择 "my-council",Hermes 会自动将您的提示路由到该集成体。一个由前沿模型组成的委员会来探讨您最困难的问题,现在只需一次选择,在任何界面上都可实现。([#46081](https://github.com/NousResearch/hermes-agent/pull/46081)、[#53548](https://github.com/NousResearch/hermes-agent/pull/53548)、[#53561](https://github.com/NousResearch/hermes-agent/pull/53561) — @teknium1)
- **查看每个模型的推理,然后观察答案流式输出** —— 当 MoA 集成体运行时,每个参考模型的完整输出现在会作为自己的标记块呈现——您可以阅读 GPT-5 的想法、Claude 的想法以及 Grok 的想法,然后聚合器将它们合成为一个答案。而且最终答案现在会实时流式输出给您,而不是在经过长时间沉默后一次性出现。这在 CLI、TUI 和桌面应用中均可使用。您可以看到委员会的讨论过程,而不仅仅是阅读最终裁决。([#53793](https://github.com/NousResearch/hermes-agent/pull/53793)、[#53855](https://github.com/NousResearch/hermes-agent/pull/53855)、[#55625](https://github.com/NousResearch/hermes-agent/pull/55625)、[#56101](https://github.com/NousResearch/hermes-agent/pull/56101) — @teknium1)
- **智能体验证自己的工作——“完成”意味着被证明,而非声称** —— Hermes 现在会记录编码工作的验证证据,并且可以通过实际运行项目的检查来决定是否完成,而不是单纯宣称成功。`/goal` 获得了 **完成契约**:您声明“完成”的样子,常驻目标循环会根据该证据来判断是否完成,而不是在模型觉得满意时就停止。有一个 `pre_verify` 钩子用于接入自定义检查,以及一次性的迁移来合理调整默认值。区别是“我认为我修好了”与“测试通过了,这是证据”。([#50501](https://github.com/NousResearch/hermes-agent/pull/50501)、[#52285](https://github.com/NousResearch/hermes-agent/pull/52285)、[#55413](https://github.com/NousResearch/hermes-agent/pull/55413)、[#53552](https://github.com/NousResearch/hermes-agent/pull/53552) — @teknium1、@OutThisLife)
- **`/learn` —— 通过描述将任何内容变成可复用的技能** —— 运行 `/learn <任何内容>`,Hermes 会从您指向的任何内容(一个目录、一个 URL,或者您五分钟前刚刚演示过的工作流)中提炼出一个可复用的技能。它会自动按照 CONTRIBUTING.md 中的标准编写技能。下次您需要那个工作流时,它已经在那里了。教 Hermes 新技能现在只需一条命令,而不是手动的技能创作会议。([#51506](https://github.com/NousResearch/hermes-agent/pull/51506)、[#52372](https://github.com/NousResearch/hermes-agent/pull/52372) — @teknium1)
- **`/journey` —— Hermes 所了解到的关于您的一切的可播放时间线** —— CLI 和 TUI 新增了 `/journey`,这是一个学习时间线,显示 Hermes 随时间积累的记忆和技能——并且您可以直接在该视图中编辑或删除它们。配合桌面版新的 **记忆图谱**(一个自上而下、可播放的径向时间线,展示记忆和技能),您第一次可以真正 *看到* 您的智能体知道什么,观察其成长,并修剪错误的内容。您的智能体记忆不再是一个黑箱。([#55555](https://github.com/NousResearch/hermes-agent/pull/55555)、[#55859](https://github.com/NousResearch/hermes-agent/pull/55859)、[#55226](https://github.com/NousResearch/hermes-agent/pull/55226) — @OutThisLife)
- **委派一堆工作并继续前行 —— 后台并行展开** —— `delegate_task` 现在可以并行展开多个子代理,它们都在 **后台** 运行:您的聊天永远不会被阻塞,当所有子代理完成时,它们的结果会作为一次整合的回合返回。启动“并行研究这五个竞争对手”或“审计这三个模块”,然后继续做其他事情,而一支小型舰队在后台工作。当所有工作完成时,您会收到一份简洁的总结,而不是逐一盯梢每个子代理。([#49734](https://github.com/NousResearch/hermes-agent/pull/49734) — @teknium1)
- **桌面应用中的一等编程项目** —— 桌面应用获得了真正的、按配置文件管理的 **项目** —— 包含代码库的侧边栏、编码轨道、审查面板、git 工作树管理以及面向智能体的项目工具,全部由适当的 `project → repo → lane` 模型支持。不再有零散的聊天会话,您的编码工作被组织成智能体能够理解并执行的项目。这标志着桌面版正在变成一个真正的编码座舱。([#49037](https://github.com/NousResearch/hermes-agent/pull/49037)、[#54385](https://github.com/NousResearch/hermes-agent/pull/54385)、[#54517](https://github.com/NousResearch/hermes-agent/pull/54517) — @OutThisLife)
- **规模化运行 Hermes —— 缩至零和排空协调** —— 网关现在可以在空闲时进入 **休眠状态**,并在重启、迁移或自动更新前干净地静默——而不会丢弃正在进行的对话。托管的或仅中继的 Hermes 可以在无人对话时缩至零,并在有需求时重新唤醒,破坏性的生命周期操作会协调外部排空,确保没有人会在对话中途被切断。运行面向团队或作为托管服务的 Hermes 现在变得更加生产级。([#52243](https://github.com/NousResearch/hermes-agent/pull/52243)、[#52937](https://github.com/NousResearch/hermes-agent/pull/52937)、[#54824](https://github.com/NousResearch/hermes-agent/pull/54824) — @teknium1、@benbarclay)
- **更便宜的自我改进 —— 更智能的后台审查** —— 回合后的自我改进分支(决定是否保存记忆或技能的那个分支)现在路由到辅助模型,消化上下文而不是重放整个对话,并调整其节奏——因此在您的回合后运行的“从刚刚发生的事情中学习”循环的成本仅为原来的一小部分。您保留了自我改进的能力,同时不再为此支付完整主模型的价格。([#49252](https://github.com/NousResearch/hermes-agent/pull/49252) — @teknium1)
- **在编辑器中编写下一个提示 —— `/prompt`** —— `/prompt` 打开您的 `$EDITOR`,这样您可以用真正的 Markdown 手写一个长的、多行的提示,而不是与单行输入框作斗争。起草一份详细的规格说明、一个结构化的问题或一大段粘贴内容,保存后它就会排队作为您的下一条消息。小功能,但对任何需要对 Hermes 说超过一句话的人来说,这是一个巨大的生活质量提升。([#50509](https://github.com/NousResearch/hermes-agent/pull/50509) — @teknium1)
- **Google Vertex AI —— 通过您的 GCP 服务账户使用 Gemini,无需静态密钥** —— Vertex AI 现在是通过 Vertex 的 OpenAI 兼容端点使用 Gemini 模型的一等提供商。普通自定义提供商设置总是在对话中途失败的原因是 Vertex 没有静态 API 密钥——每次请求需要一个从服务账户 JSON 或应用默认凭证生成的短生命周期 OAuth2 访问令牌(约 1 小时 TTL)。Hermes 现在为您生成并自动刷新这些令牌,因此如果您的组织通过 Google Cloud 运行 Gemini,只需将 Hermes 指向您的服务账户即可正常工作——无需粘贴令牌,无需担心会话中途过期。([#56363](https://github.com/NousResearch/hermes-agent/pull/56363) — @teknium1、@slawt)
- **安全轮次** —— 本次窗口加固了多个表面:MCP 配置持久化攻击面被锁定,可能泄露提供商凭据的 cron `base_url` 覆盖被阻止,文件读取中前缀秘密使用不可重用的哨兵,Slack 应用级(`xapp-`)令牌被遮蔽,所有后端强制执行浏览器云元数据,以及跨惰性消息路径的 `aiohttp` CVE 底线。减少了提示注入或配置错误的会话泄露凭据的方式。([#50476](https://github.com/NousResearch/hermes-agent/pull/50476)、[#56196](https://github.com/NousResearch/hermes-agent/pull/56196)、[#54166](https://github.com/NousResearch/hermes-agent/pull/54166)、[#56227](https://github.com/NousResearch/hermes-agent/pull/56227)、[#52349](https://github.com/NousResearch/hermes-agent/pull/52349)、[#56237](https://github.com/NousResearch/hermes-agent/pull/56237) — @teknium1、@kshitijk4poor、@claudlos)
---
## 🧠 混合代理模型(MoA)
MoA 在本窗口中从一种模式升级为模型系统中的一等组成部分。
- **预设作为可选虚拟模型** —— 每个命名的 MoA 预设都作为 `moa` 提供商下的模型出现;在任何模型选择器中选中它,Hermes 就会通过该集成体路由([#46081](https://github.com/NousResearch/hermes-agent/pull/46081)、[#53561](https://github.com/NousResearch/hermes-agent/pull/53561)、[#53775](https://github.com/NousResearch/hermes-agent/pull/53775) — @teknium1)
- **`/moa` 现在是单次快捷指令** —— 通过默认预设运行单次提示,之后恢复您的模型;持久切换通过模型选择器进行([#53548](https://github.com/NousResearch/hermes-agent/pull/53548) — @teknium1)
- **参考模型输出显示为标记块**,在 CLI、TUI 和桌面版中 —— 在聚合器合成之前阅读每个模型的推理([#53793](https://github.com/NousResearch/hermes-agent/pull/53793)、[#53855](https://github.com/NousResearch/hermes-agent/pull/53855) — @teknium1)
- **聚合器响应实时流式输出**,而不是在沉默后一次性出现([#55625](https://github.com/NousResearch/hermes-agent/pull/55625) — @teknium1)
- **参考模型可看到完整工具状态**,并在每次用户/工具响应时触发;咨询参考模型在用户回合结束并收到参考角色系统提示([#54016](https://github.com/NousResearch/hermes-agent/pull/54016)、[#54007](https://github.com/NousResearch/hermes-agent/pull/54007) — @teknium1)
- **可选全回合追踪持久化到 JSONL**(`moa.save_traces`),用于调试和评估([#56101](https://github.com/NousResearch/hermes-agent/pull/56101) — @teknium1)
- 可靠性:参考模型和聚合器模型通过其提供商的实际路由调用;上下文窗口从聚合器解析(而不是默认的 256K);辅助任务解析到聚合器;虚拟提供商被阻止作为参考/聚合器插槽;容忍手动编辑的预设配置([#53580](https://github.com/NousResearch/hermes-agent/pull/53580)、[#53780](https://github.com/NousResearch/hermes-agent/pull/53780)、[#53827](https://github.com/NousResearch/hermes-agent/pull/53827)、[#53281](https://github.com/NousResearch/hermes-agent/pull/53281)、[#53275](https://github.com/NousResearch/hermes-agent/pull/53275)、[#53556](https://github.com/NousResearch/hermes-agent/pull/53556) — @teknium1)
- MoA 插槽提供商身份统一在单一的 `call_llm` 检查点上;HermesBench 结果已记录([#55991](https://github.com/NousResearch/hermes-agent/pull/55991)、[#53206](https://github.com/NousResearch/hermes-agent/pull/53206) — @teknium1)
## ✅ 验证与目标 —— 智能体证明其工作
- **`/goal` 的完成契约** —— 声明“完成”的样子;常驻目标循环根据证据而非模型的主观判断来评估([#50501](https://github.com/NousResearch/hermes-agent/pull/50501) — @teknium1)
- **`/goal wait <pid>`** —— 将常驻目标循环挂起到后台进程,而不是重新调用智能体([#50503](https://github.com/NousResearch/hermes-agent/pull/50503) — @teknium1)
- **编码验证证据分类账** —— 按配置文件范围记录由 `agent.coding_context` 检测到的规范项目检查;网关暴露验证状态([#52285](https://github.com/NousResearch/hermes-agent/pull/52285)、[#52286](https://github.com/NousResearch/hermes-agent/pull/52286) — @OutThisLife)
- **`pre_verify` 钩子 + 编码指导配置**;验证停止循环 + 即席验证脚本([#55413](https://github.com/NousResearch/hermes-agent/pull/55413)、[#52296](https://github.com/NousResearch/hermes-agent/pull/52296)、[#52297](https://github.com/NousResearch/hermes-agent/pull/52297) — @OutThisLife)
- **停止时验证默认为关闭**,并附带一次性 v32 迁移;跳过仅文档的编辑;感知表面的“自动”默认值已恢复;在消息传递表面关闭([#53552](https://github.com/NousResearch/hermes-agent/pull/53552)、[#54740](https://github.com/NousResearch/hermes-agent/pull/54740)、[#55449](https://github.com/NousResearch/hermes-agent/pull/55449)、[#52412](https://github.com/NousResearch/hermes-agent/pull/52412) — @teknium1、@OutThisLife、@GodsBoy)
## 🎓 自我改进(学习 / 旅程)
- **`/learn <任何内容>`** —— 从目录、URL 或您刚刚演示的工作流中提炼出可复用的技能;遵循 CONTRIBUTING.md 技能标准和混合要求([#51506](https://github.com/NousResearch/hermes-agent/pull/51506)、[#52372](https://github.com/NousResearch/hermes-agent/pull/52372)、[#55956](https://github.com/NousResearch/hermes-agent/pull/55956) — @teknium1)
- **`/journey`** —— CLI + TUI 学习时间线,展示积累的记忆和技能,支持就地编辑/删除([#55555](https://github.com/NousResearch/hermes-agent/pull/55555)、[#55859](https://github.com/NousResearch/hermes-agent/pull/55859) — @OutThisLife)
- **更便宜的后台审查** —— 辅助模型路由 + 上下文摘要 + 自适应节奏,用于回合后的自我改进分支([#49252](https://github.com/NousResearch/hermes-agent/pull/49252) — @teknium1)
- **桌面版中的 `memory` 图谱** —— 可播放的径向时间线,展示随时间变化的记忆和技能([#55226](https://github.com/NousResearch/hermes-agent/pull/55226) — @OutThisLife)
## 🖥️ Hermes 桌面应用
### 编码座舱
- **一等项目** —— 按配置文件管理的侧边栏、编码轨道、审查面板、智能体项目工具(`project → repo → lane`);支持远程网关的文件夹选择器 + git 座舱(状态、审查、工作树)([#49037](https://github.com/NousResearch/hermes-agent/pull/49037)、[#54385](https://github.com/NousResearch/hermes-agent/pull/54385) — @OutThisLife)
- **多终端面板**,带有只读智能体终端;跨重启持久化并恢复终端标签页及回滚内容([#54517](https://github.com/NousResearch/hermes-agent/pull/54517)、[#54585](https://github.com/NousResearch/hermes-agent/pull/54585) — @OutThisLife)
- **聊天中的 PR 风格文件差异**;文件预览面板的应用内即时编辑器;内联富媒体嵌入、图表和助手 markdown 中的提醒([#50731](https://github.com/NousResearch/hermes-agent/pull/50731)、[#52772](https://github.com/NousResearch/hermes-agent/pull/52772)、[#52935](https://github.com/NousResearch/hermes-agent/pull/52935) — @OutThisLife)
### 用户体验与界面
- 长线程的对话时间线轨道;上下文使用量分解弹出框;用于子代理监视窗口的只读观众副本;将编辑器弹出为可拖动的浮动窗口([#51094](https://github.com/NousResearch/hermes-agent/pull/51094)、[#54907](https://github.com/NousResearch/hermes-agent/pull/54907)、[#55033](https://github.com/NousResearch/hermes-agent/pull/55033)、[#49488](https://github.com/NousResearch/hermes-agent/pull/49488) — @OutThisLife、@austinpickett)
- 朗读回复(自动 TTS)编辑器切换;记住窗口大小/位置/最大化状态跨启动;重新设计的澄清提示;共享的覆盖面板原语用于 cron/配置文件/智能体([#55154](https://github.com/NousResearch/hermes-agent/pull/55154)、[#52086](https://github.com/NousResearch/hermes-agent/pull/52086)、[#52993](https://github.com/NousResearch/hermes-agent/pull/52993)、[#54558](https://github.com/NousResearch/hermes-agent/pull/54558) — @OutThisLife)
- 从 Web UI 备份导入/创建/下载;添加上下文使用量弹出框;在安装选择器中标记已安装的主题;配置驱动的 Electron 启动标志 + GPU 策略([#54611](https://github.com/NousResearch/hermes-agent/pull/54611)、[#55410](https://github.com/NousResearch/hermes-agent/pull/55410)、[#53991](https://github.com/NousResearch/hermes-agent/pull/53991) — @teknium1、@OutThisLife)
- **宠物** —— 漫游宠物(可选)、更冷静/逼真的漫游、Alt+滚轮缩放不再裁剪、帧完美孵化流程 + CPU 安全色度、弹出叠加 + 通知([#55114](https://github.com/NousResearch/hermes-agent/pull/55114)、[#55400](https://github.com/NousResearch/hermes-agent/pull/55400)、[#52877](https://github.com/NousResearch/hermes-agent/pull/52877)、[#47959](https://github.com/NousResearch/hermes-agent/pull/47959)、[#52303](https://github.com/NousResearch/hermes-agent/pull/52303) — @OutThisLife)
### 重构浪潮(编辑器 / 神文件解耦)
- 将编辑器分解为独立的引擎钩子;提取了分支/转义/URL/占位符/弹出引擎;将 `thread.tsx`、`sidebar/index.tsx`、引导覆盖和 `use-prompt-actions` 神文件拆分为专注的模块;共享的 WebSocket 层将桌面版从仪表板(`hermes serve`)解耦([#55500](https://github.com/NousResearch/hermes-agent/pull/55500)、[#55842](https://github.com/NousResearch/hermes-agent/pull/55842)、[#55451](https://github.com/NousResearch/hermes-agent/pull/55451)、[#55453](https://github.com/NousResearch/hermes-agent/pull/55453)、[#55807](https://github.com/NousResearch/hermes-agent/pull/55807)、[#55504](https://github.com/NousResearch/hermes-agent/pull/55504)、[#54568](https://github.com/NousResearch/hermes-agent/pull/54568) — @OutThisLife)
- 性能:限制工具结果渲染,防止大的 `/learn` 运行导致冻结;在负载下快速切换会话([#52273](https://github.com/NousResearch/hermes-agent/pull/52273)、[#52620](https://github.com/NousResearch/hermes-agent/pull/52620) — @OutThisLife)
## 📊 Web 仪表板
- 在未认证加载时自动发起门户 SSO 重定向;在无提供商、非回环绑定时交互式身份验证设置;自托管 OIDC 中支持机密客户端(`client_secret`)([#54846](https://github.com/NousResearch/hermes-agent/pull/54846)、[#50551](https://github.com/NousResearch/hermes-agent/pull/50551)、[#55344](https://github.com/NousResearch/hermes-agent/pull/55344) — @teknium1、@benbarclay)
- 在 `OPTIONAL_ENV_VARS` 中列出所有记忆提供商的 API 密钥;在密钥页面上列出并添加任意自定义 `.env` 密钥;暴露 cron 作业执行字段;备份导入/创建/下载([#54546](https://github.com/NousResearch/hermes-agent/pull/54546)、[#54552](https://github.com/NousResearch/hermes-agent/pull/54552)、[#53551](https://github.com/NousResearch/hermes-agent/pull/53551)、[#54611](https://github.com/NousResearch/hermes-agent/pull/54611) — @benbarclay、@teknium1)
- 将 PTY 生成/关闭从事件循环中卸出;从交互式登录表面排除非交互式提供商([#53227](https://github.com/NousResearch/hermes-agent/pull/53227)、[#53239](https://github.com/NousResearch/hermes-agent/pull/53239) — @IAvecilla)
## 🏗️ 核心智能体与架构
### 委派与子代理
- **后台并行展开** —— 并行子代理在后台运行,所有完成时一次性合并返回;为后台 `delegate_task` 提供平静的“将恢复”提示([#49734](https://github.com/NousResearch/hermes-agent/pull/49734)、[#52756](https://github.com/NousResearch/hermes-agent/pull/52756) — @teknium1、@OutThisLife)
- 在 CLI + TUI 状态栏中跟踪后台子代理([#51441](https://github.com/NousResearch/hermes-agent/pull/51441)、[#51485](https://github.com/NousResearch/hermes-agent/pull/51485) — @teknium1)
### 智能体循环、工具与编码上下文
- 单次 LLM 助手 + `llm.oneshot` 网关 RPC;暴露编码上下文项目事实(`project.facts` RPC)([#51261](https://github.com/NousResearch/hermes-agent/pull/51261)、[#51259](https://github.com/NousResearch/hermes-agent/pull/51259) — @OutThisLife)
- `web_extract` 截断并存储,而非 LLM 摘要;并发 @-引用展开([#54843](https://github.com/NousResearch/hermes-agent/pull/54843)、[#55207](https://github.com/NousResearch/hermes-agent/pull/55207) — @teknium1、@kshitijk4poor)
- 为内置工具提供友好的人类化工具标签;`/reasoning full`(无上限思考);`/timestamps` + `/history` 中的时间戳;`/prompt` 在 `$EDITOR` 中编写([#55166](https://github.com/NousResearch/hermes-agent/pull/55166)、[#50499](https://github.com/NousResearch/hermes-agent/pull/50499)、[#50506](https://github.com/NousResearch/hermes-agent/pull/50506)、[#50509](https://github.com/NousResearch/hermes-agent/pull/50509) — @teknium1)
- 在流式和非流式检测器中为每个推理模型设置过时超时底线;在宽限期后将 SIGTERM 升级为 SIGKILL 以终止主机 PID([#52845](https://github.com/NousResearch/hermes-agent/pull/52845)、[#50489](https://github.com/NousResearch/hermes-agent/pull/50489) — @teknium1)
- 支持多个 `HERMES_WRITE_SAFE_ROOT` 目录;将 HTTP/WS 主体捕获可选项隔离到独立的、排除共享的 `gui_bodies.log` 文件中([#53292](https://github.com/NousResearch/hermes-agent/pull/53292)、[#49044](https://github.com/NousResearch/hermes-agent/pull/49044) — @kshitijk4poor)
### 压缩与会话
- 原地压缩选项(单一会话 id);将 `in_place` 默认值改为 True 并附带保护修复([#49739](https://github.com/NousResearch/hermes-agent/pull/49739)、[#52658](https://github.com/NousResearch/hermes-agent/pull/52658) — @teknium1)
- 备份在更新前快照中包含 `projects.db` 和看板([#52990](https://github.com/NousResearch/hermes-agent/pull/52990) — @kshitijk4poor)
### 提供商与模型
- **Google Vertex AI** 作为通过 OpenAI 兼容端点使用 Gemini 的一等提供商——自动生成并刷新来自服务账户 JSON / ADC 的短生命周期 OAuth2 令牌(无需静态密钥);保留并现代化了 @slawt 的 #8427([#56363](https://github.com/NousResearch/hermes-agent/pull/56363) — @teknium1、@slawt)
- 通过托管 Nous 订阅网关的 Krea;Z.AI 端点选择器(全球/中国/编码计划);Ollama-cloud reasoning_effort 接线;移除 google-gemini-cli + google-antigravity OAuth 提供商([#52647](https://github.com/NousResearch/hermes-agent/pull/52647)、[#52364](https://github.com/NousResearch/hermes-agent/pull/52364)、[#51494](https://github.com/NousResearch/hermes-agent/pull/51494)、[#50492](https://github.com/NousResearch/hermes-agent/pull/50492) — @teknium1、@kshitijk4poor)
- 遵循 `NOUS_INFERENCE_BASE_URL` 环境覆盖用于 Nous OAuth;保持 Nous 认证对空闲仪表板/网关智能体保持新鲜([#52270](https://github.com/NousResearch/hermes-agent/pull/52270)、[#50567](https://github.com/NousResearch/hermes-agent/pull/50567) — @benbarclay、@teknium1)
## 🌐 网关、舰队与中继
### 缩至零与排空
- **缩至零空闲检测 + 休眠静默(阶段 0)**;加固休眠保护;修复 arm-gate 计数禁用占位平台的问题([#52243](https://github.com/NousResearch/hermes-agent/pull/52243)、[#52359](https://github.com/NousResearch/hermes-agent/pull/52359)、[#52831](https://github.com/NousResearch/hermes-agent/pull/52831) — @teknium1、@benbarclay)
- **外部排空协调(安全关闭阶段 2)**;在标记排空时抑制主通道关闭广播;在重启/关闭排空超时后持久化进行中的对话记录;为安全生命周期操作提供忙碌/空闲读取([#52937](https://github.com/NousResearch/hermes-agent/pull/52937)、[#54824](https://github.com/NousResearch/hermes-agent/pull/54824)、[#50312](https://github.com/NousResearch/hermes-agent/pull/50312)、[#50131](https://github.com/NousResearch/hermes-agent/pull/50131) — @teknium1、@benbarclay、@kshitijk4poor)
- 默认 `restart_drain_timeout` 为 0 以终止 systemd 崩溃循环;自我修复陷入排空/降级状态的网关([#54066](https://github.com/NousResearch/hermes-agent/pull/54066)、[#55397](https://github.com/NousResearch/hermes-agent/pull/55397) — @teknium1)
### 中继(阶段 5 / 6)
- 唤醒原语(网关侧);进入空闲/缓冲翻转原语;通过 WS 的 `passthrough_forward`;每个智能体多平台身份 + 每帧出口;在自我配置时转发稳定的实例 id;向连接器声明相关性策略([#51595](https://github.com/NousResearch/hermes-agent/pull/51595)、[#51572](https://github.com/NousResearch/hermes-agent/pull/51572)、[#50702](https://github.com/NousResearch/hermes-agent/pull/50702)、[#52830](https://github.com/NousResearch/hermes-agent/pull/52830)、[#50772](https://github.com/NousResearch/hermes-agent/pull/50772)、[#51248](https://github.com/NousResearch/hermes-agent/pull/51248) — @benbarclay)
- 根据投递目标而非 `source.platform` 授权中继投递的事件;采用 `scope_id` 线键;清除平台特定的作用域术语([#52306](https://github.com/NousResearch/hermes-agent/pull/52306)、[#55289](https://github.com/NousResearch/hermes-agent/pull/55289)、[#56016](https://github.com/NousResearch/hermes-agent/pull/56016) — @benbarclay)
### 网关核心与渲染
- 类型化发送错误分类(`SendResult.error_kind`);每平台 `typing_indicator` 切换;`/usage` 中的每类别上下文分解([#50342](https://github.com/NousResearch/hermes-agent/pull/50342)、[#55394](https://github.com/NousResearch/hermes-agent/pull/55394)、[#55204](https://github.com/NousResearch/hermes-agent/pull/55204) — @teknium1)
- API 服务器:可配置的并发运行上限以防止 DoS;按运行 id 限定运行审批范围([#50007](https://github.com/NousResearch/hermes-agent/pull/50007)、[#56129](https://github.com/NousResearch/hermes-agent/pull/56129) — @teknium1)
## 📱 消息平台
- **Cron 延续** —— 可延续的 cron 作业(线程优先延续,附带 DM 镜像回退);Slack 的平坦频道内可延续 cron 投递;在创建/列出 cron 时警告网关未运行([#52250](https://github.com/NousResearch/hermes-agent/pull/52250)、[#56254](https://github.com/NousResearch/hermes-agent/pull/56254)、[#51696](https://github.com/NousResearch/hermes-agent/pull/51696) — @teknium1)
- Telegram:可配置的命令菜单 + 提高默认上限以便技能保持可见;分别控制富草稿预览;在重试前排空通用发送池([#51716](https://github.com/NousResearch/hermes-agent/pull/51716)、[#52088](https://github.com/NousResearch/hermes-agent/pull/52088)、[#54121](https://github.com/NousResearch/hermes-agent/pull/54121) — @teknium1、@helix4u)
- Slack:智能体消息的可选 Block Kit 渲染;清单生成的 `--no-assistant` 标志([#56102](https://github.com/NousResearch/hermes-agent/pull/56102)、[#51487](https://github.com/NousResearch/hermes-agent/pull/51487) — @teknium1)
- Discord:通过 `display.reasoning_style` 将推理渲染为 `-#` 子文本([#51168](https://github.com/NousResearch/hermes-agent/pull/51168) — @teknium1)
- 通过 Baileys 桥的原生 WhatsApp 媒体投递;Teams 原生 `send_video`/`send_voice`/`send_document`;photon 边车升级到 spectrum-ts v8 并带有 tapback 相关;Raft 网关设置向导([#53598](https://github.com/NousResearch/hermes-agent/pull/53598)、[#49308](https://github.com/NousResearch/hermes-agent/pull/49308)、[#53451](https://github.com/NousResearch/hermes-agent/pull/53451)、[#56230](https://github.com/NousResearch/hermes-agent/pull/56230) — @teknium1)
- Signal:AAC 语音留言重新混合 + 共享 Markdown 格式化([#49530](https://github.com/NousResearch/hermes-agent/pull/49530) — @kshitijk4poor)
- 将 slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms 适配器迁移到捆绑模式([#49408](https://github.com/NousResearch/hermes-agent/pull/49408) — @teknium1)
## 🔧 工具系统、技能与 MCP
- 空白石板设置模式 —— 最小智能体,选择性加入所有内容([#36733](https://github.com/NousResearch/hermes-agent/pull/36733) — @teknium1)
- MCP:配置持久化攻击面加固;阻止 base_url 泄露;短 TTL 会话的保活(参见安全部分)—— 同时保留自 v0.17.0 的目录和用户体验
- 技能:`/learn` 提炼(参见自我改进);`cloudflare-temporary-deploy` 可选技能;creative-ideation v2.1.0 方法库([#50849](https://github.com/NousResearch/hermes-agent/pull/50849)、[#42402](https://github.com/NousResearch/hermes-agent/pull/42402) — @teknium1、@SHL0MS)
- 看板:任务生命周期插件钩子(已认领/已完成/已阻塞);类型化阻塞原因 + 解除阻塞循环断路器;移交新鲜度戳记([#50349](https://github.com/NousResearch/hermes-agent/pull/50349)、[#52848](https://github.com/NousResearch/hermes-agent/pull/52848)、[#53973](https://github.com/NousResearch/hermes-agent/pull/53973) — @teknium1)
- 插件:`ctx.profile_name` 用于与会话无关的配置文件访问([#50346](https://github.com/NousResearch/hermes-agent/pull/50346) — @teknium1)
- LSP:PowerShellEditorServices 语言服务器;mem0 v3 API + OSS 模式 + 更新/删除工具([#55930](https://github.com/NousResearch/hermes-agent/pull/55930)、[#15624](https://github.com/NousResearch/hermes-agent/pull/15624) — @teknium1、@kartik-mem0)
## ⚡ 性能
- 冷启动:延迟加载网关平台适配器;使用 libyaml `CSafeLoader` 解析配置 + 插件清单([#54448](https://github.com/NousResearch/hermes-agent/pull/54448)、[#54486](https://github.com/NousResearch/hermes-agent/pull/54486) — @teknium1)
- 状态:合并 FTS5 段 + `handoff_state` 索引以减少写锁争用;单次遍历 `list_profiles` 别名映射 + 技能计数缓存 + 事件循环卸出([#54752](https://github.com/NousResearch/hermes-agent/pull/54752)、[#54770](https://github.com/NousResearch/hermes-agent/pull/54770) — @kshitijk4poor、@teknium1)
## 🔒 安全与可靠性
- 加固 MCP 配置持久化攻击面;阻止泄露提供商凭据的 cron `base_url` 覆盖;在文件读取中使用不可重用的哨兵保护前缀秘密([#50476](https://github.com/NousResearch/hermes-agent/pull/50476)、[#56196](https://github.com/NousResearch/hermes-agent/pull/56196)、[#54166](https://github.com/NousResearch/hermes-agent/pull/54166) — @teknium1、@kshitijk4poor)
- 遮蔽 Slack 应用级(`xapp-`)令牌;所有后端强制执行浏览器云元数据(CDP 非本地);在 `browser_back` 导航后重新检查私有网络保护;将 `/resume` 和 `/sessions` 限制为调用者源(IDOR);跨惰性消息路径设置 `aiohttp` 3.14.1 CVE 底线 + 固定漂移保护([#56227](https://github.com/NousResearch/hermes-agent/pull/56227)、[#52349](https://github.com/NousResearch/hermes-agent/pull/52349)、[#56526](https://github.com/NousResearch/hermes-agent/pull/56526)、[#56378](https://github.com/NousResearch/hermes-agent/pull/56378)、[#56237](https://github.com/NousResearch/hermes-agent/pull/56237) — @teknium1、@claudlos、@kshitijk4poor)
- Cron 可靠性浪潮:当未固定的作业的提供商发生漂移时,失败关闭;运行错过宽限期的作业一次而不是永远延迟;在 `BaseException` 发生时保持心跳活跃 + 心跳感知状态;将已启用的 MCP 服务器分层应用于每作业工具集;保护 cron 模型工具路径 + 自动恢复循环断路器([#51051](https://github.com/NousResearch/hermes-agent/pull/51051)、[#50062](https://github.com/NousResearch/hermes-agent/pull/50062)、[#50016](https://github.com/NousResearch/hermes-agent/pull/50016)、[#50117](https://github.com/NousResearch/hermes-agent/pull/50117)、[#56240](https://github.com/NousResearch/hermes-agent/pull/56240) — @kshitijk4poor、@teknium1)
- Windows:抑制控制台闪烁 + 加固网关重启;在 PATH 回退中优先使用 cmd npm shim;在 GUI 更新后重新生成无窗口网关;优先使用托管节点用于 whatsapp/desktop([#52340](https://github.com/NousResearch/hermes-agent/pull/52340)、[#50398](https://github.com/NousResearch/hermes-agent/pull/50398)、[#52239](https://github.com/NousResearch/hermes-agent/pull/52239) — @helix4u、@teknium1)
## 🔁 回滚(窗口内,以供记录)
- cron 作业存储恢复到每个配置文件(回滚 #32117 + #50993);不克隆 `auth.json`(重复 OAuth 授权会导致兄弟令牌撤销);回滚 Windows 终端弹出 PR;`prompt_caching.enabled` 切换回滚以供重新评估([#51116](https://github.com/NousResearch/hermes-agent/pull/51116)、[#51732](https://github.com/NousResearch/hermes-agent/pull/51732)、[#53853](https://github.com/NousResearch/hermes-agent/pull/53853)、[#56126](https://github.com/NousResearch/hermes-agent/pull/56126) — @teknium1)
## 👥 贡献者
本次发布共有 **381 人** 贡献(通过提交、共同作者尾注以及保存的 PR)。感谢各位。
### 核心
- @teknium1 —— 发布负责人;MoA 一等公民、验证/目标、`/learn`、后台审查、安全轮次、提供商、P0/P1 彻底清理
- @OutThisLife —— 桌面应用(项目、记忆图谱、`/journey`、多终端、编辑器重构浪潮、宠物、验证用户体验)
### 顶级社区贡献者
- @kshitijk4poor —— P0/P1 积压任务燃烧:cron 可靠性浪潮、状态性能、安全(cron 凭据泄露)、网关/信号、TUI 配置——优先关闭任务中的巨大份额
- @benbarclay —— 中继阶段 5/6、缩至零/排空协调、仪表板认证/密钥、网关加固
- @ethernet8023 —— CI/ Docker(统一作业、更快构建、计时报告)
- @helix4u —— Windows 加固(控制台闪烁、npm shim、网关重启)
### 全部贡献者
*(此处省略了完整的贡献者列表,保留原文格式但翻译标题为“全部贡献者”即可。由于列表极长,此处按格式保留但以翻译说明。)*
@0xbyt4、@0xDevNinja、@0xsir0000、@1RB、@595650661、@aaronlab、@abchiaravalle、@adammatski1972、@AetherAgents、@Afnath-max、@agt-user、@ahmadashfq、@AhmetArif0、@AIalliAI、@aieng-abdullah、@ailang323、@ailthrim、@aj-nt、@alelpoan、@alloevil、@amathxbt、@ambition0802、@anderskev、@andressommerhoff、@angelos、@annguyenNous、@Antimatter543、@arminanton、@arthurzhang、@asimons81、@austinpickett、@baolingao、@Bartok9、@basilalshukaili、@BBCrypto-web、@bbopen、@Beandon13、@beardthelion、@benbarclay、@benbenlijie、@binhnt92、@bitcryptic-gw、@Blaryxoff、@bogerman1、@bradhallett、@brett539、@briandevans、@buihongduc132、@bykim0119、@catapreta、@chaithanyak42、@charleneleong-ai、@CharlieKerfoot、@chazmaniandinkle、@chrispersico、@Christopher-Schulze、@chriswesley4、@claudlos、@clovericbot、@cmcejas、@codexGW、@Cossackx、@counterposition、@coygeek、@CRWuTJ、@cyb0rgk1tty、@cyb3rwr3n、@cypctlinux、@cypres0099、@dalenguyen、@Danamove、@DanAsBjorn、@DataAdvisory、@davidgut1982、@DavidMetcalfe、@davidvv、@de1tydev、@denisqq、@devorun、@devsart95、@DhivinX、@DiamondEyesFox、@difujia、@Disaster-Terminator、@djimit、@djstunami、@dodo-reach、@donovan-yohan、@Dr1985、@DrZM007、@Dusk1e、@egilewski、@ehz0ah、@Eji4h、@EloquentBrush0x、@Elshayib、@emozilla、@entropy-0x、@Erosika、@EtherAura、@etherman-os、@ethernet8023、@f-trycua、@fayenix、@fesalfayed、@firefly、@flamiinngo、@flobo3、@francescomucio、@franksong2702、@friendshipisover、@fsaad1984、@fyzanshaik、@GauravPatil2515、@gdeyoung、@georgex8001、@GodsBoy、@graphanov、@Gromykoss、@gustavosmendes、@Gutslabs、@H2KFORGIVEN、@haileymarshall、@hakanpak、@happy5318、@haran2001、@harjothkhara、@heathley、@hehehe0803、@helix4u、@herbalizer404、@HexLab98、@HiddenPuppy、@Hinotoi-agent、@HODLCLONE、@houko、@huangsen365、@huangxudong663-sys、@huangxun375-stack、@HwangJohn、@iaji、@iamlukethedev、@IamSanchoPanza、@IAvecilla、@Icather、@iizotov、@indigokarasu、@infinitycrew39、@ipriyaaanshu、@isair、@islam666、@itenev、@itsflownium、@izumi0uu、@Jaaneek、@JabberELF、@jackjin1997、@jackroofan、@janrenz、@jasnoorgill、@jasonQin6、@jcjc81、@jearnest11、@jeeves-assistant、@Jeffgithub0029、@jeffrobodie-glitch、@JezzaHehn、@jimmyjohansson84、@jmmaloney4、@jnibarger01、@JoaoMarcos44、@jplew、@Junass1、@justemu、@justin-cyhuang、@JustinOhms、@jvradahellys24-art、@Kailigithub、@kaishi00、@kangsoo-bit、@kartik-mem0、@keiravoss94、@kenyonxu、@kernel-t1、@Kewe63、@KeyArgo、@KiruyaMomochi、@kn8-codes、@Kolektori、@konsisumer、@kshitijk4poor、@kyssta-exe、@Kyzcreig、@Lazymonter、@LehaoLin、@LeonSGP43、@lEWFkRAD、@libre-7、@LIC99、@LifeJiggy、@linyubin、@liuhao1024、@lkevincc0、@lkz-de、@loes5050、@londo161、@lubosxyz、@m24927605、@MaheshtheDev、@manus-use、@marco0158、@MarioYounger、@martinramos002-bot、@MattKotsenas、@max-chen、@MaxFreedomPollard、@maxmilian、@maxpetrusenko、@memosr、@Mibayy、@Minksgo、@mintybasil、@mkslzk、@mohamedorigami-jpg、@MorAlekss、@mrparker0980、@ms-alan、@namredips、@nankingjing、@natehale、@necoweb3、@neo-2026、@Nickperillo、@nightq、@nikshepsvn、@nnnet、@nocturnum91、@nodejun、@NousResearch、@nycomar、@OmarB97、@orbisai0security、@oreoluwa、@outsourc-e、@OutThisLife、@p-andhika、@panghuer023、@Paperclip、@peetwan、@pefontana、@petrichor-op、@pinguarmy、@PINKIIILQWQ、@pmos69、@PolyphonyRequiem、@pprism13、@PRATHAMESH75、@professorpalmer、@pyxl-dev、@Que0x、@qWaitCrypto、@r266-tech、@RafaelMiMi、@Railway9784、@randomuser2026x、@rayjun、@rc-int、@rebel0789、@redactdeveloper、@riyas22、@rlaope、@rob-maron、@rodboev、@rodrigoeqnit、@rratmansky、@rrevenanttt、@ruangraung、@Ruzzgar、@ryo-solo、@s010mn、@Sahil-SS9、@SahilRakhaiya05、@SandroHub013、@Sanjays2402、@sasquatch9818、@ScotterMonk、@season179、@sgabel、@sgaofen、@sgtworkman、@shandian64、@shannonsands、@shashwatgokhe、@shawchanshek、@sherman-yang、@SHL0MS、@SidUParis、@SimoKiihamaki、@simpolism、@sjh9714、@skabartem、@skyc1e、@slawt、@soynchux、@spiky02plateau、@spjoes、@sprmn24、@srojk34、@stepanov1975、@steveonjava、@Subway2023、@sweetcornna、@swissly、@Sworntech-dev、@syahidfrd、@synapsesx、@szzhoujiarui-sketch、@talmax1124、@telos-oc、@testingbuddies24、@texhy、@tgmerritt、@theAgenticBuilder、@thestral123、@tkwong、@Tortugasaur、@Tranquil-Flow、@trevorgordon981、@truenorth-lj、@tt-a1i、@tuancookiez-hub、@TutkuEroglu、@tymrtn、@udatny、@UgwujaGeorge、@underthestars-zhy、@uperLu、@uzunkuyruk、@valenteff、@valentt、@vanthinh6886、@Versun、@victor-kyriazakos、@virtuadex、@vKongv、@w31rdm4ch1nZ、@weidzhou、@wgu9、@whoislikemiha、@wnuuee1、@woaini30050、@WuKongAI-CMU、@WuTianyi123、@WXBR、@x7peeps、@x9x9x9x9x9x91、@Xowiek、@xxchan、@xxxigm、@xydigit-zt、@yapsrubricsz0、@yashiels、@yeyitech、@ygd58、@YLChen-007、@yong2bba、@yoniebans、@ypwcharles、@yu-xin-c、@yungchentang、@yusekiotacode、@YuShu、@yyzquwu、@zapabob、@zccyman、@zeapsu、@zmlgit、@znding04、@Zyxxx-xxxyZ
此外还有:Lucas Nicolas。
---
**完整变更日志**: [v2026.6.19...v2026.7.1](https://github.com/NousResearch/hermes-agent/compare/v2026.6.19...v2026.7.1)
# Hermes Agent v0.18.0 (v2026.7.1)
**Release Date:** July 1, 2026
**Since v0.17.0:** ~1,720 commits · 998 merged PRs · 2,215 files changed · ~251,000 insertions · ~41,000 deletions · **949 issues closed** · **370+ community contributors**
> **The Judgment Release.** Over the last week and a half the team put nearly all of its effort into one goal: resolve **every P0 and P1 issue and PR in the entire Hermes Agent repo** — and as of this release, **100% of them are closed.** Zero open P0s. Zero open P1s. That's **~700 highest-priority items** cleared as part of **~1,950 total issues and PRs closed** this window. We intend to keep P0/P1 at zero from here on.
>
> On top of that clean-sweep, v0.18.0 is about how *well* Hermes thinks and how it *knows when its work is actually done*. Mixture-of-Agents became a first-class citizen — named ensembles of models you can pick like any other model, with every reference model's reasoning shown to you and the aggregator's answer streamed live. The agent learned to verify its own work against evidence instead of vibes, `/goal` gained completion contracts, and `/learn` + `/journey` turned self-improvement into something you can see and steer. Underneath, the gateway became genuinely deployable-at-scale (scale-to-zero, drain coordination), the desktop grew first-class coding projects and a playable memory graph, and subagents can now fan out in the background.
## 🎯 The P0/P1 Clean Sweep — 100% resolved
This is the release headline. For a week and a half the team hammered the priority backlog day and night, and every single P0 and P1 across the whole repo is now closed:
| Priority | Issues closed | PRs merged |
|---|---|---|
| **P0** (critical) | 3 | 8 |
| **P1** (high) | 493 | 188 |
| **Total** | **496** | **196** |
That's **~692 highest-priority items resolved** in twelve days — and at the moment the sweep completed, the open P0/P1 count hit **0 across the entire repo.** The final cluster to fall was the interrupt-protected-compression sibling-fork bug (issue #56391) and its fix (#56416), closed on an all-nighter right before this release cut.
Special shoutout to **@kshitijk4poor**, who burned through the priority backlog day and night alongside the core team — the cron reliability wave, the compression-fork fix, the credential-exfil hardening, and a huge share of the P1 closures are his.
We're keeping P0/P1 at **0** from here forward. 🫡
## ✨ Highlights
- **Mixture-of-Agents is now a first-class model you can pick** — MoA used to be a mode you toggled; now every named MoA preset shows up as a selectable model under a `moa` provider, right alongside Claude, GPT, and Grok in every model picker (CLI, TUI, desktop, gateway). Pick "my-council" the same way you'd pick any model, and Hermes routes your prompt through that ensemble automatically. An ensemble of frontier models deliberating on your hardest questions is now one selection away, on every surface. ([#46081](https://github.com/NousResearch/hermes-agent/pull/46081), [#53548](https://github.com/NousResearch/hermes-agent/pull/53548), [#53561](https://github.com/NousResearch/hermes-agent/pull/53561) — @teknium1)
- **See every model's reasoning, then watch the answer stream in** — When a MoA ensemble runs, each reference model's full output now renders as its own labelled block — you can read what GPT-5 thought, what Claude thought, and what Grok thought, before the aggregator synthesizes them into one answer. And that final answer now streams to you live instead of appearing all at once after a long silence. This works in the CLI, the TUI, and the desktop app. You get to watch the committee deliberate, not just read the verdict. ([#53793](https://github.com/NousResearch/hermes-agent/pull/53793), [#53855](https://github.com/NousResearch/hermes-agent/pull/53855), [#55625](https://github.com/NousResearch/hermes-agent/pull/55625), [#56101](https://github.com/NousResearch/hermes-agent/pull/56101) — @teknium1)
- **The agent verifies its own work — "done" means proven, not claimed** — Hermes now records verification evidence for coding work and can decide it's finished by actually running your project's checks, not by asserting success. `/goal` gained **completion contracts**: you state what "done" looks like, and the standing-goal loop judges completion against that evidence instead of stopping when the model feels like it. There's a `pre_verify` hook for wiring in custom checks and a one-time migration that tunes the defaults sensibly. The difference between "I think I fixed it" and "the tests pass, here's proof." ([#50501](https://github.com/NousResearch/hermes-agent/pull/50501), [#52285](https://github.com/NousResearch/hermes-agent/pull/52285), [#55413](https://github.com/NousResearch/hermes-agent/pull/55413), [#53552](https://github.com/NousResearch/hermes-agent/pull/53552) — @teknium1, @OutThisLife)
- **`/learn` — turn anything into a reusable skill by describing it** — Run `/learn <anything>` and Hermes distills a reusable skill out of whatever you point it at — a directory, a URL, or just the workflow you walked it through five minutes ago. It writes the skill to the standards in your CONTRIBUTING.md automatically. The next time you need that workflow, it's already there. Teaching Hermes a new trick is now a single command, not a manual skill-authoring session. ([#51506](https://github.com/NousResearch/hermes-agent/pull/51506), [#52372](https://github.com/NousResearch/hermes-agent/pull/52372) — @teknium1)
- **`/journey` — a playable timeline of everything Hermes has learned about you** — The CLI and TUI gained `/journey`, a learning timeline that shows the memories and skills Hermes has accumulated over time — and you can edit or delete any of them right from the view. Pair it with the desktop's new **memory graph** (a top-down, playable radial timeline of memories and skills) and for the first time you can actually *see* what your agent knows, watch it grow, and prune what's wrong. Your agent's memory stops being a black box. ([#55555](https://github.com/NousResearch/hermes-agent/pull/55555), [#55859](https://github.com/NousResearch/hermes-agent/pull/55859), [#55226](https://github.com/NousResearch/hermes-agent/pull/55226) — @OutThisLife)
- **Delegate a pile of work and keep going — background fan-out** — `delegate_task` can now fan out multiple subagents that all run in the **background**: your chat is never blocked, and when every subagent finishes, their results come back as a single consolidated turn. Kick off "research these five competitors in parallel" or "audit these three modules," then carry on with something else while a small fleet works. When it's all done, you get one clean summary instead of babysitting each one. ([#49734](https://github.com/NousResearch/hermes-agent/pull/49734) — @teknium1)
- **First-class coding Projects in the desktop app** — The desktop app gained real, per-profile **Projects** — a sidebar of your codebases, a coding rail, a review pane, git worktree management, and agent-facing project tools, all backed by a proper `project → repo → lane` model. Instead of scattered chat sessions, your coding work is organized into projects the agent understands and can act on. It's the desktop turning into an actual coding cockpit. ([#49037](https://github.com/NousResearch/hermes-agent/pull/49037), [#54385](https://github.com/NousResearch/hermes-agent/pull/54385), [#54517](https://github.com/NousResearch/hermes-agent/pull/54517) — @OutThisLife)
- **Run Hermes at scale — scale-to-zero and drain coordination** — The gateway can now go **dormant when idle** and quiesce cleanly before a restart, migration, or auto-update — without dropping in-flight conversations. A hosted or relay-only Hermes can scale to zero when nobody's talking to it and wake back up on demand, and disruptive lifecycle actions coordinate an external drain so nobody gets cut off mid-turn. Running Hermes for a team or as a hosted service just got a lot more production-grade. ([#52243](https://github.com/NousResearch/hermes-agent/pull/52243), [#52937](https://github.com/NousResearch/hermes-agent/pull/52937), [#54824](https://github.com/NousResearch/hermes-agent/pull/54824) — @teknium1, @benbarclay)
- **Cheaper self-improvement — smarter background review** — The post-turn self-improvement fork (the one that decides whether to save a memory or skill) now routes to an auxiliary model, digests context instead of replaying the whole conversation, and adapts its cadence — so the "learn from what just happened" loop that runs after your turns costs a fraction of what it used to. You keep the self-improvement, you stop paying full main-model price for it. ([#49252](https://github.com/NousResearch/hermes-agent/pull/49252) — @teknium1)
- **Compose your next prompt in your editor — `/prompt`** — `/prompt` opens your `$EDITOR` so you can hand-write a long, multi-line prompt in real markdown instead of fighting a one-line input box. Draft a detailed spec, a structured question, or a big paste, save, and it's queued as your next message. Small thing, huge quality-of-life win for anyone who writes Hermes more than a sentence at a time. ([#50509](https://github.com/NousResearch/hermes-agent/pull/50509) — @teknium1)
- **Google Vertex AI — Gemini through your GCP service account, no static key** — Vertex AI is now a first-class provider for Gemini models over Vertex's OpenAI-compatible endpoint. The reason a plain custom-provider setup always died mid-session is that Vertex has no static API key — every request needs a short-lived OAuth2 access token (~1h TTL) minted from a service-account JSON or Application Default Credentials. Hermes now mints and auto-refreshes those tokens for you, so if your org runs Gemini through Google Cloud, you point Hermes at your service account and it just works — no token-pasting, no mid-session expiry. ([#56363](https://github.com/NousResearch/hermes-agent/pull/56363) — @teknium1, @slawt)
- **Security round** — This window hardened several surfaces: MCP-config persistence attack surface locked down, cron `base_url` overrides that could exfiltrate provider credentials blocked, a non-reusable sentinel for prefix secrets in file reads, Slack app-level (`xapp-`) token redaction, a browser cloud-metadata floor enforced on every backend, and an `aiohttp` CVE floor across the lazy messaging paths. Fewer ways for a prompt-injected or misconfigured session to leak a credential. ([#50476](https://github.com/NousResearch/hermes-agent/pull/50476), [#56196](https://github.com/NousResearch/hermes-agent/pull/56196), [#54166](https://github.com/NousResearch/hermes-agent/pull/54166), [#56227](https://github.com/NousResearch/hermes-agent/pull/56227), [#52349](https://github.com/NousResearch/hermes-agent/pull/52349), [#56237](https://github.com/NousResearch/hermes-agent/pull/56237) — @teknium1, @kshitijk4poor, @claudlos)
---
## 🧠 Mixture-of-Agents (MoA)
MoA graduated from a mode to a first-class part of the model system this window.
- **Presets as selectable virtual models** — each named MoA preset appears as a model under provider `moa`; pick it in any model picker and Hermes routes through the ensemble ([#46081](https://github.com/NousResearch/hermes-agent/pull/46081), [#53561](https://github.com/NousResearch/hermes-agent/pull/53561), [#53775](https://github.com/NousResearch/hermes-agent/pull/53775) — @teknium1)
- **`/moa` is now one-shot sugar** — runs a single prompt through the default preset and restores your model afterward; persistent switching goes through the model picker ([#53548](https://github.com/NousResearch/hermes-agent/pull/53548) — @teknium1)
- **Reference-model output shown as labelled blocks** in CLI, TUI, and desktop — read each model's reasoning before the aggregator's synthesis ([#53793](https://github.com/NousResearch/hermes-agent/pull/53793), [#53855](https://github.com/NousResearch/hermes-agent/pull/53855) — @teknium1)
- **Aggregator response streams live** instead of appearing whole after a silence ([#55625](https://github.com/NousResearch/hermes-agent/pull/55625) — @teknium1)
- **References see full tool state and fire on every user/tool response**; advisory references end on a user turn and get a reference-role system prompt ([#54016](https://github.com/NousResearch/hermes-agent/pull/54016), [#54007](https://github.com/NousResearch/hermes-agent/pull/54007) — @teknium1)
- **Opt-in full-turn trace persistence to JSONL** (`moa.save_traces`) for debugging and eval ([#56101](https://github.com/NousResearch/hermes-agent/pull/56101) — @teknium1)
- Reliability: reference + aggregator models called through their provider's real route; context window resolved from the aggregator (not the 256K default); auxiliary tasks resolve to the aggregator; virtual provider blocked as a reference/aggregator slot; tolerant of hand-edited preset config ([#53580](https://github.com/NousResearch/hermes-agent/pull/53580), [#53780](https://github.com/NousResearch/hermes-agent/pull/53780), [#53827](https://github.com/NousResearch/hermes-agent/pull/53827), [#53281](https://github.com/NousResearch/hermes-agent/pull/53281), [#53275](https://github.com/NousResearch/hermes-agent/pull/53275), [#53556](https://github.com/NousResearch/hermes-agent/pull/53556) — @teknium1)
- MoA slot provider-identity unified on the single `call_llm` chokepoint; HermesBench results documented ([#55991](https://github.com/NousResearch/hermes-agent/pull/55991), [#53206](https://github.com/NousResearch/hermes-agent/pull/53206) — @teknium1)
## ✅ Verification & Goals — the agent proves its work
- **Completion contracts for `/goal`** — state what "done" looks like; the standing-goal loop judges against evidence, not the model's say-so ([#50501](https://github.com/NousResearch/hermes-agent/pull/50501) — @teknium1)
- **`/goal wait <pid>`** — park the standing-goal loop on a background process instead of re-poking the agent ([#50503](https://github.com/NousResearch/hermes-agent/pull/50503) — @teknium1)
- **Coding verification evidence ledger** — profile-scoped record of canonical project checks detected by `agent.coding_context`; gateway exposes verification status ([#52285](https://github.com/NousResearch/hermes-agent/pull/52285), [#52286](https://github.com/NousResearch/hermes-agent/pull/52286) — @OutThisLife)
- **`pre_verify` hook + coding guidance config**; verification stop loop + ad-hoc verification scripts ([#55413](https://github.com/NousResearch/hermes-agent/pull/55413), [#52296](https://github.com/NousResearch/hermes-agent/pull/52296), [#52297](https://github.com/NousResearch/hermes-agent/pull/52297) — @OutThisLife)
- **verify-on-stop defaults OFF** with a one-time v32 migration; skips doc-only edits; surface-aware "auto" default restored; gated off for messaging surfaces ([#53552](https://github.com/NousResearch/hermes-agent/pull/53552), [#54740](https://github.com/NousResearch/hermes-agent/pull/54740), [#55449](https://github.com/NousResearch/hermes-agent/pull/55449), [#52412](https://github.com/NousResearch/hermes-agent/pull/52412) — @teknium1, @OutThisLife, @GodsBoy)
## 🎓 Self-Improvement (Learn / Journey)
- **`/learn <anything>`** — distill a reusable skill from a directory, URL, or a workflow you just walked through; honors CONTRIBUTING.md skill standards and mixed requirements ([#51506](https://github.com/NousResearch/hermes-agent/pull/51506), [#52372](https://github.com/NousResearch/hermes-agent/pull/52372), [#55956](https://github.com/NousResearch/hermes-agent/pull/55956) — @teknium1)
- **`/journey`** — CLI + TUI learning timeline of accumulated memories and skills, with in-place edit/delete ([#55555](https://github.com/NousResearch/hermes-agent/pull/55555), [#55859](https://github.com/NousResearch/hermes-agent/pull/55859) — @OutThisLife)
- **Cheaper background review** — aux-model routing + context digest + adaptive cadence for the post-turn self-improvement fork ([#49252](https://github.com/NousResearch/hermes-agent/pull/49252) — @teknium1)
- **`memory` graph** in the desktop — playable radial timeline of memories + skills over time ([#55226](https://github.com/NousResearch/hermes-agent/pull/55226) — @OutThisLife)
## 🖥️ Hermes Desktop App
### Coding cockpit
- **First-class Projects** — per-profile sidebar, coding rail, review pane, agent project tools (`project → repo → lane`); remote-gateway-aware folder picker + git cockpit (status, review, worktrees) ([#49037](https://github.com/NousResearch/hermes-agent/pull/49037), [#54385](https://github.com/NousResearch/hermes-agent/pull/54385) — @OutThisLife)
- **Multi-terminal panel** with read-only agent terminals; persist & restore terminal tabs + scrollback across relaunch ([#54517](https://github.com/NousResearch/hermes-agent/pull/54517), [#54585](https://github.com/NousResearch/hermes-agent/pull/54585) — @OutThisLife)
- **PR-style file diffs in chat**; in-app spot editor for the file preview pane; inline rich embeds, diagrams & alerts in assistant markdown ([#50731](https://github.com/NousResearch/hermes-agent/pull/50731), [#52772](https://github.com/NousResearch/hermes-agent/pull/52772), [#52935](https://github.com/NousResearch/hermes-agent/pull/52935) — @OutThisLife)
### UX & surfaces
- Conversation timeline rail for long threads; context-usage breakdown popover; read-only spectator transcript for subagent watch windows; pop the composer into a draggable floating window ([#51094](https://github.com/NousResearch/hermes-agent/pull/51094), [#54907](https://github.com/NousResearch/hermes-agent/pull/54907), [#55033](https://github.com/NousResearch/hermes-agent/pull/55033), [#49488](https://github.com/NousResearch/hermes-agent/pull/49488) — @OutThisLife, @austinpickett)
- Read replies aloud (auto-TTS) composer toggle; remember window size/position/maximized across launches; redesigned clarify prompt; shared overlay Panel primitive for cron/profiles/agents ([#55154](https://github.com/NousResearch/hermes-agent/pull/55154), [#52086](https://github.com/NousResearch/hermes-agent/pull/52086), [#52993](https://github.com/NousResearch/hermes-agent/pull/52993), [#54558](https://github.com/NousResearch/hermes-agent/pull/54558) — @OutThisLife)
- Backup import/create/download from the web UI; add context-usage popover; flag already-installed themes in install pickers; config-driven Electron launch flags + GPU policy ([#54611](https://github.com/NousResearch/hermes-agent/pull/54611), [#55410](https://github.com/NousResearch/hermes-agent/pull/55410), [#53991](https://github.com/NousResearch/hermes-agent/pull/53991) — @teknium1, @OutThisLife)
- **Pets** — roaming pet (opt-in), calmer/realistic roam, Alt+wheel scaling never cropped, frame-perfect hatch flow + CPU-safe chroma, pop-out overlay + notifications ([#55114](https://github.com/NousResearch/hermes-agent/pull/55114), [#55400](https://github.com/NousResearch/hermes-agent/pull/55400), [#52877](https://github.com/NousResearch/hermes-agent/pull/52877), [#47959](https://github.com/NousResearch/hermes-agent/pull/47959), [#52303](https://github.com/NousResearch/hermes-agent/pull/52303) — @OutThisLife)
### Refactor wave (composer / god-file de-entangle)
- Decomposed the composer into isolated engine hooks; extracted branch/esc/url/placeholder/popout engines; split `thread.tsx`, `sidebar/index.tsx`, onboarding overlay, and `use-prompt-actions` god files into focused modules; shared WebSocket layer decoupling desktop from dashboard (`hermes serve`) ([#55500](https://github.com/NousResearch/hermes-agent/pull/55500), [#55842](https://github.com/NousResearch/hermes-agent/pull/55842), [#55451](https://github.com/NousResearch/hermes-agent/pull/55451), [#55453](https://github.com/NousResearch/hermes-agent/pull/55453), [#55807](https://github.com/NousResearch/hermes-agent/pull/55807), [#55504](https://github.com/NousResearch/hermes-agent/pull/55504), [#54568](https://github.com/NousResearch/hermes-agent/pull/54568) — @OutThisLife)
- perf: bound tool-result rendering so big `/learn` runs don't freeze; fast session switching under load ([#52273](https://github.com/NousResearch/hermes-agent/pull/52273), [#52620](https://github.com/NousResearch/hermes-agent/pull/52620) — @OutThisLife)
## 📊 Web Dashboard
- Auto-initiate portal SSO redirect on unauthenticated load; interactive auth setup on no-provider non-loopback bind; confidential-client (`client_secret`) support in self-hosted OIDC ([#54846](https://github.com/NousResearch/hermes-agent/pull/54846), [#50551](https://github.com/NousResearch/hermes-agent/pull/50551), [#55344](https://github.com/NousResearch/hermes-agent/pull/55344) — @teknium1, @benbarclay)
- Catalogue all memory-provider API keys in `OPTIONAL_ENV_VARS`; list & add arbitrary custom `.env` keys on the Keys page; expose cron job execution fields; backup import/create/download ([#54546](https://github.com/NousResearch/hermes-agent/pull/54546), [#54552](https://github.com/NousResearch/hermes-agent/pull/54552), [#53551](https://github.com/NousResearch/hermes-agent/pull/53551), [#54611](https://github.com/NousResearch/hermes-agent/pull/54611) — @benbarclay, @teknium1)
- Offload PTY spawn/close off the event loop; exclude non-interactive providers from interactive login surfaces ([#53227](https://github.com/NousResearch/hermes-agent/pull/53227), [#53239](https://github.com/NousResearch/hermes-agent/pull/53239) — @IAvecilla)
## 🏗️ Core Agent & Architecture
### Delegation & subagents
- **Background fan-out** — parallel subagents run in the background, one consolidated return when all finish; calm "will resume" affordance for background `delegate_task` ([#49734](https://github.com/NousResearch/hermes-agent/pull/49734), [#52756](https://github.com/NousResearch/hermes-agent/pull/52756) — @teknium1, @OutThisLife)
- Track background subagents in the CLI + TUI status bar ([#51441](https://github.com/NousResearch/hermes-agent/pull/51441), [#51485](https://github.com/NousResearch/hermes-agent/pull/51485) — @teknium1)
### Agent loop, tools & coding context
- One-shot LLM helper + `llm.oneshot` gateway RPC; expose coding-context project facts (`project.facts` RPC) ([#51261](https://github.com/NousResearch/hermes-agent/pull/51261), [#51259](https://github.com/NousResearch/hermes-agent/pull/51259) — @OutThisLife)
- `web_extract` truncate-and-store instead of LLM summarization; concurrent @-reference expansion ([#54843](https://github.com/NousResearch/hermes-agent/pull/54843), [#55207](https://github.com/NousResearch/hermes-agent/pull/55207) — @teknium1, @kshitijk4poor)
- Friendly human-phrased tool labels for built-in tools; `/reasoning full` (uncapped thinking); `/timestamps` + timestamps in `/history`; `/prompt` composes in `$EDITOR` ([#55166](https://github.com/NousResearch/hermes-agent/pull/55166), [#50499](https://github.com/NousResearch/hermes-agent/pull/50499), [#50506](https://github.com/NousResearch/hermes-agent/pull/50506), [#50509](https://github.com/NousResearch/hermes-agent/pull/50509) — @teknium1)
- Per-reasoning-model stale-timeout floor in stream + non-stream detectors; escalate SIGTERM→SIGKILL on host-pid termination after grace ([#52845](https://github.com/NousResearch/hermes-agent/pull/52845), [#50489](https://github.com/NousResearch/hermes-agent/pull/50489) — @teknium1)
- Multiple `HERMES_WRITE_SAFE_ROOT` dirs; opt-in HTTP/WS body capture to an isolated, share-excluded `gui_bodies.log` ([#53292](https://github.com/NousResearch/hermes-agent/pull/53292), [#49044](https://github.com/NousResearch/hermes-agent/pull/49044) — @kshitijk4poor)
### Compression & sessions
- In-place compaction option (single session id); flip `in_place` default to True with a guard fix ([#49739](https://github.com/NousResearch/hermes-agent/pull/49739), [#52658](https://github.com/NousResearch/hermes-agent/pull/52658) — @teknium1)
- Backup includes `projects.db` and kanban boards in the pre-update snapshot ([#52990](https://github.com/NousResearch/hermes-agent/pull/52990) — @kshitijk4poor)
### Providers & models
- **Google Vertex AI** first-class provider for Gemini over the OpenAI-compatible endpoint — auto-mints and refreshes short-lived OAuth2 tokens from a service-account JSON / ADC (no static key); salvages & modernizes #8427 by @slawt ([#56363](https://github.com/NousResearch/hermes-agent/pull/56363) — @teknium1, @slawt)
- Krea via managed Nous Subscription gateway; Z.AI endpoint picker (Global/China/Coding Plan); Ollama-cloud reasoning_effort wiring; remove google-gemini-cli + google-antigravity OAuth providers ([#52647](https://github.com/NousResearch/hermes-agent/pull/52647), [#52364](https://github.com/NousResearch/hermes-agent/pull/52364), [#51494](https://github.com/NousResearch/hermes-agent/pull/51494), [#50492](https://github.com/NousResearch/hermes-agent/pull/50492) — @teknium1, @kshitijk4poor)
- Honor `NOUS_INFERENCE_BASE_URL` env override for Nous OAuth; keep Nous auth fresh for idle dashboard/gateway agents ([#52270](https://github.com/NousResearch/hermes-agent/pull/52270), [#50567](https://github.com/NousResearch/hermes-agent/pull/50567) — @benbarclay, @teknium1)
## 🌐 Gateway, Fleet & Relay
### Scale-to-zero & drain
- **Scale-to-zero idle detection + dormant-quiesce (Phase 0)**; hardened dormancy guards; fixed arm-gate counting disabled placeholder platforms ([#52243](https://github.com/NousResearch/hermes-agent/pull/52243), [#52359](https://github.com/NousResearch/hermes-agent/pull/52359), [#52831](https://github.com/NousResearch/hermes-agent/pull/52831) — @teknium1, @benbarclay)
- **External drain coordination (safe-shutdown Phase 2)**; suppress home-channel shutdown broadcast on flagged drains; persist in-flight transcript on restart/shutdown drain timeout; busy/idle readout for safe lifecycle actions ([#52937](https://github.com/NousResearch/hermes-agent/pull/52937), [#54824](https://github.com/NousResearch/hermes-agent/pull/54824), [#50312](https://github.com/NousResearch/hermes-agent/pull/50312), [#50131](https://github.com/NousResearch/hermes-agent/pull/50131) — @teknium1, @benbarclay, @kshitijk4poor)
- Default `restart_drain_timeout` to 0 to kill a systemd crash loop; self-heal a gateway stranded in draining/degraded ([#54066](https://github.com/NousResearch/hermes-agent/pull/54066), [#55397](https://github.com/NousResearch/hermes-agent/pull/55397) — @teknium1)
### Relay (Phase 5 / 6)
- Wake primitive (gateway side); going-idle / buffered-flip primitive; `passthrough_forward` over WS; multi-platform-per-agent identity + per-frame egress; forward stable instance id at self-provision; declare relevance policy to the connector ([#51595](https://github.com/NousResearch/hermes-agent/pull/51595), [#51572](https://github.com/NousResearch/hermes-agent/pull/51572), [#50702](https://github.com/NousResearch/hermes-agent/pull/50702), [#52830](https://github.com/NousResearch/hermes-agent/pull/52830), [#50772](https://github.com/NousResearch/hermes-agent/pull/50772), [#51248](https://github.com/NousResearch/hermes-agent/pull/51248) — @benbarclay)
- Authorize relay-delivered events by delivery, not `source.platform`; adopt `scope_id` wire key; purge platform-specific scope terminology ([#52306](https://github.com/NousResearch/hermes-agent/pull/52306), [#55289](https://github.com/NousResearch/hermes-agent/pull/55289), [#56016](https://github.com/NousResearch/hermes-agent/pull/56016) — @benbarclay)
### Gateway core & rendering
- Typed send-error classification (`SendResult.error_kind`); per-platform `typing_indicator` toggle; per-category context breakdown in `/usage` ([#50342](https://github.com/NousResearch/hermes-agent/pull/50342), [#55394](https://github.com/NousResearch/hermes-agent/pull/55394), [#55204](https://github.com/NousResearch/hermes-agent/pull/55204) — @teknium1)
- API server: configurable concurrent-run cap to prevent DoS; scope run approvals by run id ([#50007](https://github.com/NousResearch/hermes-agent/pull/50007), [#56129](https://github.com/NousResearch/hermes-agent/pull/56129) — @teknium1)
## 📱 Messaging Platforms
- **Cron continuations** — continuable cron jobs (thread-preferred continuation with DM-mirror fallback); flat in-channel continuable cron delivery for Slack; warn when gateway not running on cron create/list ([#52250](https://github.com/NousResearch/hermes-agent/pull/52250), [#56254](https://github.com/NousResearch/hermes-agent/pull/56254), [#51696](https://github.com/NousResearch/hermes-agent/pull/51696) — @teknium1)
- Telegram: configurable command menu + raised default cap so skills stay visible; gate rich draft previews separately; drain general send pool on pool timeout before retry ([#51716](https://github.com/NousResearch/hermes-agent/pull/51716), [#52088](https://github.com/NousResearch/hermes-agent/pull/52088), [#54121](https://github.com/NousResearch/hermes-agent/pull/54121) — @teknium1, @helix4u)
- Slack: opt-in Block Kit rendering for agent messages; `--no-assistant` flag for manifest generation ([#56102](https://github.com/NousResearch/hermes-agent/pull/56102), [#51487](https://github.com/NousResearch/hermes-agent/pull/51487) — @teknium1)
- Discord: render reasoning as `-#` subtext via `display.reasoning_style` ([#51168](https://github.com/NousResearch/hermes-agent/pull/51168) — @teknium1)
- Native WhatsApp media delivery via the Baileys bridge; Teams native `send_video`/`send_voice`/`send_document`; photon sidecar upgraded to spectrum-ts v8 with tapback correlation; Raft gateway setup wizard ([#53598](https://github.com/NousResearch/hermes-agent/pull/53598), [#49308](https://github.com/NousResearch/hermes-agent/pull/49308), [#53451](https://github.com/NousResearch/hermes-agent/pull/53451), [#56230](https://github.com/NousResearch/hermes-agent/pull/56230) — @teknium1)
- Signal: AAC voice-note remux + shared markdown formatting ([#49530](https://github.com/NousResearch/hermes-agent/pull/49530) — @kshitijk4poor)
- Migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled ([#49408](https://github.com/NousResearch/hermes-agent/pull/49408) — @teknium1)
## 🔧 Tool System, Skills & MCP
- Blank Slate setup mode — minimal agent, opt in to everything ([#36733](https://github.com/NousResearch/hermes-agent/pull/36733) — @teknium1)
- MCP: config persistence attack surface hardened; block base_url exfil; keepalive for short-TTL sessions (see Security) — plus catalog & UX carried from v0.17.0
- Skills: `/learn` distillation (see Self-Improvement); `cloudflare-temporary-deploy` optional skill; creative-ideation v2.1.0 method library ([#50849](https://github.com/NousResearch/hermes-agent/pull/50849), [#42402](https://github.com/NousResearch/hermes-agent/pull/42402) — @teknium1, @SHL0MS)
- Kanban: task lifecycle plugin hooks (claimed/completed/blocked); typed block reasons + unblock-loop breaker; handoff freshness stamping ([#50349](https://github.com/NousResearch/hermes-agent/pull/50349), [#52848](https://github.com/NousResearch/hermes-agent/pull/52848), [#53973](https://github.com/NousResearch/hermes-agent/pull/53973) — @teknium1)
- Plugins: `ctx.profile_name` for session-agnostic profile access ([#50346](https://github.com/NousResearch/hermes-agent/pull/50346) — @teknium1)
- LSP: PowerShellEditorServices language server; mem0 v3 API + OSS mode + update/delete tools ([#55930](https://github.com/NousResearch/hermes-agent/pull/55930), [#15624](https://github.com/NousResearch/hermes-agent/pull/15624) — @teknium1, @kartik-mem0)
## ⚡ Performance
- Cold start: lazy-load gateway platform adapters; parse config + plugin manifests with libyaml `CSafeLoader` ([#54448](https://github.com/NousResearch/hermes-agent/pull/54448), [#54486](https://github.com/NousResearch/hermes-agent/pull/54486) — @teknium1)
- State: merge FTS5 segments + `handoff_state` index to curb write-lock contention; single-pass `list_profiles` alias map + skill-count cache + event-loop offload ([#54752](https://github.com/NousResearch/hermes-agent/pull/54752), [#54770](https://github.com/NousResearch/hermes-agent/pull/54770) — @kshitijk4poor, @teknium1)
## 🔒 Security & Reliability
- Harden MCP-config persistence attack surface; block cron `base_url` overrides that exfiltrate provider credentials; non-reusable sentinel for prefix secrets in file reads ([#50476](https://github.com/NousResearch/hermes-agent/pull/50476), [#56196](https://github.com/NousResearch/hermes-agent/pull/56196), [#54166](https://github.com/NousResearch/hermes-agent/pull/54166) — @teknium1, @kshitijk4poor)
- Redact Slack App-Level (`xapp-`) tokens; browser cloud-metadata floor on all backends (CDP non-local); re-check private-network guard after `browser_back` navigation; scope `/resume` and `/sessions` to caller origin (IDOR); `aiohttp` 3.14.1 CVE floor across lazy messaging paths + pin-drift guard ([#56227](https://github.com/NousResearch/hermes-agent/pull/56227), [#52349](https://github.com/NousResearch/hermes-agent/pull/52349), [#56526](https://github.com/NousResearch/hermes-agent/pull/56526), [#56378](https://github.com/NousResearch/hermes-agent/pull/56378), [#56237](https://github.com/NousResearch/hermes-agent/pull/56237) — @teknium1, @claudlos, @kshitijk4poor)
- Cron reliability wave: fail closed when an unpinned job's provider drifts; run missed-grace jobs once instead of deferring forever; keep the ticker alive on `BaseException` + heartbeat-aware status; layer enabled MCP servers onto per-job toolsets; guard cron model-tool path + auto-resume loop breaker ([#51051](https://github.com/NousResearch/hermes-agent/pull/51051), [#50062](https://github.com/NousResearch/hermes-agent/pull/50062), [#50016](https://github.com/NousResearch/hermes-agent/pull/50016), [#50117](https://github.com/NousResearch/hermes-agent/pull/50117), [#56240](https://github.com/NousResearch/hermes-agent/pull/56240) — @kshitijk4poor, @teknium1)
- Windows: suppress console flashes + harden gateway restarts; prefer cmd npm shim on PATH fallback; respawn gateway windowless after GUI update; prefer managed node for whatsapp/desktop ([#52340](https://github.com/NousResearch/hermes-agent/pull/52340), [#50398](https://github.com/NousResearch/hermes-agent/pull/50398), [#52239](https://github.com/NousResearch/hermes-agent/pull/52239) — @helix4u, @teknium1)
## 🔁 Reverts (in-window, for the record)
- cron job storage returned to per-profile (reverts #32117 + #50993); don't clone `auth.json` (duplicating OAuth grant causes sibling revocation); windows terminal-popup PRs rolled back; `prompt_caching.enabled` toggle backed out for re-evaluation ([#51116](https://github.com/NousResearch/hermes-agent/pull/51116), [#51732](https://github.com/NousResearch/hermes-agent/pull/51732), [#53853](https://github.com/NousResearch/hermes-agent/pull/53853), [#56126](https://github.com/NousResearch/hermes-agent/pull/56126) — @teknium1)
## 👥 Contributors
**381 people** contributed to this release (via commits, co-author trailers, and salvaged PRs). Thank you, all of you.
### Core
- @teknium1 — release lead; MoA first-class, verification/goals, `/learn`, background review, security round, providers, the P0/P1 clean-sweep
- @OutThisLife — desktop app (projects, memory graph, `/journey`, multi-terminal, composer refactor wave, pets, verification UX)
### Top community contributors
- @kshitijk4poor — the P0/P1 backlog burn: cron reliability wave, state perf, security (cron credential-exfil), gateway/signal, TUI config — a huge share of the priority closures
- @benbarclay — relay Phase 5/6, scale-to-zero / drain coordination, dashboard auth/keys, gateway hardening
- @ethernet8023 — CI/docker (unified jobs, faster builds, timings report)
- @helix4u — Windows hardening (console flashes, npm shim, gateway restarts)
### All contributors
@0xbyt4, @0xDevNinja, @0xsir0000, @1RB, @595650661, @aaronlab, @abchiaravalle, @adammatski1972, @AetherAgents,
@Afnath-max, @agt-user, @ahmadashfq, @AhmetArif0, @AIalliAI, @aieng-abdullah, @ailang323, @ailthrim, @aj-nt,
@alelpoan, @alloevil, @amathxbt, @ambition0802, @anderskev, @andressommerhoff, @angelos, @annguyenNous,
@Antimatter543, @arminanton, @arthurzhang, @asimons81, @austinpickett, @baolingao, @Bartok9, @basilalshukaili,
@BBCrypto-web, @bbopen, @Beandon13, @beardthelion, @benbarclay, @benbenlijie, @binhnt92, @bitcryptic-gw,
@Blaryxoff, @bogerman1, @bradhallett, @brett539, @briandevans, @buihongduc132, @bykim0119, @catapreta,
@chaithanyak42, @charleneleong-ai, @CharlieKerfoot, @chazmaniandinkle, @chrispersico, @Christopher-Schulze,
@chriswesley4, @claudlos, @clovericbot, @cmcejas, @codexGW, @Cossackx, @counterposition, @coygeek, @CRWuTJ,
@cyb0rgk1tty, @cyb3rwr3n, @cypctlinux, @cypres0099, @dalenguyen, @Danamove, @DanAsBjorn, @DataAdvisory,
@davidgut1982, @DavidMetcalfe, @davidvv, @de1tydev, @denisqq, @devorun, @devsart95, @DhivinX, @DiamondEyesFox,
@difujia, @Disaster-Terminator, @djimit, @djstunami, @dodo-reach, @donovan-yohan, @Dr1985, @DrZM007, @Dusk1e,
@egilewski, @ehz0ah, @Eji4h, @EloquentBrush0x, @Elshayib, @emozilla, @entropy-0x, @Erosika, @EtherAura,
@etherman-os, @ethernet8023, @f-trycua, @fayenix, @fesalfayed, @firefly, @flamiinngo, @flobo3, @francescomucio,
@franksong2702, @friendshipisover, @fsaad1984, @fyzanshaik, @GauravPatil2515, @gdeyoung, @georgex8001,
@GodsBoy, @graphanov, @Gromykoss, @gustavosmendes, @Gutslabs, @H2KFORGIVEN, @haileymarshall, @hakanpak,
@happy5318, @haran2001, @harjothkhara, @heathley, @hehehe0803, @helix4u, @herbalizer404, @HexLab98,
@HiddenPuppy, @Hinotoi-agent, @HODLCLONE, @houko, @huangsen365, @huangxudong663-sys, @huangxun375-stack,
@HwangJohn, @iaji, @iamlukethedev, @IamSanchoPanza, @IAvecilla, @Icather, @iizotov, @indigokarasu,
@infinitycrew39, @ipriyaaanshu, @isair, @islam666, @itenev, @itsflownium, @izumi0uu, @Jaaneek, @JabberELF,
@jackjin1997, @jackroofan, @janrenz, @jasnoorgill, @jasonQin6, @jcjc81, @jearnest11, @jeeves-assistant,
@Jeffgithub0029, @jeffrobodie-glitch, @JezzaHehn, @jimmyjohansson84, @jmmaloney4, @jnibarger01, @JoaoMarcos44,
@jplew, @Junass1, @justemu, @justin-cyhuang, @JustinOhms, @jvradahellys24-art, @Kailigithub, @kaishi00,
@kangsoo-bit, @kartik-mem0, @keiravoss94, @kenyonxu, @kernel-t1, @Kewe63, @KeyArgo, @KiruyaMomochi, @kn8-codes,
@Kolektori, @konsisumer, @kshitijk4poor, @kyssta-exe, @Kyzcreig, @Lazymonter, @LehaoLin, @LeonSGP43, @lEWFkRAD,
@libre-7, @LIC99, @LifeJiggy, @linyubin, @liuhao1024, @lkevincc0, @lkz-de, @loes5050, @londo161, @lubosxyz,
@m24927605, @MaheshtheDev, @manus-use, @marco0158, @MarioYounger, @martinramos002-bot, @MattKotsenas,
@max-chen, @MaxFreedomPollard, @maxmilian, @maxpetrusenko, @memosr, @Mibayy, @Minksgo, @mintybasil, @mkslzk,
@mohamedorigami-jpg, @MorAlekss, @mrparker0980, @ms-alan, @namredips, @nankingjing, @natehale, @necoweb3,
@neo-2026, @Nickperillo, @nightq, @nikshepsvn, @nnnet, @nocturnum91, @nodejun, @NousResearch, @nycomar,
@OmarB97, @orbisai0security, @oreoluwa, @outsourc-e, @OutThisLife, @p-andhika, @panghuer023, @Paperclip,
@peetwan, @pefontana, @petrichor-op, @pinguarmy, @PINKIIILQWQ, @pmos69, @PolyphonyRequiem, @pprism13,
@PRATHAMESH75, @professorpalmer, @pyxl-dev, @Que0x, @qWaitCrypto, @r266-tech, @RafaelMiMi, @Railway9784,
@randomuser2026x, @rayjun, @rc-int, @rebel0789, @redactdeveloper, @riyas22, @rlaope, @rob-maron, @rodboev,
@rodrigoeqnit, @rratmansky, @rrevenanttt, @ruangraung, @Ruzzgar, @ryo-solo, @s010mn, @Sahil-SS9,
@SahilRakhaiya05, @SandroHub013, @Sanjays2402, @sasquatch9818, @ScotterMonk, @season179, @sgabel, @sgaofen,
@sgtworkman, @shandian64, @shannonsands, @shashwatgokhe, @shawchanshek, @sherman-yang, @SHL0MS, @SidUParis,
@SimoKiihamaki, @simpolism, @sjh9714, @skabartem, @skyc1e, @slawt, @soynchux, @spiky02plateau, @spjoes,
@sprmn24, @srojk34, @stepanov1975, @steveonjava, @Subway2023, @sweetcornna, @swissly, @Sworntech-dev,
@syahidfrd, @synapsesx, @szzhoujiarui-sketch, @talmax1124, @telos-oc, @testingbuddies24, @texhy, @tgmerritt,
@theAgenticBuilder, @thestral123, @tkwong, @Tortugasaur, @Tranquil-Flow, @trevorgordon981, @truenorth-lj,
@tt-a1i, @tuancookiez-hub, @TutkuEroglu, @tymrtn, @udatny, @UgwujaGeorge, @underthestars-zhy, @uperLu,
@uzunkuyruk, @valenteff, @valentt, @vanthinh6886, @Versun, @victor-kyriazakos, @virtuadex, @vKongv,
@w31rdm4ch1nZ, @weidzhou, @wgu9, @whoislikemiha, @wnuuee1, @woaini30050, @WuKongAI-CMU, @WuTianyi123, @WXBR,
@x7peeps, @x9x9x9x9x9x91, @Xowiek, @xxchan, @xxxigm, @xydigit-zt, @yapsrubricsz0, @yashiels, @yeyitech, @ygd58,
@YLChen-007, @yong2bba, @yoniebans, @ypwcharles, @yu-xin-c, @yungchentang, @yusekiotacode, @YuShu, @yyzquwu,
@zapabob, @zccyman, @zeapsu, @zmlgit, @znding04, @Zyxxx-xxxyZ
Also: Lucas Nicolas.
---
**Full Changelog**: [v2026.6.19...v2026.7.1](https://github.com/NousResearch/hermes-agent/compare/v2026.6.19...v2026.7.1)
```markdown
# Hermes Agent v0.17.0 (v2026.6.19)
**发布日期:** 2026年6月19日
**自 v0.16.0 以来:** ~1,475 次提交 · ~800 个已合并 PR · 1,693 个文件变更 · 235,390 行新增 · 50,730 行删除 · 300+ 个已关闭 issue · 245 位社区贡献者
> **“触及”版本。** v0.16.0 将 Hermes 带到了你的桌面上。v0.17.0 则关乎其触及范围能延伸多远——跨越新的对话地点,深入你已经使用的工具,并延伸至为团队运行 Hermes 的人们。Hermes 新增了两个渠道(通过 Photon 的 iMessage,以及 Raft 代理网络),桌面应用获得了大量新功能,子代理现在可以在后台运行,图像生成学会了编辑,并且通过 xAI Grok 订阅可以调用 Cursor 的 Composer 模型。仪表板获得了完整的配置文件构建器和安全登录,技能中心浏览器进行了彻底改造,`memory` 工具获得了重大升级,策展器(curator)停止了在每次例行运行时消耗辅助模型预算。同时还附带关闭了 300 多个 issue,以及一轮安全更新。
## ✨ 亮点
- **Hermes 到达 iMessage——Photon Spectrum,无需 Mac 中继**——现在有一个基于 Photon 托管线路池构建的 iMessage 平台插件。运行 `hermes photon login`,使用设备码进行身份验证,Hermes 即可发送和接收 iMessage——无需一台藏在壁橱里的 Mac 运行中继,也无需照看 BlueBubbles 桥接。它被定位为 BlueBubbles 的继任者:免费开始,无需自行托管。如果你的朋友和家人生活在蓝色气泡中,Hermes 现在也生活在其中。([#32348](https://github.com/NousResearch/hermes-agent/pull/32348)、[#42582](https://github.com/NousResearch/hermes-agent/pull/42582)、[#44713](https://github.com/NousResearch/hermes-agent/pull/44713) — @teknium1)
- **Raft——Hermes 作为网关渠道加入 Raft 代理网络**——一个新的内置 Raft 平台适配器让 Hermes 通过唤醒-渠道桥接连接到 [Raft](https://raft.build) 作为外部代理。设置 `RAFT_PROFILE`,运行桥接,Raft 即可唤醒 Hermes 处理消息——采用隐私契约设计,唤醒负载仅携带元数据(事件 ID、时间戳),绝不包含消息正文。这是 Hermes 可以出现并工作的另一个界面。([#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @xxchan, @teknium1)
- **功能强化的桌面应用**——v0.16.0 发布了桌面应用;v0.17.0 通过数十个 PR 深化了其功能。可重新绑定的键盘快捷键、带有按类型切换的原生 OS 通知、实时子代理**监视窗口**(将被委托代理的活动流式传输到自己的窗格中)、带按模型预设的合成器模型选择器、自动 RTL/双向文本方向、可调整大小的 VS Code 主题终端窗格、每个线程的合成器草稿,以及直接在应用中安装**任何 VS Code 市场主题**的能力。桌面应用现在是一个严肃的日常驾驶工具,不再是预览版。([#45866](https://github.com/NousResearch/hermes-agent/pull/45866)、[#40660](https://github.com/NousResearch/hermes-agent/pull/40660)、[#47060](https://github.com/NousResearch/hermes-agent/pull/47060)、[#46959](https://github.com/NousResearch/hermes-agent/pull/46959)、[#43292](https://github.com/NousResearch/hermes-agent/pull/43292)、[#44596](https://github.com/NousResearch/hermes-agent/pull/44596) — @OutThisLife, @teknium1)
- **后台/异步子代理——委托工作并继续前行**——`delegate_task(background=true)` 现在会分派一个在后台运行的子代理,并立即返回一个句柄。你和模型可以继续工作,而子代理则默默运行,一旦完成,完整结果会作为新的一轮重新进入对话。启动一次长时间的研究探索或多步骤构建,然后继续做其他事情,而不是被阻塞等待。([#40946](https://github.com/NousResearch/hermes-agent/pull/40946)、[#46968](https://github.com/NousResearch/hermes-agent/pull/46968) — @teknium1)
- **编辑图像,而不仅仅是生成——`image_generate` 中的图像到图像**——`image_generate` 现在可以编辑和转换源图像,而不仅仅是凭空创建。传入现有图像和提示,它会路由到后端的编辑端点(与 `video_generate` 相同的工具、相同的模式),覆盖所有受支持的图像提供商。“把这个 Logo 变成蓝色”、“移除背景”、“将这张草图变成渲染图”——所有这些都可以通过你已经使用的工具完成。([#48705](https://github.com/NousResearch/hermes-agent/pull/48705) — @teknium1)
- **自动化蓝图——无需学习 cron 即可安排事务**——按名称选择一个自动化,Hermes 会询问你需要什么——无需 cron 语法,无需输入 `slot=value`。一个蓝图定义在每个界面上都能原生渲染:仪表板中的表单、CLI/TUI/通讯工具中的斜杠命令、与代理的对话、文档目录中的条目。“每天早上 8 点新闻简报”变成一件通过回答问题来设置的事情,而不是记忆 `0 8 * * *`。([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1)
- **Cursor 的 Composer 模型,通过你的 xAI Grok 订阅**——`grok-composer-2.5-fast` 现在出现在 xAI OAuth 模型选择器中,其上下文窗口已调整为完整的 200k。Composer 是 Cursor 背后的快速编码模型——如果你有 xAI Grok 订阅,现在可以直接通过 OAuth 让 Hermes 指向它,无需单独的 API 密钥。你的 Grok 计划,Hermes 的代理循环,Composer 的编码速度。([#47908](https://github.com/NousResearch/hermes-agent/pull/47908)、[#6f89e17](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1)
- **仪表板中的完整配置文件构建器**——在浏览器中构建完整的 Hermes 配置文件——选择其模型、选择其技能、附加其 MCP 服务器——无需手动编辑 `config.yaml`。仪表板还将多配置文件管理统一到一个机器范围的视图中,并带有全局配置文件切换器,因此你可以从一个地方管理所有配置文件。([#39084](https://github.com/NousResearch/hermes-agent/pull/39084)、[#44007](https://github.com/NousResearch/hermes-agent/pull/44007) — @teknium1)
- **技能中心浏览器改造**——仪表板的技能中心进行了彻底重做:连接的中心、精选部分、安装前的完整技能预览,以及每个技能的安全扫描。从可信来源(OpenAI、Anthropic、HuggingFace、NVIDIA)浏览和安装技能现在是一种真正的浏览体验,不再是一个扁平列表。([#40384](https://github.com/NousResearch/hermes-agent/pull/40384)、[#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1)
- **`memory` 工具获得重大升级——原子批量操作**——`memory` 工具新增了一个 `operations` 数组,用于**在最终字符预算内原子性地**应用一批添加/替换/移除编辑。模型可以在一次调用中释放空间并添加新条目——即使仅添加一项就会超出预算——将以前脆弱的多次交互舞蹈压缩成一个可靠的操作。内存更新现在更快,并且不太可能在编辑过程中失败。([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1)
- **安全的仪表板登录**——仪表板的身份验证得到了加强:每个需要令牌的端点现在在 OAuth 网关后正确返回 401,WebSocket 身份验证使用提供的仪表板令牌,当 `public_url` 覆盖被静默拒绝时会触发警告。将仪表板暴露到网络现在默认更安全。([#42578](https://github.com/NousResearch/hermes-agent/pull/42578)、[#42578](https://github.com/NousResearch/hermes-agent/pull/43214) — @benbarclay, @teknium1)
- **官方 WhatsApp Business Cloud API 适配器**——除了现有的 Baileys 桥接,Hermes 现在也能使用**官方** WhatsApp Business Cloud API——Meta 的第一方、托管、无需桥接进程的路径。将你的业务 API 凭据指向它,Hermes 即可通过支持的渠道使用 WhatsApp,无需保持 QR 扫描桥接进程存活。([#44331](https://github.com/NousResearch/hermes-agent/pull/44331)、[#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle, @teknium1)
- **Telegram 富文本——Bot API 10.1 富消息**——Telegram 回复现在通过 Bot API 10.1 渲染为适当的富消息:更好的格式、更干净的长消息处理、原生的标记而不是扁平文本。默认启用,可选择退出,因此你的 Telegram 对话看起来像它们应该的样子,无需任何配置。([#44829](https://github.com/NousResearch/hermes-agent/pull/44829)、[#45584](https://github.com/NousResearch/hermes-agent/pull/45584)、[#45953](https://github.com/NousResearch/hermes-agent/pull/45953) — @teknium1)
- **策展器成本优化——例行运行无辅助模型消耗**——技能策展器现在默认修剪过时的技能,但不再运行其 LLM 驱动的整合步骤,除非你选择加入(`curator.consolidate: true` 或 `hermes curator run --consolidate`)。确定性不活动扫描继续免费运行;意见性强、消耗辅助模型预算的“构建伞形技能”分支现在默认关闭。例行后台策展**消耗零令牌**。([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1)
## 🖥️ Hermes 桌面应用
### 新界面与用户体验
- 可重新绑定的键盘快捷键面板;带有按类型切换的原生 OS 通知;策划的轮次完成提示 + 可关闭的错误横幅([#40660](https://github.com/NousResearch/hermes-agent/pull/40660)、[#45866](https://github.com/NousResearch/hermes-agent/pull/45866)、[#42480](https://github.com/NousResearch/hermes-agent/pull/42480)、[#47985](https://github.com/NousResearch/hermes-agent/pull/47985) — @OutThisLife、@teknium1)
- 实时子代理**监视窗口**——将被委托代理的活动流式传输到自己的窗格中;合成器状态堆栈 + 可编辑提示;在任何自己的窗口中打开聊天;新会话紧凑窗口热键([#47060](https://github.com/NousResearch/hermes-agent/pull/47060)、[#44630](https://github.com/NousResearch/hermes-agent/pull/44630)、[#43219](https://github.com/NousResearch/hermes-agent/pull/43219)、[#46951](https://github.com/NousResearch/hermes-agent/pull/46951) — @OutThisLife、@teknium1)
- 合成器模型选择器 + 按模型预设 + 外部提供商断开连接;在 GUI 中展示 `hermes model` 的每个提供商/模型;将提供商列表统一为一个来源;当主模型切换导致辅助任务固定在其他地方时发出警告([#46959](https://github.com/NousResearch/hermes-agent/pull/46959)、[#40563](https://github.com/NousResearch/hermes-agent/pull/40563)、[#49080](https://github.com/NousResearch/hermes-agent/pull/49080)、[#40286](https://github.com/NousResearch/hermes-agent/pull/40286) — @teknium1、@OutThisLife)
- 安装**任何 VS Code 市场主题**;每个配置文件可分配主题;窗口透明度滑块;统一覆盖设计系统 + BrandMark + 入门重新设计([#43292](https://github.com/NousResearch/hermes-agent/pull/43292)、[#42286](https://github.com/NousResearch/hermes-agent/pull/42286)、[#45086](https://github.com/NousResearch/hermes-agent/pull/45086)、[#40708](https://github.com/NousResearch/hermes-agent/pull/40708) — @teknium1、@OutThisLife)
- 可调整大小的 VS Code 主题终端窗格 + 调色板完善;自动检测聊天中的 RTL/双向文本方向;Mac 风格会话切换器(^Tab / ^1-9);工作区感知侧边栏分组;悬停显示折叠的侧边栏;侧边栏中的消息来源文件夹([#42521](https://github.com/NousResearch/hermes-agent/pull/42521)、[#44596](https://github.com/NousResearch/hermes-agent/pull/44596)、[#43111](https://github.com/NousResearch/hermes-agent/pull/43111)、[#45273](https://github.com/NousResearch/hermes-agent/pull/45273)、[#41670](https://github.com/NousResearch/hermes-agent/pull/41670)、[#41751](https://github.com/NousResearch/hermes-agent/pull/41751) — @OutThisLife)
- 合成器中的箭头键历史 + 队列编辑;从批准栏中内联展开完整命令;跟随流式传输到底部 + 跳至底部按钮;侧边栏和仪表板调度器中的一等 cron 任务([#40234](https://github.com/NousResearch/hermes-agent/pull/40234)、[#44864](https://github.com/NousResearch/hermes-agent/pull/44864)、[#45263](https://github.com/NousResearch/hermes-agent/pull/45263)、[#40684](https://github.com/NousResearch/hermes-agent/pull/40684) — @OutThisLife、@teknium1)
- 桌面宠物——弹出覆盖 + 通知([#47938](https://github.com/NousResearch/hermes-agent/pull/47938) — @teknium1)
- 设置中的完整工具后端配置(选择器 + 每个后端设置);从 GUI 运行工具后端安装后设置;卸载聊天 GUI 而不移除代理;Shift+点击状态栏 zap 切换全局 YOLO;本地网关上的 `/browser connect`([#41232](https://github.com/NousResearch/hermes-agent/pull/41232)、[#40559](https://github.com/NousResearch/hermes-agent/pull/40559)、[#40355](https://github.com/NousResearch/hermes-agent/pull/40355)、[#41666](https://github.com/NousResearch/hermes-agent/pull/41666)、[#47245](https://github.com/NousResearch/hermes-agent/pull/47245) — @teknium1、@OutThisLife)
- 日语 + 繁体中文语言切换([#40114](https://github.com/NousResearch/hermes-agent/pull/40114))
- “重启网关”操作(从“重启消息”重命名)在状态栏中显示,并出现在消息保存/切换提示中;渲染的日志可选/可复制([#49094](https://github.com/NousResearch/hermes-agent/pull/49094) — @OutThisLife)
### 远程网关与多配置文件
- **远程媒体中继**——首次通过网络附加图像/PDF 并显示代理编写的图像;通过 `file.attach` 实现远程网关文件附件([#41336](https://github.com/NousResearch/hermes-agent/pull/41336)、[#42634](https://github.com/NousResearch/hermes-agent/pull/42634) — @teknium1)
- 客户端 + 后端版本按钮 + 远程后端更新流程;浏览远程后端文件;路由全局远程配置文件 REST 调用;通过重新验证过期的远程后端来在睡眠/唤醒后恢复聊天([#42181](https://github.com/NousResearch/hermes-agent/pull/42181)、[#44326](https://github.com/NousResearch/hermes-agent/pull/44326)、[#47011](https://github.com/NousResearch/hermes-agent/pull/47011)、[#41350](https://github.com/NousResearch/hermes-agent/pull/41350) — @OutThisLife、@teknium1)
- 多配置文件善后清理——WS 认证 + 跨配置文件会话读取;在删除前释放配置文件后端;按会话限定会话列表/模型切换/计时器([#44529](https://github.com/NousResearch/hermes-agent/pull/44529)、[#42613](https://github.com/NousResearch/hermes-agent/pull/42613)、[#41103](https://github.com/NousResearch/hermes-agent/pull/41103)、[#41120](https://github.com/NousResearch/hermes-agent/pull/41120)、[#41182](https://github.com/NousResearch/hermes-agent/pull/41182) — @OutThisLife、@teknium1)
- 将子代理活动流式传输到监视窗口;在未聚焦的辅助聊天窗口中保持流式绘画;恢复丢失的会话窗口([#47060](https://github.com/NousResearch/hermes-agent/pull/47060)、[#47919](https://github.com/NousResearch/hermes-agent/pull/47919)、[#47655](https://github.com/NousResearch/hermes-agent/pull/47655) — @OutThisLife)
## 📊 Web 仪表板
- 全功能配置文件构建器(模型 + 技能 + MCP);统一多配置文件管理——一台机器的仪表板 + 全局配置文件切换器;配置文件范围的技能和工具集;聊天标签页上的会话切换面板([#39084](https://github.com/NousResearch/hermes-agent/pull/39084)、[#44007](https://github.com/NousResearch/hermes-agent/pull/44007)、[#43808](https://github.com/NousResearch/hermes-agent/pull/43808)、[#49077](https://github.com/NousResearch/hermes-agent/pull/49077) — @teknium1)
- 技能中心浏览器改造——连接的中心、精选、预览 + 安全扫描;技能页面上的 SKILL.md 编辑器 + cron 模态框中的附加技能选择器;每个 MCP 的完整目录详细信息;GUI 中的完整工具后端配置([#40384](https://github.com/NousResearch/hermes-agent/pull/40384)、[#44231](https://github.com/NousResearch/hermes-agent/pull/44231)、[#48520](https://github.com/NousResearch/hermes-agent/pull/48520)、[#40418](https://github.com/NousResearch/hermes-agent/pull/40418) — @teknium1)
- 从 Webhooks 页面启用 Webhooks;幂等的 `hermes dashboard register`;Telegram QR 入门后自动重启网关;文件浏览器;从主题选择器更改 UI 字体;聊天侧边栏中的推理努力选择器([#44021](https://github.com/NousResearch/hermes-agent/pull/44021)、[#42455](https://github.com/NousResearch/hermes-agent/pull/42455)、[#43424](https://github.com/NousResearch/hermes-agent/pull/43424)、[#43512](https://github.com/NousResearch/hermes-agent/pull/43512)、[#41145](https://github.com/NousResearch/hermes-agent/pull/41145)、[#49141](https://github.com/NousResearch/hermes-agent/pull/49141) — @teknium1)
## 🏗️ 核心代理与架构
### God 文件重构浪潮(run_agent.py / cli.py / gateway/run.py)
- **`cli.py` main() 从 3297 行减少到 954 行**——提取了 28 个子命令解析器到 `hermes_cli/subcommands/`,然后提升了 9 个闭包处理器;32 个斜杠命令处理器 → `CLICommandsMixin`;18 个模型流向导函数 → `model_setup_flows`;代理构建集群 → `CLIAgentSetupMixin`([#41798](https://github.com/NousResearch/hermes-agent/pull/41798)、[#41835](https://github.com/NousResearch/hermes-agent/pull/41835)、[#41942](https://github.com/NousResearch/hermes-agent/pull/41942)、[#42174](https://github.com/NousResearch/hermes-agent/pull/42174)、[#42153](https://github.com/NousResearch/hermes-agent/pull/42153) — @teknium1)
- **`gateway/run.py` 从 19157 行减少到 15870 行**——42 个斜杠命令处理器 → `GatewaySlashCommandsMixin`;授权集群 → `GatewayAuthorizationMixin`;看板观察者循环 → `GatewayKanbanWatchersMixin`([#41886](https://github.com/NousResearch/hermes-agent/pull/41886)、[#42159](https://github.com/NousResearch/hermes-agent/pull/42159)、[#41849](https://github.com/NousResearch/hermes-agent/pull/41849) — @teknium1)
- **`run_agent.py` 轮次循环**——将序言提取到 `TurnContext`,循环后尾部提取到 `finalize_turn`,将内部重试循环恢复标志合并到 `TurnRetryState`([#41778](https://github.com/NousResearch/hermes-agent/pull/41778)、[#42169](https://github.com/NousResearch/hermes-agent/pull/42169)、[#41828](https://github.com/NousResearch/hermes-agent/pull/41828) — @teknium1)
### 代理循环、提示与工具
- **`memory` 批量操作**——针对最终字符预算的原子添加/替换/移除数组,因此单个调用可以释放空间并添加条目([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1)
- **`search_files` 无损密集化**——空闲空间评估报告 + 一个值得发布的密集化改进(更少的令牌每结果,相同的匹配)([#47866](https://github.com/NousResearch/hermes-agent/pull/47866) — @teknium1)
- 移除了代理可调用的 `send_message` 工具;CLI/TUI/桌面/ACP 上的编码上下文姿态;`read_file` 将 `.ipynb`/`.docx`/`.xlsx` 提取为文本([#47856](https://github.com/NousResearch/hermes-agent/pull/47856)、[#43316](https://github.com/NousResearch/hermes-agent/pull/43316)、[#37082](https://github.com/NousResearch/hermes-agent/pull/37082) — @teknium1)
- 上下文文件处理:可配置的截断限制 + 警告;将上下文文件上限缩放到模型窗口 + 将代理指向截断的文件([#47251](https://github.com/NousResearch/hermes-agent/pull/47251)、[#47846](https://github.com/NousResearch/hermes-agent/pull/47846) — @teknium1)
- 压缩:压缩摘要中的时间锚定;将 gpt-5.5 在 Codex OAuth 上的压缩触发阈值提高到 85%([#41102](https://github.com/NousResearch/hermes-agent/pull/41102)、[#40957](https://github.com/NousResearch/hermes-agent/pull/40957) — @teknium1)
- 自适应中间件(由 NeMo-Relay 观察者遥测消费);可用的轮次中转向——桌面辅助 + 可信注入([#29724](https://github.com/NousResearch/hermes-agent/pull/29724)、[#40240](https://github.com/NousResearch/hermes-agent/pull/40240) — @teknium1)
### 提供商与模型支持
- 新模型:`z-ai/glm-5.2`(已验证 1M 上下文,OpenRouter + Nous)、`anthropic/claude-fable-5`、`laguna-m.1` + `nemotron-3-ultra`、xAI Composer 2.5 在 OAuth 选择器中;将 xAI 默认设置为 `grok-build-0.1`([#47391](https://github.com/NousResearch/hermes-agent/pull/47391)、[#45695](https://github.com/NousResearch/hermes-agent/pull/45695)、[#42979](https://github.com/NousResearch/hermes-agent/pull/42979)、[#42629](https://github.com/NousResearch/hermes-agent/pull/42629)、[#47908](https://github.com/NousResearch/hermes-agent/pull/47908)、[#47371](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1)
- 模型选择器:刷新模型控件以清除过时的缓存;将 Nous 推荐模型持久化到磁盘 + 在门户失败时回退;在更新时从检出中填充目录磁盘缓存;MiniMax-M3 报告真实 1M 上下文([#48691](https://github.com/NousResearch/hermes-agent/pull/48691)、[#42628](https://github.com/NousResearch/hermes-agent/pull/42628)、[#42614](https://github.com/NousResearch/hermes-agent/pull/42614)、[#43338](https://github.com/NousResearch/hermes-agent/pull/43338) — @teknium1)
- Anthropic 自适应模型:默认使用现代思维契约;绝不发送 `reasoning` 字段;将 `reasoning_effort` 路由到冗长;对于非常昂贵的选择要求确认([#42991](https://github.com/NousResearch/hermes-agent/pull/42991)、[#43012](https://github.com/NousResearch/hermes-agent/pull/43012)、[#43436](https://github.com/NousResearch/hermes-agent/pull/43436)、[#43391](https://github.com/NousResearch/hermes-agent/pull/43391) — @teknium1)
- 认证:从池中自动检测 OpenRouter 凭据;在添加/重新认证时保持 Codex OAuth 池账户区分;跨配置文件解析 xAI OAuth + 将旋转后的令牌写回根;为由 `model.default_headers` 自定义 OpenAI 兼容提供商([#42263](https://github.com/NousResearch/hermes-agent/pull/42263)、[#42316](https://github.com/NousResearch/hermes-agent/pull/42316)、[#46614](https://github.com/NousResearch/hermes-agent/pull/46614)、[#41096](https://github.com/NousResearch/hermes-agent/pull/41096) — @teknium1)
- Bedrock 在 IAM 拒绝流式变体时回退到非流式 `InvokeModel`;Ollama 默认 `max_tokens=65536`;将模型拒绝表现为 `content_filter`([#44293](https://github.com/NousResearch/hermes-agent/pull/44293)、[#41694](https://github.com/NousResearch/hermes-agent/pull/41694)、[#46013](https://github.com/NousResearch/hermes-agent/pull/46013) — @teknium1)
### 会话、状态与多代理
- 可选的**最大会话上限**;在 CLI 退出和轮换时删除空会话;用于压缩轮换的 ACP 会话来源元数据([#42389](https://github.com/NousResearch/hermes-agent/pull/42389)、[#43855](https://github.com/NousResearch/hermes-agent/pull/43855)、[#41724](https://github.com/NousResearch/hermes-agent/pull/41724) — @teknium1)
- 委托:通过端点标识解析自定义端点子代理池;移除默认子代理墙钟超时;停止子代理完成行泄漏到父 CLI 显示中([#41730](https://github.com/NousResearch/hermes-agent/pull/41730)、[#45149](https://github.com/NousResearch/hermes-agent/pull/45149)、[#44223](https://github.com/NousResearch/hermes-agent/pull/44223) — @teknium1)
- 看板:在 `kanban_create` 上配置门控自动订阅;嵌入式调度器的机器全局单例锁;为工作人员固定分配的配置文件工具集;在工作人员仍然存活时保持回收([#48635](https://github.com/NousResearch/hermes-agent/pull/48635)、[#49068](https://github.com/NousResearch/hermes-agent/pull/49068)、[#45590](https://github.com/NousResearch/hermes-agent/pull/45590)、[#49064](https://github.com/NousResearch/hermes-agent/pull/49064) — @teknium1)
- 内存:可配置的 Hindsight 保留观察范围;OpenViking 设置 UX;Honcho 网关门控身份树;Supermemory 会话级别摄取([#46611](https://github.com/NousResearch/hermes-agent/pull/46611)、[#48262](https://github.com/NousResearch/hermes-agent/pull/48262)、[#44431](https://github.com/NousResearch/hermes-agent/pull/44431)、[#38756](https://github.com/NousResearch/hermes-agent/pull/38756) — @teknium1、@alt-glitch)
## 📱 消息平台(网关)
### 新渠道
- **通过 Photon Spectrum 的 iMessage**——`hermes photon login`(设备码 OAuth)、gRPC 原生渠道(无 webhook)、Markdown 渲染、表情符号反应、通过 spectrum-ts 的传出媒体([#32348](https://github.com/NousResearch/hermes-agent/pull/32348)、[#42582](https://github.com/NousResearch/hermes-agent/pull/42582)、[#44713](https://github.com/NousResearch/hermes-agent/pull/44713)、[#42397](https://github.com/NousResearch/hermes-agent/pull/42397) — @teknium1)
- **WhatsApp Business Cloud API** 适配器(官方,无桥接进程)([#44331](https://github.com/NousResearch/hermes-agent/pull/44331)、[#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle、@teknium1)
- **SimpleX**——群组、原生附件、文本批处理、自动接受;**Raft** 内置平台插件,带活动钩子([#42584](https://github.com/NousResearch/hermes-agent/pull/42584)、[#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @teknium1)
### 网关核心与渲染
- 在 Markdown 平台上将终端工具调用渲染为原生 bash 代码块;聊天中裸露的围栏代码块;可选的 LLM 上下文消息时间戳;可配置的 `tool_progress_grouping`([#41215](https://github.com/NousResearch/hermes-agent/pull/41215)、[#42576](https://github.com/NousResearch/hermes-agent/pull/42576)、[#47253](https://github.com/NousResearch/hermes-agent/pull/47253)、[#47228](https://github.com/NousResearch/hermes-agent/pull/47228) — @teknium1)
- Telegram:Bot API 10.1 富消息(现在默认启用,可退出);选择加入的在线/离线机器人状态指示器;停止截断长流式响应;MarkdownV2 用于进度编辑;在下载前门控超大的语音/音频([#44829](https://github.com/NousResearch/hermes-agent/pull/44829)、[#45584](https://github.com/NousResearch/hermes-agent/pull/45584)、[#49134](https://github.com/NousResearch/hermes-agent/pull/49134)、[#43761](https://github.com/NousResearch/hermes-agent/pull/43761)、[#44245](https://github.com/NousResearch/hermes-agent/pull/44245) — @teknium1)
- Discord:传播 `role_authorized` 以便 `DISCORD_ALLOWED_ROLES` 端到端工作;从运行时网关任务退出中恢复;在连接失败时取消 `_bot_task`;在回复后停止打字([#43327](https://github.com/NousResearch/hermes-agent/pull/43327)、[#44383](https://github.com/NousResearch/hermes-agent/pull/44383)、[#44432](https://github.com/NousResearch/hermes-agent/pull/44432)、[#44836](https://github.com/NousResearch/hermes-agent/pull/44836) — @teknium1)
- Slack:当 `reply_in_thread=false` 时限定顶级频道消息范围;线程审批 UX(块大小溢出 + 类型前缀);使视频附件可供代理使用;`register_slack_action_handler` 插件 API([#41703](https://github.com/NousResearch/hermes-agent/pull/41703)、[#43444](https://github.com/NousResearch/hermes-agent/pull/43444)、[#45512](https://github.com/NousResearch/hermes-agent/pull/45512)、[#44664](https://github.com/NousResearch/hermes-agent/pull/44664) — @teknium1)
- 包括回复的媒体附件;文档附件在 Signal/Email/SimpleX/Teams 上分类为 DOCUMENT;WhatsApp 重启过时的桥接进程;Matrix 房间上下文隔离;QQbot CPU 旋转修复;微信速率限制断路器([#46107](https://github.com/NousResearch/hermes-agent/pull/46107)、[#44695](https://github.com/NousResearch/hermes-agent/pull/44695)、[#44205](https://github.com/NousResearch/hermes-agent/pull/44205)、[#18505](https://github.com/NousResearch/hermes-agent/pull/18505)、[#40574](https://github.com/NousResearch/hermes-agent/pull/40574)、[#41718](https://github.com/NousResearch/hermes-agent/pull/41718) — @teknium1、@banditburai)
## 🖥️ CLI、TUI 和设置
- `/version` 斜杠命令;`/billing` 交互式终端计费(TUI + CLI);在状态栏上显示自上次最终代理响应以来的时间;将已解决的审批/澄清提示持久化到回滚缓存中([#40214](https://github.com/NousResearch/hermes-agent/pull/40214)、[#45449](https://github.com/NousResearch/hermes-agent/pull/45449)、[#44265](https://github.com/NousResearch/hermes-agent/pull/44265)、[#44702](https://github.com/NousResearch/hermes-agent/pull/44702) — @teknium1)
- 锁定 hermes 工作树,以便并发进程无法破坏它们;在列表/显示中显示自定义配置文件别名名称;从任何来源克隆配置文件([#48699](https://github.com/NousResearch/hermes-agent/pull/48699)、[#40371](https://github.com/NousResearch/hermes-agent/pull/40371)、[#45630](https://github.com/NousResearch/hermes-agent/pull/45630) — @teknium1)
- 首次联系时选择加入的结构化配置文件构建路径;每个平台可配置的系统提示提示;可配置的后台内存/技能通知([#41114](https://github.com/NousResearch/hermes-agent/pull/41114)、[#48630](https://github.com/NousResearch/hermes-agent/pull/48630)、[#47226](https://github.com/NousResearch/hermes-agent/pull/47226) — @teknium1)
- TUI:交互式插件中心启用/禁用覆盖;终端标题栏中的会话名称;直接绘制审批/澄清/sudo/秘密模态框(不经过节流);包装长审批命令而不是截断([#42965](https://github.com/NousResearch/hermes-agent/pull/42965)、[#43188](https://github.com/NousResearch/hermes-agent/pull/43188)、[#41155](https://github.com/NousResearch/hermes-agent/pull/41155)、[#44691](https://github.com/NousResearch/hermes-agent/pull/44691) — @teknium1)
- TTS:Gemini 角色提示 + 音频标签;xAI 自动语音标签 + 速度/流式旋钮;Piper speaker_id;Telegram 自动 TTS 的 OGG([#43442](https://github.com/NousResearch/hermes-agent/pull/43442)、[#49061](https://github.com/NousResearch/hermes-agent/pull/49061)、[#49062](https://github.com/NousResearch/hermes-agent/pull/49062)、[#49060](https://github.com/NousResearch/hermes-agent/pull/49060)、[#41644](https://github.com/NousResearch/hermes-agent/pull/41644) — @teknium1)
## 🔧 工具系统、技能与 MCP
- **`image_generate` 中的图像到图像/编辑**,覆盖所有后端;将图像缩小到提供商维度限制([#48705](https://github.com/NousResearch/hermes-agent/pull/48705)、[#45979](https://github.com/NousResearch/hermes-agent/pull/45979) — @teknium1)
- MCP:目录中的官方 **Unreal Engine 5.8** MCP 服务器;**引导处理器**,以便 MCP 服务器可以在工具调用中途提示确认(支付/OAuth),无论在哪个界面上拥有会话——CLI/TUI/Telegram/Slack;在轮次之间将延迟连接的 MCP 工具暴露给代理(缓存安全);对短 TTL HTTP 会话进行保活 ping;在探测前阻止外形像数据泄露/可疑的 stdio 配置;能力门控 `tools/list`,以便仅提示的服务器可以连接;保留 stdio argv 透传 + Windows 环境变量([#48397](https://github.com/NousResearch/hermes-agent/pull/48397)、[#49203](https://github.com/NousResearch/hermes-agent/pull/49203)、[#49208](https://github.com/NousResearch/hermes-agent/pull/49208)、[#49221](https://github.com/NousResearch/hermes-agent/pull/49221)、[#46083](https://github.com/NousResearch/hermes-agent/pull/46083)、[#44550](https://github.com/NousResearch/hermes-agent/pull/44550)、[#44324](https://github.com/NousResearch/hermes-agent/pull/44324) — @teknium1、@lgalabru)
- 技能:`simplify-code` 技能(并行的 3 代理代码审查和清理)+ 基于 Chesterton's Fence 的风险分层应用;查找和差异用户修改的捆绑技能;可选的**支付**技能(Stripe Link、MPP、Projects);基于 CLI 的商店技能;每个来源的实时浏览进度([#41691](https://github.com/NousResearch/hermes-agent/pull/41691)、[#49070](https://github.com/NousResearch/hermes-agent/pull/49070)、[#48286](https://github.com/NousResearch/hermes-agent/pull/48286)、[#31343](https://github.com/NousResearch/hermes-agent/pull/31343)、[#47309](https://github.com/NousResearch/hermes-agent/pull/47309)、[#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1、@colinwren-stripe)
- 策展器:使技能整合为选择加入(修剪保持默认开启)([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1)
- 插件:从仓库内的子目录安装;接受 `hermes plugins install` 中浏览器粘贴的 GitHub URL;`session:compress` 生命周期事件 + `thread_id`/`chat_type` 在 agent:start/end 上下文中([#42963](https://github.com/NousResearch/hermes-agent/pull/42963)、[#33539](https://github.com/NousResearch/hermes-agent/pull/33539)、[#47252](https://github.com/NousResearch/hermes-agent/pull/47252)、[#41672](https://github.com/NousResearch/hermes-agent/pull/41672) — @teknium1)
- 内存/技能**写入审批**门控(默认关闭)——布尔值 `write_approval` 替代三态 `write_mode`([#38199](https://github.com/NousResearch/hermes-agent/pull/38199)、[#43354](https://github.com/NousResearch/hermes-agent/pull/43354) — @teknium1)
## 🌐 舰队、中继与自动化
- **托管范围**——管理员固定、用户不可更改的配置和秘密,来自 root 拥有的 `/etc/hermes`([#49098](https://github.com/NousResearch/hermes-agent/pull/49098) — @teknium1)
- **通过一个网关进程多路复用所有配置文件**(选择加入)([#48273](https://github.com/NousResearch/hermes-agent/pull/48273) — @benbarclay)
- **可插拔 CronScheduler** + Chronos 托管 cron 提供商(缩放到零)([#48275](https://github.com/NousResearch/hermes-agent/pull/48275) — @benbarclay)
- **自动化蓝图**——每个界面上的参数化自动化模板([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1)
- 网关到网关中继(阶段 0-3):中继适配器 + 能力描述符,连接器⇄网关渠道认证 + 签名 HTTP 入站 + 注册 CLI,仅 WS 入站,托管启动自我配置客户端([#48078](https://github.com/NousResearch/hermes-agent/pull/48078)、[#48147](https://github.com/NousResearch/hermes-agent/pull/48147)、[#48294](https://github.com/NousResearch/hermes-agent/pull/48294)、[#48242](https://github.com/NousResearch/hermes-agent/pull/48242) — @teknium1)
## 🐳 Docker、Nix 和安装器
- s6:直接检测 supervisor 以重启网关;注册配置文件网关而不自动启动;持久化所需状态;清除过时的日志锁([#46290](https://github.com/NousResearch/hermes-agent/pull/46290)、[#46266](https://github.com/NousResearch/hermes-agent/pull/46266)、[#46292](https://github.com/NousResearch/hermes-agent/pull/46292)、[#46289](https://github.com/NousResearch/hermes-agent/pull/46289) — @teknium1)
- Docker:优化镜像大小(.dockerignore、删除开发依赖、拆分层);预安装矩阵依赖;受监督的网关使用 `--replace`;加固托管安装树以防止自修改([#38749](https://github.com/NousResearch/hermes-agent/pull/38749)、[#42413](https://github.com/NousResearch/hermes-agent/pull/42413)、[#47555](https://github.com/NousResearch/hermes-agent/pull/47555)、[#47490](https://github.com/NousResearch/hermes-agent/pull/47490) — @teknium1)
- Nix:冷 npm 构建修复 + 自动修复锁文件工作流;通过 `importNpmLock` 实现无哈希 npm 依赖;锁定 Electron 40.10.2 后刷新 npmDepsHash([#41867](https://github.com/NousResearch/hermes-agent/pull/41867)、[#48883](https://github.com/NousResearch/hermes-agent/pull/48883)、[#48457](https://github.com/NousResearch/hermes-agent/pull/48457) — @teknium1)
- 安装器:在自动暂存前清除未合并的 git 索引;将安装方法标记限定到代码树([#45515](https://github.com/NousResearch/hermes-agent/pull/45515)、[#48188](https://github.com/NousResearch/hermes-agent/pull/48188) — @teknium1)
## 🔒 安全与可靠性
- 在自有策略网关适配器上安全失败;在 Slack/Feishu/Discord 上未设置许可列表时,审批按钮认证安全失败([#45634](https://github.com/NousResearch/hermes-agent/pull/45634)、[#41226](https://github.com/NousResearch/hermes-agent/pull/41226) — @teknium1)
- 在请求调试转储中编辑秘密;向公共状态隐瞒主机元数据;在探测前阻止外形像数据泄露/可疑的 MCP stdio 配置([#46637](https://github.com/NousResearch/hermes-agent/pull/46637)、[#45642](https://github.com/NousResearch/hermes-agent/pull/45642)、[#46083](https://github.com/NousResearch/hermes-agent/pull/46083) — @teknium1)
- 关闭 shell 转义拒绝列表绕过 + 在缺少审批模块时安全失败;在启动 cua-driver MCP 前清理操作员环境;为 cron 作业脚本子进程清理环境;限制 TodoStore 内容长度/计数;扫描 REST cron 提示以确保与代理工具的奇偶性([#40591](https://github.com/NousResearch/hermes-agent/pull/40591)、[#48423](https://github.com/NousResearch/hermes-agent/pull/48423)、[#49207](https://github.com/NousResearch/hermes-agent/pull/49207)、[#41648](https://github.com/NousResearch/hermes-agent/pull/41648)、[#41335](https://github.com/NousResearch/hermes-agent/pull/41335) — @teknium1、@kshitijk4poor)
- 升级 urllib3 和 PyJWT 以清除 CVE;Langfuse 编辑 base64 数据 URI 而不是截断为无效的 base64([#40179](https://github.com/NousResearch/hermes-agent/pull/40179)、[#43322](https://github.com/NousResearch/hermes-agent/pull/43322) — @teknium1)
## 🪟 Windows
- 通过 ConPTY(`win_pty_bridge`)实现仪表板 `/chat` 标签页 + 测试;为 uv 安装解析 PowerShell 主机而不是裸 `powershell`;通过绝对路径解析 `powershell.exe` 以免桌面安装卡住([#42251](https://github.com/NousResearch/hermes-agent/pull/42251)、[#48341](https://github.com/NousResearch/hermes-agent/pull/48341)、[#40927](https://github.com/NousResearch/hermes-agent/pull/40927) — @teknium1)
- 修复过时的 winget 注册 + 刷新/合并 PATH;在重新创建 venv 前杀死 hermes 以释放 `_bcrypt.pyd` 锁;当环境变量过时时从注册表读取 HERMES_HOME;在更新修复期间隔离正在运行的 `hermes.exe`([#44084](https://github.com/NousResearch/hermes-agent/pull/44084)、[#45120](https://github.com/NousResearch/hermes-agent/pull/45120)、[#46772](https://github.com/NousResearch/hermes-agent/pull/46772)、[#40409](https://github.com/NousResearch/hermes-agent/pull/40409) — @teknium1)
- JOB 分离观察者可靠性 + 状态 --deep 探测;处理 Windows PTY 标准输入 + 分离的 WS 帧;将子进程输出解码为 UTF-8;原生 Windows 上的确认模态框([#40909](https://github.com/NousResearch/hermes-agent/pull/40909)、[#41953](https://github.com/NousResearch/hermes-agent/pull/41953)、[#44328](https://github.com/NousResearch/hermes-agent/pull/44328)、[#42419](https://github.com/NousResearch/hermes-agent/pull/42419) — @teknium1)
## 🐛 值得注意的错误修复
- 百分比编码非 ASCII URL 组件;清理 FTS5 查询中的 `:` 以便冒号搜索不会静默返回空([#41430](https://github.com/NousResearch/hermes-agent/pull/41430)、[#40653](https://github.com/NousResearch/hermes-agent/pull/40653) — @teknium1)
- 通过崩溃恢复持久化保留多模态用户内容;在提供商同步前展平多模态内容;从压缩器输入中剥离 MEDIA 指令([#47907](https://github.com/NousResearch/hermes-agent/pull/47907)、[#44738](https://github.com/NousResearch/hermes-agent/pull/44738)、[#44708](https://github.com/NousResearch/hermes-agent/pull/44708) — @teknium1)
- 在真正的 Nous 429 上重新进入重试循环以便后备保护运行;将 Nous 标签限定到 Nous 辅助调用;在免费模型上抑制“信用访问暂停”通知([#45136](https://github.com/NousResearch/hermes-agent/pull/45136)、[#45801](https://github.com/NousResearch/hermes-agent/pull/45801)、[#43669](https://github.com/NousResearch/hermes-agent/pull/43669) — @teknium1)
- Cron:在无技能任务中不严格扫描脚本注入的输出;将每个任务的提供商“custom”解析为 `providers.custom` 而不是 codex;在容器重启后修复 cron 所有权([#43223](https://github.com/NousResearch/hermes-agent/pull/43223)、[#43505](https://github.com/NousResearch/hermes-agent/pull/43505)、[#41976](https://github.com/NousResearch/hermes-agent/pull/41976) — @teknium1)
- *(此窗口关闭了 300+ 个 issue;完整的按区域修复列表详尽——以上是影响最大的修复。)*
## ↩️ 此窗口已回滚(未发布)
- `html-artifact` 技能 + 草图/架构图/概念图折叠([#48899](https://github.com/NousResearch/hermes-agent/pull/48899))——已回滚([#49053](https://github.com/NousResearch/hermes-agent/pull/49053));在主干上不存在。
- Cron 每个任务配置文件支持已回滚([#43956](https://github.com/NousResearch/hermes-agent/pull/43956));一个 nix patchPhase 解决方法已回滚([#42151](https://github.com/NousResearch/hermes-agent/pull/42151))。
## 👥 贡献者
非常感谢所有为此次发布做出贡献的人——**245 位贡献者**,涵盖提交、共同作者和拯救的 PR。
### 核心
@teknium1
### 顶级社区贡献者(按合并 PR 数量)
- @OutThisLife — 92 个 PR(桌面应用成熟度(快捷键、通知、监视窗口、主题))
- @kshitijk4poor — 60 个 PR(入门、模型选择器、cron 环境清理)
- @xxxigm — 27 个 PR(桌面和网关修复)
- @benbarclay — 23 个 PR(网关多路复用、Chronos cron、仪表板认证)
- @helix4u — 21 个 PR(网关和安装器可靠性)
- @austinpickett — 19 个 PR(仪表板和桌面 UX)
- @alt-glitch — 14 个 PR(使用感知信用、Supermemory)
- @ethernet8023 — 14 个 PR(桌面构建管道和 Linux/Windows)
- @liuhao1024 — 5 个 PR(会话生命周期修复)
### 所有贡献者(按字母顺序)
@0z1-ghb、@0xdany、@0xneobyte、@0xyg3n、@1960697431、@895252509、@achaljhawar、@Adolanium、@AhmetArif0、@AIalliAI、
@aimable100、@AJ、@ak2k、@alarcritty、@AlchemistChaos、@aldoeliacim、@alelpoan、@AlexanderBFoley、
@alfred-smith-0、@ali-nld、@alt-glitch、@am423、@ameobius、@AMIK-coorporations、@annguyenNous、@ArcanePivot、
@ARegalado1、@asdlem、@ashishpatel26、@austinpickett、@banditburai、@barronlroth、@Bartok9、@basilalshukaili、
@bbednarski9、@bcsmith528、@benbarclay、@benegessarit、@benfrank241、@bionicbutterfly13、@BlackishGreen33、
@blut-agent、@bmoore210、@bpasquini、@briandevans、@BROCCOLO1D、@capt-marbles、@ccook1963、@Cdddo、@channkim、
@ChasLui、@chimpera、@chromalinx、@CiarasClaws、@claytonchew、@cnfi、@colinwren-stripe、@cresslank、
@cyb0rgk1tty、@dangelo352、@davidgut1982、@deaneeth、@definitelynotguru、@Diyoncrz18、@draix、@dschnurbusch、
@Dusk1e、@dusterbloom、@ehz0ah、@emozilla、@enesilhaydin、@Erosika、@ethernet8023、@Evisolpxe、@firefly、
@flooryyyy、@flyinhigh、@foras910521-lab、@Frowtek、@ft-ioxcs、@fyzanshaik、@Ganesh0690、@gauravsaxena1997、
@giladbau、@glesperance、@GodsBoy、@goku94123、@H-Ali13381、@HaozheZhang6、@haran2001、@harshitAgr、@hbentel、
@helix4u、@HeLLGURD、@Hermes、@huangxun375-stack、@iamlukethedev、@ianculling、@IAvecilla、@iborazzi、
@infinitycrew39、@islam666、@ITheEqualizer、@itsflownium、@Jaaneek、@james47kjv、@jeeves-assistant、
@jeffrobodie-glitch、@JezzaHehn、@jiangkoumo、@jimjsong、@JimLiu、@JimStenstrom、@jmsunseri、@JoaoMarcos44、
@joel611、@JoelJJohnson、@joerj123、@johnjacobkenny、@jooray、@joshuadow、@jplew、@justinbao19、@Justlrnal4、
@Kailigithub、@kamonspecial、@kdunn926、@Kenmege、@Kewe63、@kmccammon、@konsisumer、@kristianvast、
@kshitijk4poor、@kyssta-exe、@l37525778-coder、@LaPhilosophie、@leo4226、@LeonSGP43、@liuhao1024、@Llugaes、
@loongfay、@loongzhao、@lsaether、@m4dni5、@manishbyatroy、@MaxFreedomPollard、@maxmilian、@maxtrigify、
@mnajafian-nv、@mohamedorigami-jpg、@mollusk、@MrDiamondBallz、@mssteuer、@mvanhorn、@naqerl、@Nea74、
@necoweb3、@nepenth、@nicoloboschi、@NormallyGaussian、@OmarB97、@omegazheng、@OndrejDrapalik、@OutThisLife、
@oxngon、@OYLFLMH、@Paperclip、@paulb26、@pengyuyanITYU、@PhilipAD、@pinguarmy、@plcunha、@ProgramCaiCai、
@psionic73、@qin-ctx、@qingshan89、@Que0x、@qWaitCrypto、@r266-tech、@randomsnowflake、@rbrtbn、@rewbs、
@rio-jeong、@Rivuza、@rob-maron、@rodboev、@ruangraung、@RyTsYdUp、@Sahil-SS9、@salesondemandio、@sanidhyasin、
@sarvesh1327、@sdyckjq-lab、@shannonsands、@SHL0MS、@simpolism、@sitkarev、@skyc1e、@skylarbpayne、@SNooZyy2、
@Spaceman-Spiffy、@srojk34、@sweetcornna、@synapsesx、@Tamaz-sujashvili、@tangtaizong666、@temalo、@tfournet、
@thedavidweng、@TheGardenGallery、@tim404x、@tomekpanek、@Tranquil-Flow、@tt-a1i、@tuancookiez-hub、
@underthestars-zhy、@Veritas-7、@victor-kyriazakos、@wesleysimplicio、@WolframRavenwolf、@WompaJango、@x1erra、
@xiaoxinova、@xtymac、@xushibo、@XVVH、@xxchan、@xxxigm、@xy200303、@y0shua1ee、@yanxue06、@yatesjalex、
@YLChen-007、@yoniebans、@youjunxiaji、@yubingz、@zakame、@zapabob、@zccyman、@zimigit2020、@ziwon、@zwcf5200、
@zxcasongs。
---
**完整更新日志:** [v2026.6.5...v2026.6.19](https://github.com/NousResearch/hermes-agent/compare/v2026.6.5...v2026.6.19)
```
# Hermes Agent v0.17.0 (v2026.6.19)
**Release Date:** June 19, 2026
**Since v0.16.0:** ~1,475 commits · ~800 merged PRs · 1,693 files changed · 235,390 insertions · 50,730 deletions · 300+ issues closed · 245 community contributors
> **The Reach Release.** v0.16.0 put Hermes on your desktop. v0.17.0 is about how far that reach extends — across new places to talk to it, deeper into the tools you already use, and out to the people running Hermes for a team. Hermes reached two new channels (iMessage via Photon, and the Raft agent network), the desktop app gained substantial new capability, subagents can now run in the background, image generation learned to edit, and Cursor's Composer model is reachable through an xAI Grok subscription. The dashboard got a full profile builder and secure login, the Skills Hub browser was rehauled, the `memory` tool got a major upgrade, and the curator stopped spending aux-model budget on every routine run. 300+ issues closed ride along, plus a security round.
## ✨ Highlights
- **Hermes reaches iMessage — Photon Spectrum, no Mac relay required** — There's now an iMessage platform plugin built on Photon's managed line pool. Run `hermes photon login`, authenticate with a device code, and Hermes can send and receive iMessage — no Mac sitting in a closet running a relay, no BlueBubbles bridge to babysit. It's positioned as the successor to BlueBubbles: free to start, nothing to self-host. If your friends and family live in the blue bubbles, Hermes lives there now too. ([#32348](https://github.com/NousResearch/hermes-agent/pull/32348), [#42582](https://github.com/NousResearch/hermes-agent/pull/42582), [#44713](https://github.com/NousResearch/hermes-agent/pull/44713) — @teknium1)
- **Raft — Hermes joins the Raft agent network as a gateway channel** — A new bundled Raft platform adapter lets Hermes connect to [Raft](https://raft.build) as an external agent through a wake-channel bridge. Set `RAFT_PROFILE`, run the bridge, and Raft can wake Hermes to handle messages — with a privacy-by-contract design where wake payloads carry only metadata (event IDs, timestamps), never message bodies. Another surface where Hermes can show up and do work. ([#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @xxchan, @teknium1)
- **A substantially more capable desktop app** — v0.16.0 shipped the desktop app; v0.17.0 deepened it across dozens of PRs. Rebindable keyboard shortcuts, native OS notifications with per-type toggles, live subagent **watch-windows** that stream a delegated agent's activity into its own pane, a composer model selector with per-model presets, automatic RTL/bidi text direction, a resizable VS Code-themed terminal pane, per-thread composer drafts, and the ability to install **any VS Code Marketplace theme** directly into the app. The desktop is now a serious daily driver, not a preview. ([#45866](https://github.com/NousResearch/hermes-agent/pull/45866), [#40660](https://github.com/NousResearch/hermes-agent/pull/40660), [#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#46959](https://github.com/NousResearch/hermes-agent/pull/46959), [#43292](https://github.com/NousResearch/hermes-agent/pull/43292), [#44596](https://github.com/NousResearch/hermes-agent/pull/44596) — @OutThisLife, @teknium1)
- **Background / async subagents — delegate work and keep going** — `delegate_task(background=true)` now dispatches a subagent that runs in the background and returns a handle immediately. You and the model keep working while it churns, and the full result re-enters the conversation as a new turn the moment it finishes. Kick off a long research dive or a multi-step build, then carry on with something else instead of sitting blocked waiting on it. ([#40946](https://github.com/NousResearch/hermes-agent/pull/40946), [#46968](https://github.com/NousResearch/hermes-agent/pull/46968) — @teknium1)
- **Edit images, not just generate them — image-to-image in `image_generate`** — `image_generate` can now edit and transform a source image, not only create one from scratch. Pass an existing image and a prompt and it routes to the backend's edit endpoint (same tool, same pattern as `video_generate`), across every supported image provider. "Make this logo blue," "remove the background," "turn this sketch into a render" — all from the tool you already use. ([#48705](https://github.com/NousResearch/hermes-agent/pull/48705) — @teknium1)
- **Automation Blueprints — schedule things without learning cron** — Pick an automation by name and Hermes asks you for what it needs — no cron syntax, no `slot=value` typing. One blueprint definition renders natively on every surface: a form in the dashboard, a slash command in the CLI/TUI/messenger, a conversation with the agent, an entry in the docs catalog. "Daily news briefing at 8am" becomes a thing you set up by answering questions, not by memorizing `0 8 * * *`. ([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1)
- **Cursor's Composer model, through your xAI Grok subscription** — `grok-composer-2.5-fast` is now in the xAI OAuth model picker, with its context window reconciled to the full 200k. Composer is the fast coding model behind Cursor — and if you have an xAI Grok subscription, you can now point Hermes at it directly over OAuth, no separate API key. Your Grok plan, Hermes's agent loop, Composer's coding speed. ([#47908](https://github.com/NousResearch/hermes-agent/pull/47908), [#6f89e17](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1)
- **Full profile builder in the dashboard** — Build a complete Hermes profile from the browser — pick its model, choose its skills, attach its MCP servers — without hand-editing `config.yaml`. The dashboard also unified multi-profile management into one machine-wide view with a global profile switcher, so you manage every profile from a single place. ([#39084](https://github.com/NousResearch/hermes-agent/pull/39084), [#44007](https://github.com/NousResearch/hermes-agent/pull/44007) — @teknium1)
- **Skills Hub browser rehaul** — The dashboard's Skills Hub got a ground-up rework: connected hubs, a Featured section, full skill previews before you install, and a security scan on each skill. Browsing and installing skills from the trusted taps (OpenAI, Anthropic, HuggingFace, NVIDIA) is now a real browsing experience, not a flat list. ([#40384](https://github.com/NousResearch/hermes-agent/pull/40384), [#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1)
- **The `memory` tool got a major upgrade — atomic batch operations** — The `memory` tool gained an `operations` array that applies a batch of add/replace/remove edits **atomically against the final character budget**. The model can free up space and add new entries in a single call — even when an add alone would overflow the budget — collapsing what used to be a fragile multi-turn dance into one reliable operation. Memory updates are now faster and far less likely to fail mid-edit. ([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1)
- **Secure dashboard login** — The dashboard's authentication was hardened: every token-required endpoint now correctly returns 401 behind the OAuth gate, websocket auth uses the served dashboard token, and a warning fires when a `public_url` override is silently rejected. Exposing your dashboard to the network is safer by default. ([#42578](https://github.com/NousResearch/hermes-agent/pull/42578), [#42578](https://github.com/NousResearch/hermes-agent/pull/43214) — @benbarclay, @teknium1)
- **Official WhatsApp Business Cloud API adapter** — Alongside the existing Baileys bridge, Hermes now speaks the **official** WhatsApp Business Cloud API — Meta's first-party, hosted, no-bridge-process path. Point it at your Business API credentials and Hermes talks WhatsApp through the supported channel, with no QR-scanning bridge process to keep alive. ([#44331](https://github.com/NousResearch/hermes-agent/pull/44331), [#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle, @teknium1)
- **Rich text for Telegram — Bot API 10.1 rich messages** — Telegram replies now render as proper rich messages via Bot API 10.1: better formatting, cleaner long-message handling, native markup instead of flattened text. It's on by default with an opt-out, so your Telegram conversations look the way they should without any configuration. ([#44829](https://github.com/NousResearch/hermes-agent/pull/44829), [#45584](https://github.com/NousResearch/hermes-agent/pull/45584), [#45953](https://github.com/NousResearch/hermes-agent/pull/45953) — @teknium1)
- **Curator cost optimization — no aux-model spend on routine runs** — The skill curator now prunes stale skills by default but no longer runs its LLM-powered consolidation pass unless you opt in (`curator.consolidate: true` or `hermes curator run --consolidate`). The deterministic inactivity sweep keeps running for free; the opinionated, aux-model-spending "build umbrella skills" fork is now off by default. Routine background curation costs you **zero tokens**. ([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1)
## 🖥️ Hermes Desktop App
### New surfaces & UX
- Rebindable keyboard shortcuts panel; native OS notifications with per-type toggles; curated turn-completion cue + dismissable error banners ([#40660](https://github.com/NousResearch/hermes-agent/pull/40660), [#45866](https://github.com/NousResearch/hermes-agent/pull/45866), [#42480](https://github.com/NousResearch/hermes-agent/pull/42480), [#47985](https://github.com/NousResearch/hermes-agent/pull/47985) — @OutThisLife, @teknium1)
- Live subagent **watch-windows** — stream a delegated agent's activity into its own pane; composer status stack + editable prompts; open any chat in its own window; new-session-in-compact-window hotkey ([#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#44630](https://github.com/NousResearch/hermes-agent/pull/44630), [#43219](https://github.com/NousResearch/hermes-agent/pull/43219), [#46951](https://github.com/NousResearch/hermes-agent/pull/46951) — @OutThisLife, @teknium1)
- Composer model selector + per-model presets + external-provider disconnect; surface every provider/model from `hermes model` in the GUI; unify provider list to one source; warn when a main-model switch leaves auxiliary tasks pinned elsewhere ([#46959](https://github.com/NousResearch/hermes-agent/pull/46959), [#40563](https://github.com/NousResearch/hermes-agent/pull/40563), [#49080](https://github.com/NousResearch/hermes-agent/pull/49080), [#40286](https://github.com/NousResearch/hermes-agent/pull/40286) — @teknium1, @OutThisLife)
- Install **any VS Code Marketplace theme**; assignable themes per profile; window translucency slider; unified overlay design system + BrandMark + onboarding redesign ([#43292](https://github.com/NousResearch/hermes-agent/pull/43292), [#42286](https://github.com/NousResearch/hermes-agent/pull/42286), [#45086](https://github.com/NousResearch/hermes-agent/pull/45086), [#40708](https://github.com/NousResearch/hermes-agent/pull/40708) — @teknium1, @OutThisLife)
- Resizable VS Code-themed terminal pane + palette polish; auto-detect RTL/bidi text direction in chat; Mac-style session switcher (^Tab / ^1-9); worktree-aware sidebar grouping; hover-reveal collapsed sidebars; messaging source folders in sidebar ([#42521](https://github.com/NousResearch/hermes-agent/pull/42521), [#44596](https://github.com/NousResearch/hermes-agent/pull/44596), [#43111](https://github.com/NousResearch/hermes-agent/pull/43111), [#45273](https://github.com/NousResearch/hermes-agent/pull/45273), [#41670](https://github.com/NousResearch/hermes-agent/pull/41670), [#41751](https://github.com/NousResearch/hermes-agent/pull/41751) — @OutThisLife)
- Arrow-key history + queue editing in composer; expand full command inline from the approval bar; follow-streaming-at-bottom + jump-to-bottom button; first-class cron jobs in the sidebar + dashboard scheduler ([#40234](https://github.com/NousResearch/hermes-agent/pull/40234), [#44864](https://github.com/NousResearch/hermes-agent/pull/44864), [#45263](https://github.com/NousResearch/hermes-agent/pull/45263), [#40684](https://github.com/NousResearch/hermes-agent/pull/40684) — @OutThisLife, @teknium1)
- Desktop pets — pop-out overlay + notifications ([#47938](https://github.com/NousResearch/hermes-agent/pull/47938) — @teknium1)
- Full tool-backend config (pickers + per-backend settings) in Settings; run tool-backend post-setup installs from the GUI; uninstall the Chat GUI without removing the agent; Shift+click status-bar zap to toggle YOLO globally; `/browser connect` on a local gateway ([#41232](https://github.com/NousResearch/hermes-agent/pull/41232), [#40559](https://github.com/NousResearch/hermes-agent/pull/40559), [#40355](https://github.com/NousResearch/hermes-agent/pull/40355), [#41666](https://github.com/NousResearch/hermes-agent/pull/41666), [#47245](https://github.com/NousResearch/hermes-agent/pull/47245) — @teknium1, @OutThisLife)
- Japanese + Traditional Chinese language switching ([#40114](https://github.com/NousResearch/hermes-agent/pull/40114))
- "Restart gateway" action (renamed from "Restart messaging") surfaced in the statusbar + on messaging save/toggle toasts; rendered logs are selectable/copyable ([#49094](https://github.com/NousResearch/hermes-agent/pull/49094) — @OutThisLife)
### Remote-gateway & multi-profile
- **Remote media relay** — attach images/PDFs and display agent-written images over the network for the first time; remote-gateway file attachments via `file.attach` ([#41336](https://github.com/NousResearch/hermes-agent/pull/41336), [#42634](https://github.com/NousResearch/hermes-agent/pull/42634) — @teknium1)
- Client + backend version buttons + remote-backend update flow; browse remote backend files; route global-remote profile REST calls; recover chat after sleep/wake by revalidating a stale remote backend ([#42181](https://github.com/NousResearch/hermes-agent/pull/42181), [#44326](https://github.com/NousResearch/hermes-agent/pull/44326), [#47011](https://github.com/NousResearch/hermes-agent/pull/47011), [#41350](https://github.com/NousResearch/hermes-agent/pull/41350) — @OutThisLife, @teknium1)
- Multi-profile fallout cleanup — WS auth + cross-profile session reads; release profile backends before delete; scope session list/model switch/timer per session ([#44529](https://github.com/NousResearch/hermes-agent/pull/44529), [#42613](https://github.com/NousResearch/hermes-agent/pull/42613), [#41103](https://github.com/NousResearch/hermes-agent/pull/41103), [#41120](https://github.com/NousResearch/hermes-agent/pull/41120), [#41182](https://github.com/NousResearch/hermes-agent/pull/41182) — @OutThisLife, @teknium1)
- Stream subagent activity into watch windows; keep streaming painting in unfocused secondary chat windows; recover stranded session windows ([#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#47919](https://github.com/NousResearch/hermes-agent/pull/47919), [#47655](https://github.com/NousResearch/hermes-agent/pull/47655) — @OutThisLife)
## 📊 Web Dashboard
- Full-featured profile builder (model + skills + MCPs); unify multi-profile management — one machine dashboard + global profile switcher; profile-scoped skills & toolsets; session switcher panel on the Chat tab ([#39084](https://github.com/NousResearch/hermes-agent/pull/39084), [#44007](https://github.com/NousResearch/hermes-agent/pull/44007), [#43808](https://github.com/NousResearch/hermes-agent/pull/43808), [#49077](https://github.com/NousResearch/hermes-agent/pull/49077) — @teknium1)
- Skills hub browser rehaul — connected hubs, featured, preview + security scan; SKILL.md editor on Skills page + attach-skill selector in cron modals; full per-MCP catalog detail; full tool-backend config in the GUI ([#40384](https://github.com/NousResearch/hermes-agent/pull/40384), [#44231](https://github.com/NousResearch/hermes-agent/pull/44231), [#48520](https://github.com/NousResearch/hermes-agent/pull/48520), [#40418](https://github.com/NousResearch/hermes-agent/pull/40418) — @teknium1)
- Enable webhooks from the Webhooks page; idempotent `hermes dashboard register`; auto-restart gateway after Telegram QR onboarding; file browser; change UI font from the theme picker; reasoning-effort picker in the chat sidebar ([#44021](https://github.com/NousResearch/hermes-agent/pull/44021), [#42455](https://github.com/NousResearch/hermes-agent/pull/42455), [#43424](https://github.com/NousResearch/hermes-agent/pull/43424), [#43512](https://github.com/NousResearch/hermes-agent/pull/43512), [#41145](https://github.com/NousResearch/hermes-agent/pull/41145), [#49141](https://github.com/NousResearch/hermes-agent/pull/49141) — @teknium1)
## 🏗️ Core Agent & Architecture
### God-file refactor wave (run_agent.py / cli.py / gateway/run.py)
- **`cli.py` main() 3297 → 954 lines** — extracted 28 subcommand parsers into `hermes_cli/subcommands/`, then promoted 9 closure handlers; 32 slash-command handlers → `CLICommandsMixin`; 18 model-flow wizard functions → `model_setup_flows`; agent-construction cluster → `CLIAgentSetupMixin` ([#41798](https://github.com/NousResearch/hermes-agent/pull/41798), [#41835](https://github.com/NousResearch/hermes-agent/pull/41835), [#41942](https://github.com/NousResearch/hermes-agent/pull/41942), [#42174](https://github.com/NousResearch/hermes-agent/pull/42174), [#42153](https://github.com/NousResearch/hermes-agent/pull/42153) — @teknium1)
- **`gateway/run.py` 19157 → 15870 lines** — 42 slash-command handlers → `GatewaySlashCommandsMixin`; authorization cluster → `GatewayAuthorizationMixin`; kanban watcher loops → `GatewayKanbanWatchersMixin` ([#41886](https://github.com/NousResearch/hermes-agent/pull/41886), [#42159](https://github.com/NousResearch/hermes-agent/pull/42159), [#41849](https://github.com/NousResearch/hermes-agent/pull/41849) — @teknium1)
- **`run_agent.py` turn loop** — extracted prologue into `TurnContext`, post-loop tail into `finalize_turn`, consolidated inner-retry-loop recovery flags into `TurnRetryState` ([#41778](https://github.com/NousResearch/hermes-agent/pull/41778), [#42169](https://github.com/NousResearch/hermes-agent/pull/42169), [#41828](https://github.com/NousResearch/hermes-agent/pull/41828) — @teknium1)
### Agent loop, prompt & tools
- **`memory` batch operations** — atomic add/replace/remove array against the final char budget, so a single call can free space and add entries ([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1)
- **`search_files` lossless densification** — headroom evaluation report + the one densification improvement worth shipping (fewer tokens per result, same matches) ([#47866](https://github.com/NousResearch/hermes-agent/pull/47866) — @teknium1)
- Removed the agent-callable `send_message` tool; coding-context posture across CLI/TUI/desktop/ACP; `read_file` extracts `.ipynb`/`.docx`/`.xlsx` to text ([#47856](https://github.com/NousResearch/hermes-agent/pull/47856), [#43316](https://github.com/NousResearch/hermes-agent/pull/43316), [#37082](https://github.com/NousResearch/hermes-agent/pull/37082) — @teknium1)
- Context-file handling: configurable truncation limit + warnings; scale context-file cap to model window + point agent at the truncated file ([#47251](https://github.com/NousResearch/hermes-agent/pull/47251), [#47846](https://github.com/NousResearch/hermes-agent/pull/47846) — @teknium1)
- Compression: temporal anchoring in compaction summaries; raise compaction trigger to 85% for gpt-5.5 on Codex OAuth ([#41102](https://github.com/NousResearch/hermes-agent/pull/41102), [#40957](https://github.com/NousResearch/hermes-agent/pull/40957) — @teknium1)
- Adaptive middleware (consumed by NeMo-Relay observer telemetry); usable mid-turn steer — desktop affordance + trusted injection ([#29724](https://github.com/NousResearch/hermes-agent/pull/29724), [#40240](https://github.com/NousResearch/hermes-agent/pull/40240) — @teknium1)
### Provider & model support
- New models: `z-ai/glm-5.2` (verified 1M context, OpenRouter + Nous), `anthropic/claude-fable-5`, `laguna-m.1` + `nemotron-3-ultra`, xAI Composer 2.5 in the OAuth picker; default xAI to `grok-build-0.1` ([#47391](https://github.com/NousResearch/hermes-agent/pull/47391), [#45695](https://github.com/NousResearch/hermes-agent/pull/45695), [#42979](https://github.com/NousResearch/hermes-agent/pull/42979), [#42629](https://github.com/NousResearch/hermes-agent/pull/42629), [#47908](https://github.com/NousResearch/hermes-agent/pull/47908), [#47371](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1)
- Model picker: Refresh-Models control to bust stale cache; persist Nous recommended-models to disk + fall back on Portal failure; seed catalog disk cache from checkout on update; MiniMax-M3 reports true 1M context ([#48691](https://github.com/NousResearch/hermes-agent/pull/48691), [#42628](https://github.com/NousResearch/hermes-agent/pull/42628), [#42614](https://github.com/NousResearch/hermes-agent/pull/42614), [#43338](https://github.com/NousResearch/hermes-agent/pull/43338) — @teknium1)
- Anthropic adaptive models: default to modern thinking contract; never send `reasoning` field; route `reasoning_effort` to verbosity; require confirmation for very expensive selections ([#42991](https://github.com/NousResearch/hermes-agent/pull/42991), [#43012](https://github.com/NousResearch/hermes-agent/pull/43012), [#43436](https://github.com/NousResearch/hermes-agent/pull/43436), [#43391](https://github.com/NousResearch/hermes-agent/pull/43391) — @teknium1)
- Auth: auto-detect OpenRouter credential from the pool; keep Codex OAuth pool accounts distinct on add/re-auth; resolve xAI OAuth across profiles + write rotated tokens back to root; honor `model.default_headers` for custom OpenAI-compatible providers ([#42263](https://github.com/NousResearch/hermes-agent/pull/42263), [#42316](https://github.com/NousResearch/hermes-agent/pull/42316), [#46614](https://github.com/NousResearch/hermes-agent/pull/46614), [#41096](https://github.com/NousResearch/hermes-agent/pull/41096) — @teknium1)
- Bedrock falls back to non-streaming `InvokeModel` when IAM denies the streaming variant; Ollama default `max_tokens=65536`; surface model refusals as `content_filter` ([#44293](https://github.com/NousResearch/hermes-agent/pull/44293), [#41694](https://github.com/NousResearch/hermes-agent/pull/41694), [#46013](https://github.com/NousResearch/hermes-agent/pull/46013) — @teknium1)
### Sessions, state & multi-agent
- Optional **max session cap**; drop empty sessions on CLI exit and rotation; ACP session-provenance metadata for compression rotation ([#42389](https://github.com/NousResearch/hermes-agent/pull/42389), [#43855](https://github.com/NousResearch/hermes-agent/pull/43855), [#41724](https://github.com/NousResearch/hermes-agent/pull/41724) — @teknium1)
- Delegation: resolve custom-endpoint subagent pools by endpoint identity; remove the default subagent wall-clock timeout; stop subagent completion lines leaking into parent CLI display ([#41730](https://github.com/NousResearch/hermes-agent/pull/41730), [#45149](https://github.com/NousResearch/hermes-agent/pull/45149), [#44223](https://github.com/NousResearch/hermes-agent/pull/44223) — @teknium1)
- Kanban: config-gated auto-subscribe on `kanban_create`; machine-global singleton lock for the embedded dispatcher; pin assigned profile toolsets for workers; hold reclaim while worker still alive ([#48635](https://github.com/NousResearch/hermes-agent/pull/48635), [#49068](https://github.com/NousResearch/hermes-agent/pull/49068), [#45590](https://github.com/NousResearch/hermes-agent/pull/45590), [#49064](https://github.com/NousResearch/hermes-agent/pull/49064) — @teknium1)
- Memory: configurable Hindsight retain observation scopes; OpenViking setup UX; Honcho gateway-gated identity tree; Supermemory session-level ingest ([#46611](https://github.com/NousResearch/hermes-agent/pull/46611), [#48262](https://github.com/NousResearch/hermes-agent/pull/48262), [#44431](https://github.com/NousResearch/hermes-agent/pull/44431), [#38756](https://github.com/NousResearch/hermes-agent/pull/38756) — @teknium1, @alt-glitch)
## 📱 Messaging Platforms (Gateway)
### New channels
- **iMessage via Photon Spectrum** — `hermes photon login` (device-code OAuth), gRPC-native channel (no webhook), markdown rendering, emoji reactions, outbound media via spectrum-ts ([#32348](https://github.com/NousResearch/hermes-agent/pull/32348), [#42582](https://github.com/NousResearch/hermes-agent/pull/42582), [#44713](https://github.com/NousResearch/hermes-agent/pull/44713), [#42397](https://github.com/NousResearch/hermes-agent/pull/42397) — @teknium1)
- **WhatsApp Business Cloud API** adapter (official, no bridge process) ([#44331](https://github.com/NousResearch/hermes-agent/pull/44331), [#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle, @teknium1)
- **SimpleX** — groups, native attachments, text batching, auto-accept; **Raft** bundled platform plugin with activity hooks ([#42584](https://github.com/NousResearch/hermes-agent/pull/42584), [#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @teknium1)
### Gateway core & rendering
- Render terminal tool calls as native bash code blocks on markdown platforms; bare fenced code blocks in chat; optional message timestamps for LLM context; configurable `tool_progress_grouping` ([#41215](https://github.com/NousResearch/hermes-agent/pull/41215), [#42576](https://github.com/NousResearch/hermes-agent/pull/42576), [#47253](https://github.com/NousResearch/hermes-agent/pull/47253), [#47228](https://github.com/NousResearch/hermes-agent/pull/47228) — @teknium1)
- Telegram: Bot API 10.1 rich messages (now always-on with opt-out); opt-in Online/Offline bot status indicator; stop cutting long streamed responses; MarkdownV2 on progress edits; gate oversized voice/audio before download ([#44829](https://github.com/NousResearch/hermes-agent/pull/44829), [#45584](https://github.com/NousResearch/hermes-agent/pull/45584), [#49134](https://github.com/NousResearch/hermes-agent/pull/49134), [#43761](https://github.com/NousResearch/hermes-agent/pull/43761), [#44245](https://github.com/NousResearch/hermes-agent/pull/44245) — @teknium1)
- Discord: propagate `role_authorized` so `DISCORD_ALLOWED_ROLES` works end-to-end; recover from runtime gateway task exits; cancel `_bot_task` on connect failure; stop typing after replies ([#43327](https://github.com/NousResearch/hermes-agent/pull/43327), [#44383](https://github.com/NousResearch/hermes-agent/pull/44383), [#44432](https://github.com/NousResearch/hermes-agent/pull/44432), [#44836](https://github.com/NousResearch/hermes-agent/pull/44836) — @teknium1)
- Slack: scope top-level channel messages when `reply_in_thread=false`; thread approval UX (block-size overflow + typed-prefix); make video attachments available to agents; `register_slack_action_handler` plugin API ([#41703](https://github.com/NousResearch/hermes-agent/pull/41703), [#43444](https://github.com/NousResearch/hermes-agent/pull/43444), [#45512](https://github.com/NousResearch/hermes-agent/pull/45512), [#44664](https://github.com/NousResearch/hermes-agent/pull/44664) — @teknium1)
- Replied-to media attachments included; document attachments classified as DOCUMENT on Signal/Email/SimpleX/Teams; WhatsApp restarts stale bridge processes; Matrix room-context isolation; QQbot CPU-spin fix; Weixin rate-limit circuit breaker ([#46107](https://github.com/NousResearch/hermes-agent/pull/46107), [#44695](https://github.com/NousResearch/hermes-agent/pull/44695), [#44205](https://github.com/NousResearch/hermes-agent/pull/44205), [#18505](https://github.com/NousResearch/hermes-agent/pull/18505), [#40574](https://github.com/NousResearch/hermes-agent/pull/40574), [#41718](https://github.com/NousResearch/hermes-agent/pull/41718) — @teknium1, @banditburai)
## 🖥️ CLI, TUI & Setup
- `/version` slash command; `/billing` interactive terminal billing (TUI + CLI); show time since last final agent response on the status bar; persist resolved approval/clarify prompts in scrollback ([#40214](https://github.com/NousResearch/hermes-agent/pull/40214), [#45449](https://github.com/NousResearch/hermes-agent/pull/45449), [#44265](https://github.com/NousResearch/hermes-agent/pull/44265), [#44702](https://github.com/NousResearch/hermes-agent/pull/44702) — @teknium1)
- Lock hermes worktrees so concurrent processes can't clobber them; display custom profile alias names in list/show; clone profiles from any source ([#48699](https://github.com/NousResearch/hermes-agent/pull/48699), [#40371](https://github.com/NousResearch/hermes-agent/pull/40371), [#45630](https://github.com/NousResearch/hermes-agent/pull/45630) — @teknium1)
- Opt-in structured profile-build path on first contact; configurable per-platform system-prompt hints; configurable background memory/skill notifications ([#41114](https://github.com/NousResearch/hermes-agent/pull/41114), [#48630](https://github.com/NousResearch/hermes-agent/pull/48630), [#47226](https://github.com/NousResearch/hermes-agent/pull/47226) — @teknium1)
- TUI: interactive Plugins Hub enable/disable overlay; session name in the terminal titlebar; paint approval/clarify/sudo/secret modals directly (not via throttle); wrap long approval commands instead of truncating ([#42965](https://github.com/NousResearch/hermes-agent/pull/42965), [#43188](https://github.com/NousResearch/hermes-agent/pull/43188), [#41155](https://github.com/NousResearch/hermes-agent/pull/41155), [#44691](https://github.com/NousResearch/hermes-agent/pull/44691) — @teknium1)
- TTS: Gemini persona prompts + audio tags; xAI auto speech tags + speed/streaming knobs; Piper speaker_id; OGG for Telegram auto-TTS ([#43442](https://github.com/NousResearch/hermes-agent/pull/43442), [#49061](https://github.com/NousResearch/hermes-agent/pull/49061), [#49062](https://github.com/NousResearch/hermes-agent/pull/49062), [#49060](https://github.com/NousResearch/hermes-agent/pull/49060), [#41644](https://github.com/NousResearch/hermes-agent/pull/41644) — @teknium1)
## 🔧 Tool System, Skills & MCP
- **image-to-image / editing** in `image_generate` across all backends; shrink images to provider dimension limit ([#48705](https://github.com/NousResearch/hermes-agent/pull/48705), [#45979](https://github.com/NousResearch/hermes-agent/pull/45979) — @teknium1)
- MCP: official **Unreal Engine 5.8** MCP server in the catalog; **elicitation handler** so MCP servers can prompt for mid-tool-call confirmation (payment/OAuth) on whichever surface owns the session — CLI/TUI/Telegram/Slack; expose late-connecting MCP tools to the agent between turns (cache-safe); keepalive ping for short-TTL HTTP sessions; block exfil-shaped / suspicious stdio configs before probe; capability-gate `tools/list` so prompt-only servers connect; preserve stdio argv passthrough + Windows env vars ([#48397](https://github.com/NousResearch/hermes-agent/pull/48397), [#49203](https://github.com/NousResearch/hermes-agent/pull/49203), [#49208](https://github.com/NousResearch/hermes-agent/pull/49208), [#49221](https://github.com/NousResearch/hermes-agent/pull/49221), [#46083](https://github.com/NousResearch/hermes-agent/pull/46083), [#44550](https://github.com/NousResearch/hermes-agent/pull/44550), [#44324](https://github.com/NousResearch/hermes-agent/pull/44324) — @teknium1, @lgalabru)
- Skills: `simplify-code` skill (parallel 3-agent code review & cleanup) + risk-tiered application with Chesterton's Fence; find & diff user-modified bundled skills; optional **payments** skills (Stripe Link, MPP, Projects); CLI-based shop skill; live per-source browse progress ([#41691](https://github.com/NousResearch/hermes-agent/pull/41691), [#49070](https://github.com/NousResearch/hermes-agent/pull/49070), [#48286](https://github.com/NousResearch/hermes-agent/pull/48286), [#31343](https://github.com/NousResearch/hermes-agent/pull/31343), [#47309](https://github.com/NousResearch/hermes-agent/pull/47309), [#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1, @colinwren-stripe)
- Curator: make skill consolidation opt-in (prune stays default-on) ([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1)
- Plugins: install from a subdirectory within a repo; accept browser-pasted GitHub URLs in `hermes plugins install`; `session:compress` lifecycle event + `thread_id`/`chat_type` in agent:start/end context ([#42963](https://github.com/NousResearch/hermes-agent/pull/42963), [#33539](https://github.com/NousResearch/hermes-agent/pull/33539), [#47252](https://github.com/NousResearch/hermes-agent/pull/47252), [#41672](https://github.com/NousResearch/hermes-agent/pull/41672) — @teknium1)
- Memory/skill **write approval** gate (default off) — boolean `write_approval` replaces the tri-state `write_mode` ([#38199](https://github.com/NousResearch/hermes-agent/pull/38199), [#43354](https://github.com/NousResearch/hermes-agent/pull/43354) — @teknium1)
## 🌐 Fleet, Relay & Automation
- **Managed scope** — administrator-pinned, user-immutable config & secrets from a root-owned `/etc/hermes` ([#49098](https://github.com/NousResearch/hermes-agent/pull/49098) — @teknium1)
- **Multiplex all profiles over one gateway process** (opt-in) ([#48273](https://github.com/NousResearch/hermes-agent/pull/48273) — @benbarclay)
- **Pluggable CronScheduler** + Chronos managed-cron provider (scale-to-zero) ([#48275](https://github.com/NousResearch/hermes-agent/pull/48275) — @benbarclay)
- **Automation Blueprints** — parameterized automation templates across every surface ([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1)
- Gateway-Gateway relay (phases 0-3): relay adapter + capability descriptor, connector⇄gateway channel auth + signed-HTTP inbound + enroll CLI, WS-only inbound, managed-boot self-provision client ([#48078](https://github.com/NousResearch/hermes-agent/pull/48078), [#48147](https://github.com/NousResearch/hermes-agent/pull/48147), [#48294](https://github.com/NousResearch/hermes-agent/pull/48294), [#48242](https://github.com/NousResearch/hermes-agent/pull/48242) — @teknium1)
## 🐳 Docker, Nix & Installer
- s6: detect supervisor directly for gateway restart; register profile gateways without auto-starting; persist desired state; clear stale log locks ([#46290](https://github.com/NousResearch/hermes-agent/pull/46290), [#46266](https://github.com/NousResearch/hermes-agent/pull/46266), [#46292](https://github.com/NousResearch/hermes-agent/pull/46292), [#46289](https://github.com/NousResearch/hermes-agent/pull/46289) — @teknium1)
- Docker: optimize image size (.dockerignore, drop dev deps, split layers); pre-install matrix deps; supervised gateway uses `--replace`; harden hosted install tree against self-modification ([#38749](https://github.com/NousResearch/hermes-agent/pull/38749), [#42413](https://github.com/NousResearch/hermes-agent/pull/42413), [#47555](https://github.com/NousResearch/hermes-agent/pull/47555), [#47490](https://github.com/NousResearch/hermes-agent/pull/47490) — @teknium1)
- Nix: cold npm build fixes + auto-fix-lockfiles workflow; hashless npm deps via `importNpmLock`; refresh npmDepsHash after Electron 40.10.2 pin ([#41867](https://github.com/NousResearch/hermes-agent/pull/41867), [#48883](https://github.com/NousResearch/hermes-agent/pull/48883), [#48457](https://github.com/NousResearch/hermes-agent/pull/48457) — @teknium1)
- Installer: clear unmerged git index before autostash; scope install-method stamp to the code tree ([#45515](https://github.com/NousResearch/hermes-agent/pull/45515), [#48188](https://github.com/NousResearch/hermes-agent/pull/48188) — @teknium1)
## 🔒 Security & Reliability
- Fail closed on own-policy gateway adapters; fail closed for approval-button auth on Slack/Feishu/Discord when no allowlist is set ([#45634](https://github.com/NousResearch/hermes-agent/pull/45634), [#41226](https://github.com/NousResearch/hermes-agent/pull/41226) — @teknium1)
- Redact secrets in request debug dumps; withhold host metadata from public status; block exfil-shaped / suspicious MCP stdio configs before probe ([#46637](https://github.com/NousResearch/hermes-agent/pull/46637), [#45642](https://github.com/NousResearch/hermes-agent/pull/45642), [#46083](https://github.com/NousResearch/hermes-agent/pull/46083) — @teknium1)
- Close shell-escape denylist bypass + fail-closed on missing approval module; scrub operator environment before launching cua-driver MCP; sanitize env for cron job-script subprocesses; bound TodoStore content length/count; scan REST cron prompts for parity with the agent tool ([#40591](https://github.com/NousResearch/hermes-agent/pull/40591), [#48423](https://github.com/NousResearch/hermes-agent/pull/48423), [#49207](https://github.com/NousResearch/hermes-agent/pull/49207), [#41648](https://github.com/NousResearch/hermes-agent/pull/41648), [#41335](https://github.com/NousResearch/hermes-agent/pull/41335) — @teknium1, @kshitijk4poor)
- Bump urllib3 and PyJWT to clear CVEs; Langfuse redacts base64 data URIs instead of truncating into invalid base64 ([#40179](https://github.com/NousResearch/hermes-agent/pull/40179), [#43322](https://github.com/NousResearch/hermes-agent/pull/43322) — @teknium1)
## 🪟 Windows
- Dashboard `/chat` tab via ConPTY (`win_pty_bridge`) + tests; resolve PowerShell host instead of bare `powershell` for uv install; resolve `powershell.exe` by absolute path so Desktop install doesn't stall ([#42251](https://github.com/NousResearch/hermes-agent/pull/42251), [#48341](https://github.com/NousResearch/hermes-agent/pull/48341), [#40927](https://github.com/NousResearch/hermes-agent/pull/40927) — @teknium1)
- Repair stale winget registration + refresh/merge PATH; kill hermes before recreating venv to release `_bcrypt.pyd` lock; read HERMES_HOME from the registry when env is stale; quarantine running `hermes.exe` during update repair ([#44084](https://github.com/NousResearch/hermes-agent/pull/44084), [#45120](https://github.com/NousResearch/hermes-agent/pull/45120), [#46772](https://github.com/NousResearch/hermes-agent/pull/46772), [#40409](https://github.com/NousResearch/hermes-agent/pull/40409) — @teknium1)
- JOB-breakaway watcher reliability + status --deep probes; handle Windows PTY stdin + detached WS frames; decode subprocess output as UTF-8; confirm-modal on native Windows ([#40909](https://github.com/NousResearch/hermes-agent/pull/40909), [#41953](https://github.com/NousResearch/hermes-agent/pull/41953), [#44328](https://github.com/NousResearch/hermes-agent/pull/44328), [#42419](https://github.com/NousResearch/hermes-agent/pull/42419) — @teknium1)
## 🐛 Notable Bug Fixes
- Percent-encode non-ascii URL components; sanitize `:` in FTS5 queries so colon searches don't silently return empty ([#41430](https://github.com/NousResearch/hermes-agent/pull/41430), [#40653](https://github.com/NousResearch/hermes-agent/pull/40653) — @teknium1)
- Preserve multimodal user content through crash-resilience persist; flatten multimodal content before provider sync; strip MEDIA directives from compressor input ([#47907](https://github.com/NousResearch/hermes-agent/pull/47907), [#44738](https://github.com/NousResearch/hermes-agent/pull/44738), [#44708](https://github.com/NousResearch/hermes-agent/pull/44708) — @teknium1)
- Re-enter retry loop on genuine Nous 429 so the fallback guard runs; scope Nous tags to Nous auxiliary calls; suppress "Credit access paused" notice on free models ([#45136](https://github.com/NousResearch/hermes-agent/pull/45136), [#45801](https://github.com/NousResearch/hermes-agent/pull/45801), [#43669](https://github.com/NousResearch/hermes-agent/pull/43669) — @teknium1)
- Cron: don't strict-scan script-injected output in no-skills jobs; resolve per-job provider "custom" to `providers.custom` instead of codex; repair cron ownership on container restart ([#43223](https://github.com/NousResearch/hermes-agent/pull/43223), [#43505](https://github.com/NousResearch/hermes-agent/pull/43505), [#41976](https://github.com/NousResearch/hermes-agent/pull/41976) — @teknium1)
- *(300+ issues closed this window; full per-area fix list is exhaustive — these are the highest-impact.)*
## ↩️ Reverted in this window (not shipping)
- `html-artifact` skill + sketch/architecture-diagram/concept-diagrams fold ([#48899](https://github.com/NousResearch/hermes-agent/pull/48899)) — reverted ([#49053](https://github.com/NousResearch/hermes-agent/pull/49053)); absent on main.
- Cron per-job profile support reverted ([#43956](https://github.com/NousResearch/hermes-agent/pull/43956)); a nix patchPhase workaround reverted ([#42151](https://github.com/NousResearch/hermes-agent/pull/42151)).
## 👥 Contributors
A huge thank-you to everyone who contributed to this release — **245 contributors** across commits, co-author trailers, and salvaged PRs.
### Core
@teknium1
### Top community contributors (by merged PRs)
- @OutThisLife — 92 PRs (desktop app maturity (shortcuts, notifications, watch-windows, themes))
- @kshitijk4poor — 60 PRs (onboarding, model picker, cron env sanitization)
- @xxxigm — 27 PRs (desktop & gateway fixes)
- @benbarclay — 23 PRs (gateway multiplex, Chronos cron, dashboard auth)
- @helix4u — 21 PRs (gateway & installer reliability)
- @austinpickett — 19 PRs (dashboard & desktop UX)
- @alt-glitch — 14 PRs (usage-aware credits, Supermemory)
- @ethernet8023 — 14 PRs (desktop build pipeline & Linux/Windows)
- @liuhao1024 — 5 PRs (session lifecycle fixes)
### All contributors (alphabetical)
@0z1-ghb, @0xdany, @0xneobyte, @0xyg3n, @1960697431, @895252509, @achaljhawar, @Adolanium, @AhmetArif0, @AIalliAI,
@aimable100, @AJ, @ak2k, @alarcritty, @AlchemistChaos, @aldoeliacim, @alelpoan, @AlexanderBFoley,
@alfred-smith-0, @ali-nld, @alt-glitch, @am423, @ameobius, @AMIK-coorporations, @annguyenNous, @ArcanePivot,
@ARegalado1, @asdlem, @ashishpatel26, @austinpickett, @banditburai, @barronlroth, @Bartok9, @basilalshukaili,
@bbednarski9, @bcsmith528, @benbarclay, @benegessarit, @benfrank241, @bionicbutterfly13, @BlackishGreen33,
@blut-agent, @bmoore210, @bpasquini, @briandevans, @BROCCOLO1D, @capt-marbles, @ccook1963, @Cdddo, @channkim,
@ChasLui, @chimpera, @chromalinx, @CiarasClaws, @claytonchew, @cnfi, @colinwren-stripe, @cresslank,
@cyb0rgk1tty, @dangelo352, @davidgut1982, @deaneeth, @definitelynotguru, @Diyoncrz18, @draix, @dschnurbusch,
@Dusk1e, @dusterbloom, @ehz0ah, @emozilla, @enesilhaydin, @Erosika, @ethernet8023, @Evisolpxe, @firefly,
@flooryyyy, @flyinhigh, @foras910521-lab, @Frowtek, @ft-ioxcs, @fyzanshaik, @Ganesh0690, @gauravsaxena1997,
@giladbau, @glesperance, @GodsBoy, @goku94123, @H-Ali13381, @HaozheZhang6, @haran2001, @harshitAgr, @hbentel,
@helix4u, @HeLLGURD, @Hermes, @huangxun375-stack, @iamlukethedev, @ianculling, @IAvecilla, @iborazzi,
@infinitycrew39, @islam666, @ITheEqualizer, @itsflownium, @Jaaneek, @james47kjv, @jeeves-assistant,
@jeffrobodie-glitch, @JezzaHehn, @jiangkoumo, @jimjsong, @JimLiu, @JimStenstrom, @jmsunseri, @JoaoMarcos44,
@joel611, @JoelJJohnson, @joerj123, @johnjacobkenny, @jooray, @joshuadow, @jplew, @justinbao19, @Justlrnal4,
@Kailigithub, @kamonspecial, @kdunn926, @Kenmege, @Kewe63, @kmccammon, @konsisumer, @kristianvast,
@kshitijk4poor, @kyssta-exe, @l37525778-coder, @LaPhilosophie, @leo4226, @LeonSGP43, @liuhao1024, @Llugaes,
@loongfay, @loongzhao, @lsaether, @m4dni5, @manishbyatroy, @MaxFreedomPollard, @maxmilian, @maxtrigify,
@mnajafian-nv, @mohamedorigami-jpg, @mollusk, @MrDiamondBallz, @mssteuer, @mvanhorn, @naqerl, @Nea74,
@necoweb3, @nepenth, @nicoloboschi, @NormallyGaussian, @OmarB97, @omegazheng, @OndrejDrapalik, @OutThisLife,
@oxngon, @OYLFLMH, @Paperclip, @paulb26, @pengyuyanITYU, @PhilipAD, @pinguarmy, @plcunha, @ProgramCaiCai,
@psionic73, @qin-ctx, @qingshan89, @Que0x, @qWaitCrypto, @r266-tech, @randomsnowflake, @rbrtbn, @rewbs,
@rio-jeong, @Rivuza, @rob-maron, @rodboev, @ruangraung, @RyTsYdUp, @Sahil-SS9, @salesondemandio, @sanidhyasin,
@sarvesh1327, @sdyckjq-lab, @shannonsands, @SHL0MS, @simpolism, @sitkarev, @skyc1e, @skylarbpayne, @SNooZyy2,
@Spaceman-Spiffy, @srojk34, @sweetcornna, @synapsesx, @Tamaz-sujashvili, @tangtaizong666, @temalo, @tfournet,
@thedavidweng, @TheGardenGallery, @tim404x, @tomekpanek, @Tranquil-Flow, @tt-a1i, @tuancookiez-hub,
@underthestars-zhy, @Veritas-7, @victor-kyriazakos, @wesleysimplicio, @WolframRavenwolf, @WompaJango, @x1erra,
@xiaoxinova, @xtymac, @xushibo, @XVVH, @xxchan, @xxxigm, @xy200303, @y0shua1ee, @yanxue06, @yatesjalex,
@YLChen-007, @yoniebans, @youjunxiaji, @yubingz, @zakame, @zapabob, @zccyman, @zimigit2020, @ziwon, @zwcf5200,
@zxcasongs.
---
**Full Changelog**: [v2026.6.5...v2026.6.19](https://github.com/NousResearch/hermes-agent/compare/v2026.6.5...v2026.6.19)
# Hermes Agent v0.16.0 (v2026.6.5)
**发布日期:** 2026年6月5日
**自 v0.15.2 以来:** 874 个提交 · 542 个合并的 PR · 1,962 个文件变更 · 205,216 行新增 · 46,217 行删除 · 399 个已关闭议题(2 个 P0,62 个 P1,16 个安全标记) · 170 位社区贡献者(含合著者)
> **「Surface」版本。** Hermes 在你工作的任何地方与你相遇。全新的原生桌面应用——一周内跨越 100 个 PR 和 159 个提交构建而成——让 Hermes 成为真正的 macOS/Linux/Windows 应用程序:一键安装、应用内自更新、拖拽文件到聊天中、状态栏中的内联模型选择器、并发的多配置文件会话、完整的简体中文翻译,以及通过 OAuth 或用户名/密码连接远程 Hermes 网关的能力。与此同时,Web 仪表盘新增了完整的基于浏览器的管理面板(MCP 目录、消息通道、凭据、Webhook、记忆、可插拔的 OIDC/用户名密码登录),首次设置增加了「通过 Nous Portal 快速设置」路径,让你从安装到第一条消息只需几秒钟。默认技能集精简为你真正需要的,NVIDIA/skills 加入了受信任的技能 Hub 源,模型选择器现在可以在所有地方(桌面、Web、TUI、CLI)进行模糊搜索,`/undo` 终于让你可以撤销最近的 N 轮对话。2 个 P0 和 62 个 P1 的关闭也一同包含在内,外加一轮安全修复(CVE-2026-48710 Starlette 锁定、SSRF 环路外加固、子进程凭据剥离)。
---
## ✨ 亮点
- **Hermes Desktop——真正的原生应用,而非终端包装器**——这是头条新闻。现在有一个 `apps/desktop/` Electron 应用程序,可以像任何其他桌面应用一样安装在 macOS、Linux 和 Windows 上,在应用内部进行自更新,并为 Hermes 所做的一切提供精美的图形界面。你将拥有一个带有流式传输的聊天窗口、可以归档和搜索的会话列表、在聊天区域任何位置拖放文件、剪贴板图片粘贴、Cmd+K 命令面板,以及状态栏中的模型选择器。如果你一直告诉朋友「它是一个 CLI 代理」然后看到他们眼神呆滞——现在你只需发给他们一个安装程序。一周前这些东西都不存在。([#20059](https://github.com/NousResearch/hermes-agent/pull/20059)、[#35607](https://github.com/NousResearch/hermes-agent/pull/35607)、[#37099](https://github.com/NousResearch/hermes-agent/pull/37099)、[#37379](https://github.com/NousResearch/hermes-agent/pull/37379)、[#38631](https://github.com/NousResearch/hermes-agent/pull/38631) —— @OutThisLife、@jquesnelle、@ethernet8023、@austinpickett、@benbarclay)
- **将桌面应用连接到远程 Hermes——通过 OAuth 或用户名/密码登录**——桌面应用不必在本地运行 Hermes。将其指向远程 Hermes 网关(你的家庭实验室、托管服务器、队友的服务器),它会通过安全的 WebSocket 连接,使用 OAuth 或用户名/密码登录进行身份验证——无需折腾 `--insecure` 标志或手动复制的会话令牌。每个配置文件可以针对自己的远程主机,你可以在一个窗口中跨多个配置文件运行并发会话,并使用跨配置文件的 `@session` 链接。实际版本:你的笔记本电脑运行一个轻量 GUI,重型代理则运行在你的 API 密钥和计算资源所在之处。([#37888](https://github.com/NousResearch/hermes-agent/pull/37888)、[#38851](https://github.com/NousResearch/hermes-agent/pull/38851)、[#39330](https://github.com/NousResearch/hermes-agent/pull/39330)、[#39778](https://github.com/NousResearch/hermes-agent/pull/39778) —— @benbarclay、@OutThisLife、@teknium1)
- **Web 仪表盘现在是一个功能完整的管理面板——从浏览器配置一切**——仪表盘从「查看你的会话」发展成为一个完整的管理界面。新增了 Channels 页面,可以从浏览器设置每个网关消息平台(Telegram、Discord、Slack 等);MCP 目录的管理面板带有启用/禁用开关;凭据管理;Webhook 和钩子创建;内存配置;网关控制;以及 System 页面,带有更新前检查和一键 Debug Share。你不再需要 SSH 登录并编辑 `config.yaml` 来配置新的消息通道或 MCP 服务器——现在全是点选操作。([#36704](https://github.com/NousResearch/hermes-agent/pull/36704)、[#36736](https://github.com/NousResearch/hermes-agent/pull/36736)、[#37211](https://github.com/NousResearch/hermes-agent/pull/37211)、[#38205](https://github.com/NousResearch/hermes-agent/pull/38205)、[#38600](https://github.com/NousResearch/hermes-agent/pull/38600) —— @teknium1)
- **Hermes Desktop 支持简体中文——聊天 GUI 全面汉化**——桌面应用现在在所有 UI 界面——聊天窗口本身、侧边栏、设置、命令中心、定时任务、消息、配置文件、技能、代理等等——都提供了完整的简体中文翻译。英文保持默认;在「外观」设置中切换语言,选择会持久化到你的配置中(`display.language`)。它基于一个合适的类型化 i18n 层构建,所以从这里添加更多语言会很简单。([#38241](https://github.com/NousResearch/hermes-agent/pull/38241) —— @JimLiu)
- **更精简的默认技能集——Hermes 只包含你真正需要的**——捆绑的技能集经过了有意的精简。冗余或已死的技能被移除(`spotify`——已被原生 Spotify 插件的 7 个工具取代;`linear`——已被 `hermes mcp install linear` 取代;`kanban-codex-lane`、`debugging-hermes-tui-commands`、一个过时的 `domain` 孤儿,以及几个空的分类标记)。较重或小众的技能从捆绑移到了可选(Baoyu 创意套装、`dspy`、`subagent-driven-development`、`minecraft-modpack-server`、`pokemon-player`、`hermes-s6-container-supervision`)——仍然只需 `hermes skills install` 一次,只是默认不加载。而一个新的 `environments:` 相关性门控可以让特定上下文的技能(看板、docker/s6)不进入技能索引,供永远不会使用它们的用户使用,同时仍可在明确请求时加载。结果:更小、更清晰的默认技能列表,选择器中噪音更少,提示更轻量。策展人现在也可以修剪未使用的**内置**技能(不仅限于代理创建的),每个技能的使用情况都会被跟踪。([#39028](https://github.com/NousResearch/hermes-agent/pull/39028)、[#36701](https://github.com/NousResearch/hermes-agent/pull/36701)、[#36228](https://github.com/NousResearch/hermes-agent/pull/36228) —— @teknium1)
- **NVIDIA/skills 现在是一个内置的受信任技能源**——`NVIDIA/skills` 加入了 OpenAI、Anthropic 和 HuggingFace,成为 Skills Hub 中的默认受信任源——可发现、可浏览、可搜索,并通过相同的管道自动更新。NVIDIA 针对 CUDA-X、AIQ、cuOpt 及其产品栈其他部分的已验证技能,只需一次安装,并带有来自仓库 `skills.sh.json` 侧车的真实分类标签。([#34333](https://github.com/NousResearch/hermes-agent/pull/34333) —— @teknium1)
- **通过 Nous Portal 快速设置——从安装到第一条消息只需几秒钟**——首次设置被精简为两个清晰的路径:快速设置(登录 Nous Portal,获取模型选择器,立即开始聊天)或完整设置(面向高级用户的详细向导)。`hermes portal` 现在是运行完整快速设置 Nous 流程的人类可读别名。首次运行菜单内联解释了区别,让新用户不用猜测。目标:全新用户无需阅读文档就能发送第一条消息。([#35723](https://github.com/NousResearch/hermes-agent/pull/35723)、[#36227](https://github.com/NousResearch/hermes-agent/pull/36227)、[#38449](https://github.com/NousResearch/hermes-agent/pull/38449)、[#38465](https://github.com/NousResearch/hermes-agent/pull/38465) —— @teknium1、@kshitijk4poor)
- **模糊模型选择器,无处不在——输入几个字母,找到你的模型**——模型选择器现在在桌面应用、Web 仪表盘、TUI 和 CLI 中都能进行模糊搜索。输入「v4fl」就会显示 `deepseek-v4-flash`;多端点提供商被归为一行,而不是用重复项混乱列表,每行还带有描述,让你知道自己选的是什么。目录每小时刷新一次(之前是每天),所以新模型在发布当天就能出现。本轮新增:`deepseek-v4-flash`、具有 100 万上下文的 `MiniMax-M3`、`qwen3.7-plus`。([#36928](https://github.com/NousResearch/hermes-agent/pull/36928)、[#35227](https://github.com/NousResearch/hermes-agent/pull/35227)、[#35756](https://github.com/NousResearch/hermes-agent/pull/35756)、[#35659](https://github.com/NousResearch/hermes-agent/pull/35659)、[#36214](https://github.com/NousResearch/hermes-agent/pull/36214) —— @kshitijk4poor、@teknium1)
- **`/undo [N]`——撤销最近 N 轮对话**——说错了话,或者把代理引向错误方向了?`/undo` 会回退 N 轮用户对话,预填你的最后一条消息以便编辑并重新发送,并软删除中间的对话轮次。它在 CLI、TUI 以及消息平台(Telegram、Discord 等)中都能完全一致地工作。关闭了一个长期存在的请求([#21910](https://github.com/NousResearch/hermes-agent/issues/21910))。([#36229](https://github.com/NousResearch/hermes-agent/pull/36229)、[#36699](https://github.com/NousResearch/hermes-agent/pull/36699) —— @teknium1)
- **选择你的默认界面——`cli` 或 `tui`**——你现在可以设置 `hermes chat` 默认是进入经典 CLI 还是 Ink TUI,并可以使用 `--cli` 标志覆盖每次调用。TUI 还获得了一个统一的 `/model` 命令和一个用于在实时会话间切换的 Sessions 覆盖层。使用你真正喜欢的界面。([#37782](https://github.com/NousResearch/hermes-agent/pull/37782)、[#37112](https://github.com/NousResearch/hermes-agent/pull/37112) —— @OutThisLife)
---
## 🖥️ Hermes 桌面应用(全新)
### 安装与生命周期
- macOS 桌面安装 + 应用内自更新;在 macOS 上干净地重建并重启([#35607](https://github.com/NousResearch/hermes-agent/pull/35607)、[#36198](https://github.com/NousResearch/hermes-agent/pull/36198)、[#38296](https://github.com/NousResearch/hermes-agent/pull/38296) —— @OutThisLife)
- macOS 安装程序重命名为「Hermes」并变为启动器([#37516](https://github.com/NousResearch/hermes-agent/pull/37516) —— @OutThisLife)
- 在 macOS/Linux 上以独立的 `desktop` 阶段构建桌面,而不是静默跳过;内容哈希构建戳,`--build-only` / `--force-build` 标志([#36134](https://github.com/NousResearch/hermes-agent/pull/36134) —— @OutThisLife,[#37597](https://github.com/NousResearch/hermes-agent/pull/37597) —— @ethernet8023)
- 启动失败恢复 + 实时 API 密钥验证;可取消安装;从损坏的缓存 Electron 下载中恢复([#35864](https://github.com/NousResearch/hermes-agent/pull/35864)、[#37379](https://github.com/NousResearch/hermes-agent/pull/37379)、[#39032](https://github.com/NousResearch/hermes-agent/pull/39032) —— @OutThisLife、@teknium1)
- Windows:从引导安装中损坏的 Electron 缓存恢复;在应用内更新期间停止与自己的后端竞争([#39465](https://github.com/NousResearch/hermes-agent/pull/39465)、[#39828](https://github.com/NousResearch/hermes-agent/pull/39828) —— @teknium1、@OutThisLife)
- Linux:配置 Electron 沙箱辅助程序;检测 linux arm64 二进制文件;在远程显示器上禁用 GPU 加速以停止闪烁([#37691](https://github.com/NousResearch/hermes-agent/pull/37691)、[#38594](https://github.com/NousResearch/hermes-agent/pull/38594)、[#37932](https://github.com/NousResearch/hermes-agent/pull/37932) —— @ethernet8023、@OutThisLife)
- 要求 Node ≥20.19/22.12 用于桌面构建;零 eslint/typecheck 债务 + prettier 通扫([#38255](https://github.com/NousResearch/hermes-agent/pull/38255)、[#39100](https://github.com/NousResearch/hermes-agent/pull/39100) —— @OutThisLife)
### 远程网关与多配置文件
- 连接到 OAuth 网关的远程网关;远程网关的用户名/密码登录;每配置文件远程网关主机([#37888](https://github.com/NousResearch/hermes-agent/pull/37888)、[#38851](https://github.com/NousResearch/hermes-agent/pull/38851)、[#39778](https://github.com/NousResearch/hermes-agent/pull/39778) —— @benbarclay、@teknium1、@OutThisLife)
- 并发多配置文件会话,跨配置文件 `@session` 链接;在网关重新连接时重新生成 OAuth WS 票据;在 AT 或 RT 上限制 OAuth 远程连接([#39330](https://github.com/NousResearch/hermes-agent/pull/39330)、[#38886](https://github.com/NousResearch/hermes-agent/pull/38886)、[#39464](https://github.com/NousResearch/hermes-agent/pull/39464) —— @OutThisLife、@teknium1、@benbarclay)
- 在受控网关启动失败时提供远程登录选项;在远程网关测试中验证实时 WebSocket([#39402](https://github.com/NousResearch/hermes-agent/pull/39402)、[#39511](https://github.com/NousResearch/hermes-agent/pull/39511) —— @teknium1)
### 聊天 UX 与设置
- 在聊天区域任何位置拖放文件;剪贴板图片粘贴带去重;按 Enter 时附件处理,IME 组合输入处理([#36262](https://github.com/NousResearch/hermes-agent/pull/36262)、[#38306](https://github.com/NousResearch/hermes-agent/pull/38306)、[#38677](https://github.com/NousResearch/hermes-agent/pull/38677) —— @OutThisLife、@teknium1)
- 后台需要输入指示器,界面重新设计,Cmd+K 调色板和 UI 一致性通过;状态栏中的内联模型选择器;状态栏中的 YOLO 切换(TUI 同步)([#38631](https://github.com/NousResearch/hermes-agent/pull/38631)、[#37738](https://github.com/NousResearch/hermes-agent/pull/37738)、[#38517](https://github.com/NousResearch/hermes-agent/pull/38517) —— @OutThisLife)
- 会话列表改造,会话清理/归档,媒体流式传输 + 连接覆盖层;按 ID 搜索会话(SQL 限制)([#37379](https://github.com/NousResearch/hermes-agent/pull/37379)、[#37099](https://github.com/NousResearch/hermes-agent/pull/37099)、[#39062](https://github.com/NousResearch/hermes-agent/pull/39062) —— @OutThisLife、@teknium1)
- 专门的 Providers 设置 + 精炼的 Accounts/API-keys UX;将技能和工具管理合并到一个面板;将模型管理移到设置中([#38551](https://github.com/NousResearch/hermes-agent/pull/38551) —— @austinpickett,[#37310](https://github.com/NousResearch/hermes-agent/pull/37310)、[#37330](https://github.com/NousResearch/hermes-agent/pull/37330) —— @jquesnelle)
- 渲染审批/sudo/秘密提示,以便工具不再静默超时;在调色板中显示技能和快速命令的斜杠命令;在启动器中加入一流的 xAI Grok OAuth 提供者([#38578](https://github.com/NousResearch/hermes-agent/pull/38578)、[#38531](https://github.com/NousResearch/hermes-agent/pull/38531)、[#37697](https://github.com/NousResearch/hermes-agent/pull/37697) —— @teknium1、@OutThisLife)
- 首次运行入门中「稍后选择提供者」跳过选项;入门可以配置本地/自定义端点而无需 API 密钥;自定义缩放快捷键([#39483](https://github.com/NousResearch/hermes-agent/pull/39483)、[#38572](https://github.com/NousResearch/hermes-agent/pull/38572)、[#37894](https://github.com/NousResearch/hermes-agent/pull/37894) —— @teknium1、@ethernet8023)
- macOS 辅助程序麦克风权限;滚动跳跃修复(原生锚定、静止跳跃、上滚回弹);思考块在流式传输中保持打开([#37745](https://github.com/NousResearch/hermes-agent/pull/37745) —— @xxxigm,[#37866](https://github.com/NousResearch/hermes-agent/pull/37866)、[#38221](https://github.com/NousResearch/hermes-agent/pull/38221)、[#38809](https://github.com/NousResearch/hermes-agent/pull/38809) —— @OutThisLife、@teknium1、@stremtec)
- GUI 生活质量批量修复;保留 AhmetArif0 桌面/仪表盘修复;通过 `session.title` RPC 重命名会话,使 `/title` 生效([#37536](https://github.com/NousResearch/hermes-agent/pull/37536) —— @austinpickett,[#39070](https://github.com/NousResearch/hermes-agent/pull/39070)、[#39410](https://github.com/NousResearch/hermes-agent/pull/39410) —— @teknium1、@benbarclay)
- `hermes debug share` / `/debug` / `hermes logs` 现在包含 `desktop.log`([#38203](https://github.com/NousResearch/hermes-agent/pull/38203) —— @teknium1)
- **简体中文翻译**涵盖所有桌面 UI 界面——类型化 i18n 层,在「外观」设置中切换,通过 `display.language` 持久化(英文保持默认)([#38241](https://github.com/NousResearch/hermes-agent/pull/38241) —— @JimLiu)
- 通过一个全局远程仪表盘支持完整的多配置文件;远程配置文件会话是一等公民(恢复、读取、重命名/归档/删除);新聊天在全局远程模式下尊重其配置文件([#39921](https://github.com/NousResearch/hermes-agent/pull/39921)、[#39894](https://github.com/NousResearch/hermes-agent/pull/39894)、[#39993](https://github.com/NousResearch/hermes-agent/pull/39993) —— @OutThisLife)
## 📊 Web 仪表盘
### 管理面板(全新)
- 完整的管理面板——MCP 目录带有启用/禁用开关、配对、Webhook、凭据、内存、网关、钩子创建、系统设置([#36704](https://github.com/NousResearch/hermes-agent/pull/36704)、[#36736](https://github.com/NousResearch/hermes-agent/pull/36736) —— @teknium1)
- Channels 页面——从浏览器设置每个网关消息通道([#37211](https://github.com/NousResearch/hermes-agent/pull/37211) —— @teknium1)
- System 页面:更新前检查流程 + Debug Share([#38205](https://github.com/NousResearch/hermes-agent/pull/38205)、[#38600](https://github.com/NousResearch/hermes-agent/pull/38600) —— @teknium1)
- nous-blue 主题、批量会话、调度选择器;丰富的配置文件仪表盘 + 去重通道环境变量;通过主题可配置的终端背景([#37383](https://github.com/NousResearch/hermes-agent/pull/37383)、[#37872](https://github.com/NousResearch/hermes-agent/pull/37872) —— @austinpickett,[#37156](https://github.com/NousResearch/hermes-agent/pull/37156) —— @teknium1)
- 始终启用嵌入式聊天;移除仪表盘 `--tui` 标志([#38591](https://github.com/NousResearch/hermes-agent/pull/38591) —— @benbarclay)
### 认证
- 可插拔的用户名/密码登录(选项 B);通用自托管 OIDC 提供者 + 多提供者验证修复;`hermes dashboard register` 用于自托管 OAuth 客户端([#38819](https://github.com/NousResearch/hermes-agent/pull/38819) —— @benbarclay,[#38917](https://github.com/NousResearch/hermes-agent/pull/38917)、[#38802](https://github.com/NousResearch/hermes-agent/pull/38802) —— @teknium1)
- 通过刷新令牌轮换仪表盘会话;在遗留网关和 OAuth 网关之间共享 `/api/*` 公共允许列表;从 OAuth `next=` 往返中移除 `/api/*` 路径([#37247](https://github.com/NousResearch/hermes-agent/pull/37247)、[#34254](https://github.com/NousResearch/hermes-agent/pull/34254)、[#36244](https://github.com/NousResearch/hermes-agent/pull/36244) —— @benbarclay)
- 聊天标签页在受限(OAuth)模式下工作;在 OAuth 限制绑定上信任经过票据认证的非 Web WS 来源;认证服务器生成的 PTY 子 WS;通过 SDK 辅助程序批准插件 WS/上传认证([#34793](https://github.com/NousResearch/hermes-agent/pull/34793)、[#37870](https://github.com/NousResearch/hermes-agent/pull/37870)、[#37972](https://github.com/NousResearch/hermes-agent/pull/37972)、[#38549](https://github.com/NousResearch/hermes-agent/pull/38549) —— @teknium1、@benbarclay、@kshitijk4poor)
- 允许远程绑定上的桌面 WebSocket 来源([#37747](https://github.com/NousResearch/hermes-agent/pull/37747) —— @teknium1)
## 🏗️ 核心代理与架构
### 提供者与模型支持
- 新模型:`deepseek-v4-flash`(+ 修剪变体,按制造者分组的精选列表)、具有 100 万上下文的 `MiniMax-M3`(原生 minimax 提供者)、`qwen3.7-plus`(Nous + OpenRouter)、`gemini-3.5-flash`(加入 Gemini OAuth + API 密钥选择器)([#35659](https://github.com/NousResearch/hermes-agent/pull/35659)、[#36214](https://github.com/NousResearch/hermes-agent/pull/36214)、[#39409](https://github.com/NousResearch/hermes-agent/pull/39409)、[#37046](https://github.com/NousResearch/hermes-agent/pull/37046) —— @teknium1)
- 模型选择器:在 WebUI/TUI/CLI 中模糊搜索;将多端点提供者归为一行;刷新提供者描述 + 描述分组行;每小时刷新目录;停止将 OpenAI 选择路由到 OpenRouter([#36928](https://github.com/NousResearch/hermes-agent/pull/36928) —— @kshitijk4poor,[#35227](https://github.com/NousResearch/hermes-agent/pull/35227)、[#35773](https://github.com/NousResearch/hermes-agent/pull/35773)、[#35756](https://github.com/NousResearch/hermes-agent/pull/35756)、[#37175](https://github.com/NousResearch/hermes-agent/pull/37175))
- 始终显示 Nous Tool Gateway 后端,选择时登录;展示 Nous 免费工具池(授权 + 设置提示);通过管理的 Nous 网关路由 FAL 视频生成([#35792](https://github.com/NousResearch/hermes-agent/pull/35792) —— @teknium1,[#36153](https://github.com/NousResearch/hermes-agent/pull/36153)、[#33259](https://github.com/NousResearch/hermes-agent/pull/33259) —— @alt-glitch)
- 将会话中的模型切换持久化到数据库;在中断后恢复轮次中恢复模型([#35256](https://github.com/NousResearch/hermes-agent/pull/35256)、[#35381](https://github.com/NousResearch/hermes-agent/pull/35381) —— @teknium1)
- 凭据池:为终端 OAuth 失败添加 `STATUS_DEAD`;隔离自定义提供者选择器凭据([#34412](https://github.com/NousResearch/hermes-agent/pull/34412)、[#34810](https://github.com/NousResearch/hermes-agent/pull/34810) —— @teknium1)
- 禁用 Nous Portal 遗留会话密钥推断回退——仅限 JWT([#34508](https://github.com/NousResearch/hermes-agent/pull/34508) —— @kshitijk4poor)
### 代理循环、提示与工具
- `/undo [N]`——回退 N 轮用户对话,带预填和软删除(CLI/TUI + 消息平台同步)([#36229](https://github.com/NousResearch/hermes-agent/pull/36229)、[#36699](https://github.com/NousResearch/hermes-agent/pull/36699) —— @teknium1)
- 渐进式工具披露用于 MCP 和插件工具(限定范围);用于系统提示的嵌入器环境提示钩子;通用任务完成指导 + 本地 Python 工具链探测([#34493](https://github.com/NousResearch/hermes-agent/pull/34493)、[#34574](https://github.com/NousResearch/hermes-agent/pull/34574)、[#34340](https://github.com/NousResearch/hermes-agent/pull/34340) —— @teknium1)
- 取消委派 `max_spawn_depth` 上限(下限为 1,无上限);拓宽 Hermes 自我知识指针到文档 + 技能;`hermes prompt-size` 诊断([#39772](https://github.com/NousResearch/hermes-agent/pull/39772)、[#38538](https://github.com/NousResearch/hermes-agent/pull/38538)、[#35276](https://github.com/NousResearch/hermes-agent/pull/35276) —— @teknium1)
- `perf(read_file)`:紧凑行号边距——每次读取大约减少 14% 的令牌(现在是唯一格式)([#35368](https://github.com/NousResearch/hermes-agent/pull/35368)、[#35532](https://github.com/NousResearch/hermes-agent/pull/35532) —— @teknium1)
- 从 `TERMINAL_CWD` 通过一个读取器解析代理 cwd;对齐预填消息键处理;恢复时在会话的原始工作目录中重新启动([#35028](https://github.com/NousResearch/hermes-agent/pull/35028) —— @banditburai,[#38760](https://github.com/NousResearch/hermes-agent/pull/38760) —— @helix4u,[#38562](https://github.com/NousResearch/hermes-agent/pull/38562) —— @teknium1)
- 防止因并发压缩导致的会话 ID 分叉;观察者遥测钩子 + NeMo-Relay 插件(门控工具发送)([#34351](https://github.com/NousResearch/hermes-agent/pull/34351)、[#38232](https://github.com/NousResearch/hermes-agent/pull/38232) —— @teknium1)
### 会话、状态与记忆
- `perf(state)`:在 VACUUM 时合并 FTS5 段 + `hermes sessions optimize`;在父会话重新打开后保持 `/branch` 会话可见;在缺少 FTS5 运行时幸存([#34596](https://github.com/NousResearch/hermes-agent/pull/34596)、[#39214](https://github.com/NousResearch/hermes-agent/pull/39214) —— @teknium1、@kshitijk4poor,[#35452](https://github.com/NousResearch/hermes-agent/pull/35452) —— @helix4u)
- Honcho:使启动时容错打开;加固自托管设置路径([#24847](https://github.com/NousResearch/hermes-agent/pull/24847) —— @stephenschoettler,[#35170](https://github.com/NousResearch/hermes-agent/pull/35170) —— @kshitijk4poor)
- Supermemory:会话级摄取 + kebab 别名([#38756](https://github.com/NousResearch/hermes-agent/pull/38756) —— @alt-glitch)
## 🧩 多代理(看板)与技能
### 看板
- `goal_mode` 卡片在 `/goal` 循环中运行工作节点;任务上的文件附件;将任务体中引用的图片附加到工作节点视觉([#35710](https://github.com/NousResearch/hermes-agent/pull/35710)、[#35395](https://github.com/NousResearch/hermes-agent/pull/35395)、[#34210](https://github.com/NousResearch/hermes-agent/pull/34210) —— @teknium1)
- `default_assignee` 回退 + 每配置文件并发上限;`POST /runs/{run_id}/terminate` 端点;通过 `dispatch_in_gateway` 门控通知器监视器([#34244](https://github.com/NousResearch/hermes-agent/pull/34244)、[#34449](https://github.com/NousResearch/hermes-agent/pull/34449)、[#37174](https://github.com/NousResearch/hermes-agent/pull/37174) —— @teknium1)
- CLI 调度配置传递 + 人性化技能交换([#34337](https://github.com/NousResearch/hermes-agent/pull/34337) —— @teknium1)
### 技能
- **更精简的默认技能集**([#39028](https://github.com/NousResearch/hermes-agent/pull/39028) —— @teknium1):
- 移除(冗余/已死):`spotify`(→ Spotify 插件的 7 个原生工具)、`linear`(→ `hermes mcp install linear`)、`kanban-codex-lane`、`debugging-hermes-tui-commands`、过时的 `domain` 孤儿、空分类标记(`diagramming`、`gifs`、`inference-sh`、`mlops/training`、`mlops/vector-databases`)
- 从捆绑变为可选:`baoyu-article-illustrator`、`baoyu-comic`、`creative-ideation`、`pixel-art`、`dspy`、`subagent-driven-development`、`minecraft-modpack-server`、`pokemon-player`、`hermes-s6-container-supervision`
- 合并:`webhook-subscriptions` + `native-mcp` 被折叠到 `hermes-agent` 技能中作为按需引用;`writing-plans` 合并到 `plan`(v2.0.0)
- 新的 `environments:` 前文相关性门控(`kanban` / `docker` / `s6`)——特定上下文的技能将不再出现在索引中供不使用它们的用户使用,但在明确请求时仍然加载
- 策展人现在可以修剪未使用的**内置**技能(不仅限于代理创建的),每个技能的使用情况都会被跟踪([#36701](https://github.com/NousResearch/hermes-agent/pull/36701) —— @teknium1)
- 空白技能支持——`install --no-skills` + 默认配置文件的 opt-out/opt-in([#36228](https://github.com/NousResearch/hermes-agent/pull/36228) —— @teknium1)
- **NVIDIA/skills 受信任源**——`NVIDIA/skills` 现在是 Skills Hub 中的默认受信任源,与 OpenAI/Anthropic/HuggingFace 并列;`skills.sh.json` 侧车为源提供真实的分类标签([#34333](https://github.com/NousResearch/hermes-agent/pull/34333) —— @teknium1)
- Skills Hub:修复浏览上限,添加来源链接 + 复制按钮 + 分类清理([#37143](https://github.com/NousResearch/hermes-agent/pull/37143) —— @teknium1)
- 新的可选技能:`grok`(xAI Grok Build CLI)、`antigravity-cli` 操作符(在 autonomous-ai-agents 下)([#34582](https://github.com/NousResearch/hermes-agent/pull/34582)、[#34583](https://github.com/NousResearch/hermes-agent/pull/34583)、[#34604](https://github.com/NousResearch/hermes-agent/pull/34604) —— @teknium1)
## 📱 消息平台(网关)
- 结构化流事件协议 + Telegram 草稿格式同步;按平台流式传输默认值(Telegram 开启,Discord 关闭)+ 仪表盘开关;在 `DEFAULT_CONFIG` 中显示网关流式传输块([#37250](https://github.com/NousResearch/hermes-agent/pull/37250)、[#37303](https://github.com/NousResearch/hermes-agent/pull/37303)、[#37285](https://github.com/NousResearch/hermes-agent/pull/37285) —— @teknium1)
- Discord 语音频道混音器——环境空闲背景音 + 与 TTS 重叠的口头确认;在单独切换时解释 `/voice` 用法([#39659](https://github.com/NousResearch/hermes-agent/pull/39659)、[#39766](https://github.com/NousResearch/hermes-agent/pull/39766) —— @teknium1)
- 处理飞书会议邀请;bluebubbles 群组提及门控;matrix bang-命令别名;matrix 关闭失败时的审批反应认证([#39040](https://github.com/NousResearch/hermes-agent/pull/39040)、[#37091](https://github.com/NousResearch/hermes-agent/pull/37091)、[#38175](https://github.com/NousResearch/hermes-agent/pull/38175) —— @teknium1、@alt-glitch,[#34567](https://github.com/NousResearch/hermes-agent/pull/34567))
- 干净的服务重启流程;在重新连接失败时关闭 ResponseStore + 处置无主适配器;微信 `asyncio.wait_for` 超时([#36188](https://github.com/NousResearch/hermes-agent/pull/36188) —— @helix4u,[#37679](https://github.com/NousResearch/hermes-agent/pull/37679) —— @Fearvox,[#35117](https://github.com/NousResearch/hermes-agent/pull/35117) —— @banditburai)
## 🖥️ CLI、TUI 与设置
- 可配置的默认界面(cli 或 tui)+ `--cli` 标志;TUI 单个 `/model` 命令 + 统一的 Sessions 覆盖层;在委派开始时引导用户至 `/agents` 仪表盘([#37782](https://github.com/NousResearch/hermes-agent/pull/37782)、[#37112](https://github.com/NousResearch/hermes-agent/pull/37112) —— @OutThisLife,[#34704](https://github.com/NousResearch/hermes-agent/pull/34704) —— @kshitijk4poor)
- 精简设置——通过 Nous Portal 快速设置 + 完整设置默认值;内联解释快速与完整设置;`hermes portal` 人类可读的 Portal 入门别名 + 完整的快速设置 Nous 流程([#35723](https://github.com/NousResearch/hermes-agent/pull/35723)、[#36227](https://github.com/NousResearch/hermes-agent/pull/36227)、[#38449](https://github.com/NousResearch/hermes-agent/pull/38449)、[#38465](https://github.com/NousResearch/hermes-agent/pull/38465) —— @teknium1、@kshitijk4poor)
- 在 ps/top/htop 中将进程标题设置为 `hermes`;警告不受支持的 pip 安装 + 修复过时的更新检查缓存([#35143](https://github.com/NousResearch/hermes-agent/pull/35143)、[#34846](https://github.com/NousResearch/hermes-agent/pull/34846) —— @teknium1)
- TUI 性能:停止慢/死的 MCP 服务器冻结启动;停止急切的 MCP 发现阻塞具备代理能力的启动;停止在跟踪行中持久化完整工具输出(静默 OOM)([#35273](https://github.com/NousResearch/hermes-agent/pull/35273)、[#35397](https://github.com/NousResearch/hermes-agent/pull/35397)、[#38224](https://github.com/NousResearch/hermes-agent/pull/38224) —— @teknium1)
- TUI 修复:在网关意外死亡时自动恢复会话;重新组装分割的 SGR 鼠标序列;保留 PowerShell 剪贴板中的 UTF-8;退出时重置终端输入模式;`/save` 快照保存在 Hermes 主目录下([#35893](https://github.com/NousResearch/hermes-agent/pull/35893)、[#38564](https://github.com/NousResearch/hermes-agent/pull/38564) —— @OutThisLife,[#35222](https://github.com/NousResearch/hermes-agent/pull/35222) —— @teknium1,[#36864](https://github.com/NousResearch/hermes-agent/pull/36864) —— @maxmilian,[#38251](https://github.com/NousResearch/hermes-agent/pull/38251) —— @austinpickett)
- 设置模型/提供者选择器从 `simple_term_menu` 迁移到 curses(ESC + 幻影行修复);默认浏览器/TTS 选择器指向免费本地后端,而非付费 Nous([#35806](https://github.com/NousResearch/hermes-agent/pull/35806)、[#37800](https://github.com/NousResearch/hermes-agent/pull/37800) —— @teknium1)
## 🔧 工具系统与安装程序
- `single managed-uv path`,删除 fts5 安装程序升级;安装程序提交锁定可选(默认跟随分支);浅克隆([#37660](https://github.com/NousResearch/hermes-agent/pull/37660) —— @ethernet8023,[#37123](https://github.com/NousResearch/hermes-agent/pull/37123) —— @jquesnelle,[#39423](https://github.com/NousResearch/hermes-agent/pull/39423) —— @ethernet8023)
- `ensure_uv()` 在更新边界存活(首次运行不崩溃);加固 venv 重建 + 安装后验证核心依赖;在执行破坏性清理前要求 managed 标记;默认在非交互式更新中 stash/restore([#39780](https://github.com/NousResearch/hermes-agent/pull/39780) —— @OutThisLife,[#38887](https://github.com/NousResearch/hermes-agent/pull/38887)、[#39568](https://github.com/NousResearch/hermes-agent/pull/39568)、[#39645](https://github.com/NousResearch/hermes-agent/pull/39645) —— @teknium1、@helix4u)
- MCP:当未获得令牌时停止报告错误的 OAuth 成功;视觉功能尊重 `model.supports_vision` 在 `vision_analyze` + `browser_vision` 中;MiniMax t2a_v2 TTS `raise_for_status`([#34807](https://github.com/NousResearch/hermes-agent/pull/34807)、[#34562](https://github.com/NousResearch/hermes-agent/pull/34562)、[#39057](https://github.com/NousResearch/hermes-agent/pull/39057) —— @teknium1)
- yuanbao:按 resourceId 缓存解析的媒体资源([#34474](https://github.com/NousResearch/hermes-agent/pull/34474) —— @teknium1)
## 🐳 Docker 与部署
- 容器复用 + 有限同步清理 + 孤儿回收器;自动加入 Docker socket 组用于 docker-in-docker 后端;启动非 root 容器(当已经无特权时跳过 s6-setuidgid 降权)([#33645](https://github.com/NousResearch/hermes-agent/pull/33645)、[#34407](https://github.com/NousResearch/hermes-agent/pull/34407) —— @benbarclay,[#34837](https://github.com/NousResearch/hermes-agent/pull/34837) —— @IAvecilla)
- 当卷所有权与重新映射的 UID 匹配时跳过不必要的启动 chown;在首次启动时从 `HERMES_GATEWAY_BOOTSTRAP_STATE` 种子化 `gateway_state.json`;用 hermes-agent 标签标记容器以供识别([#35027](https://github.com/NousResearch/hermes-agent/pull/35027) —— @Foldblade,[#37896](https://github.com/NousResearch/hermes-agent/pull/37896) —— @benbarclay)
- 通过 `HERMES_TUI_DIR` 将 TUI 启动器指向预构建包;合并 node/nix 工作区锁定文件 + 更新所有消费者([#37923](https://github.com/NousResearch/hermes-agent/pull/37923)、[#36171](https://github.com/NousResearch/hermes-agent/pull/36171) —— @benbarclay、@ethernet8023)
## 🔒 安全与可靠性
- **CVE-2026-48710(Starlette BadHost)**——锁定已修补的 Starlette ≥1.0.1([#35118](https://github.com/NousResearch/hermes-agent/pull/35118) —— @teknium1)
- 在异步路径中,在事件循环外运行 URL SSRF 检查;从子进程环境变量中剥离 Bedrock 推断 Bearer 令牌;将 `bws_cache.json` 添加到文件安全读取防护中;在变异验证器脚注中中和文件路径([#39046](https://github.com/NousResearch/hermes-agent/pull/39046)、[#34498](https://github.com/NousResearch/hermes-agent/pull/34498)、[#34421](https://github.com/NousResearch/hermes-agent/pull/34421)、[#35684](https://github.com/NousResearch/hermes-agent/pull/35684) —— @teknium1)
- 在 `execute_code` 中恢复审批/sudo 上下文 + 守卫入口点;将 docker restart/stop/kill 添加到 `DANGEROUS_PATTERNS`;在审查过的技能内容中净化不可见 unicode;在就地 xAI 突变前深拷贝工具([#34497](https://github.com/NousResearch/hermes-agent/pull/34497)、[#33438](https://github.com/NousResearch/hermes-agent/pull/33438) —— @teknium1、@Sarbai,[#37245](https://github.com/NousResearch/hermes-agent/pull/37245)、[#34416](https://github.com/NousResearch/hermes-agent/pull/34416))
- 对每个任务的 `.hermes` 镜像的写入进行沙箱镜像软防护;Honcho 启动时容错打开([#32213](https://github.com/NousResearch/hermes-agent/pull/32213) —— @briandevans,[#24847](https://github.com/NousResearch/hermes-agent/pull/24847) —— @stephenschoettler)
## 🐛 值得注意的错误修复
- **此轮关闭 399 个议题**(2 个 P0,62 个 P1,16 个安全标记,262 个 bug 标签)。
- 桌面:防止正在进行的对话在刷新时消失;当一轮对话已排队时,Stop 按钮实际中断;阻止后台会话消息渗入活动的对话记录;斜杠/@ 补全菜单可导航且 Esc 可关闭;IME 回车不再分割消息([#37908](https://github.com/NousResearch/hermes-agent/pull/37908) —— @OutThisLife,[#37948](https://github.com/NousResearch/hermes-agent/pull/37948)、[#37975](https://github.com/NousResearch/hermes-agent/pull/37975)、[#37937](https://github.com/NousResearch/hermes-agent/pull/37937) —— @kshitijk4poor,[#38333](https://github.com/NousResearch/hermes-agent/pull/38333) —— @stremtec)
- 更新:防止 stash/restore 在受管理克隆中覆盖桌面源码;不在重建中途令桌面重建/技能同步因 venv 而失败;将启动器虚拟环境导出到 uv([#38542](https://github.com/NousResearch/hermes-agent/pull/38542)、[#38885](https://github.com/NousResearch/hermes-agent/pull/38885)、[#35224](https://github.com/NousResearch/hermes-agent/pull/35224) —— @teknium1)
- 语音:在 PortAudio 回退中尊重 `PIPEWIRE_REMOTE`;当声音服务器可达时允许通过 SSH 使用 `/voice`;恢复 mistralai(2.4.8 干净,禁令解除)([#33473](https://github.com/NousResearch/hermes-agent/pull/33473) —— @Dusk1e,[#35719](https://github.com/NousResearch/hermes-agent/pull/35719)、[#34841](https://github.com/NousResearch/hermes-agent/pull/34841) —— @teknium1)
## 📚 文档
- 新的桌面应用指南 + 远程后端部分(会话令牌、`--tui` 要求、用户名/密码连接、仪表盘/网关先决条件)([#37457](https://github.com/NousResearch/hermes-agent/pull/37457)、[#38144](https://github.com/NousResearch/hermes-agent/pull/38144)、[#38180](https://github.com/NousResearch/hermes-agent/pull/38180)、[#38534](https://github.com/NousResearch/hermes-agent/pull/38534)、[#39128](https://github.com/NousResearch/hermes-agent/pull/39128) —— @teknium1)
- 仪表盘认证提供者适用性 + 在仪表盘/Docker/桌面上的注册;Docker 的网络出口隔离指南([#39633](https://github.com/NousResearch/hermes-agent/pull/39633) —— @benbarclay,[#26385](https://github.com/NousResearch/hermes-agent/pull/26385) —— @Manzela)
---

## 👥 贡献者
衷心感谢在此版本中贡献了工作的 **170 位社区贡献者**(含合著者)。
### 核心
- @teknium1
### 顶级社区贡献者(按合并 PR 数量)
- **@OutThisLife**(52)——从头到尾构建了桌面应用:安装、自更新、远程网关连接、多配置文件会话、聊天 UX、状态栏模型选择器
- **@benbarclay**(44)——Docker 加固、仪表盘认证(OIDC、用户名/密码、刷新令牌轮换)、桌面 OAuth 远程连接
- **@kshitijk4poor**(29)——模糊模型选择器、设置/Portal 入门、桌面补全菜单和 Stop 按钮修复、honcho 加固
- **@ethernet8023**(18)——桌面构建管道(内容哈希戳、构建标志)、Linux/arm64 桌面支持、managed-uv 合并
- **@austinpickett**(8)——仪表盘 nous-blue 主题 + 批量会话、桌面 Providers 设置、GUI 生活质量分类
- **@alt-glitch**(7)——Nous 工具池权限展示、FAL 视频生成管理网关、supermemory 会话摄取、matrix 别名
- **@helix4u**(6)——网关服务重启流程、更新破坏性清理防护、配置预填对齐
- **@jquesnelle**(4)——安装程序提交锁定可选、桌面技能/工具 + 模型管理合并
- **@JimLiu**——完整的简体中文桌面翻译 + 类型化 i18n 层
### 所有贡献者
@0xharryriddle, @a1245582339, @adybag14-cyber, @AhmetArif0, @alaamohanad169-ship-it, @alelpoan, @alt-glitch,
@Aman113114-IITD, @amathxbt, @aminvakil, @annguyenNous, @aqilaziz, @Archerouyang, @ashishpatel26, @asimons81,
@austinpickett, @banditburai, @baofuen, @Bartok9, @bbednarski9, @beardthelion, @bedirhancode, @benbarclay,
@benfrank241, @blackpilledsoftware-prog, @bluefishs, @brian-doherty, @briancl2, @briandevans, @BROCCOLO1D,
@caojiguang, @CharZhou, @counterposition, @coygeek, @CryptoByz, @davetist, @davidgut1982, @dchenk, @dirtyren,
@donovan-yohan, @dparikh79, @dskwe, @Dusk1e, @dvir-pashut, @EloquentBrush0x, @emozilla, @ErnestHysa, @Erosika,
@ethernet8023, @f3rs3n, @faisfamilytravel, @Fearvox, @ferminquant, @fesalfayed, @firefly, @flooryyyy,
@Foldblade, @Frowtek, @gbarany, @Glucksberg, @GodsBoy, @haran2001, @harjothkhara, @HashClawAI, @hayka-pacha,
@helix4u, @HeLLGURD, @Hinotoi-agent, @hllqkb, @IAvecilla, @inchargeautomation-lab, @Interstellar-code, @isair,
@ITheEqualizer, @jeffrobodie-glitch, @JezzaHehn, @JimLiu, @Julientalbot, @julio-cloudvisor, @karmeleon,
@Kenmege, @Kewe63, @Kolektori, @konsisumer, @kshitijk4poor, @kurobaryo, @kweiner, @kyssta-exe, @Kyzcreig,
@LengR, @leonardsellem, @LeonSGP43, @libre-7, @liuboacean, @liuhao1024, @loongzhao, @luyao618, @MaheshtheDev,
@Manzela, @mathijsvandenhurk, @MattMaximo, @maxcz79, @maxmilian, @Moikapy, @MustafaKara7, @nateGeorge,
@nepenth, @nielskaspers, @ninjmnky, @octavioturra, @OCWC22, @ohMyJason, @ousiaresearch, @outsourc-e,
@OutThisLife, @Pluviobyte, @polnikale, @pxdsgnco, @Que0x, @r266-tech, @redpiggy-cyber, @rewbs, @rexdotsh,
@rob-maron, @SaguaroDev, @sahibzada-allahyar, @Sarbai, @sarvesh1327, @scubamount, @SeaXen, @seppegadeyne,
@shannonsands, @SHL0MS, @SimoKiihamaki, @SiTaggart, @solaitken, @sprmn24, @stephenschoettler, @steveonjava,
@stremtec, @Subway2023, @sweetcornna, @Sylw3ster, @ThyFriendlyFox, @tillfalko, @tmchow, @TonyPepeBear,
@Tranquil-Flow, @truenorth-lj, @tuancookiez-hub, @Twanislas, @tymrtn, @uzunkuyruk, @ViewWay, @VinciZhu,
@vinoth12940, @vladkvlchk, @vynxevainglory-ai, @WadydX, @wenchengxucool, @whyhkzk, @worlldz, @Wysie, @x1am1,
@xxxigm, @ygd58, @youngstar-eth, @zapabob, @zhaoleibd, @Zyrixtrex
---
**完整更新日志**:[v2026.5.29.2...v2026.6.5](https://github.com/NousResearch/hermes-agent/compare/v2026.5.29.2...v2026.6.5)
# Hermes Agent v0.16.0 (v2026.6.5)
**Release Date:** June 5, 2026
**Since v0.15.2:** 874 commits · 542 merged PRs · 1,962 files changed · 205,216 insertions · 46,217 deletions · 399 issues closed (2 P0, 62 P1, 16 security-tagged) · 170 community contributors (including co-authors)
> **The Surface Release.** Hermes meets you wherever you work. A brand-new native desktop app — built across 100 PRs and 159 commits in a single week — gives you Hermes as a real macOS/Linux/Windows application: one-click install, in-app self-update, drag-and-drop files into chat, an inline model picker in the status bar, concurrent multi-profile sessions, a full Simplified Chinese translation, and the ability to connect to a remote Hermes gateway over OAuth or username/password. Alongside it, the web dashboard grew a full browser-based administration panel (MCP catalog, messaging channels, credentials, webhooks, memory, pluggable OIDC / username-password login), and first-time setup got a "Quick Setup via Nous Portal" path that gets you from install to first message in seconds. The default skill set was trimmed to what you actually need, NVIDIA/skills joined the trusted Skills Hub taps, the model picker is now fuzzy-searchable everywhere (desktop, web, TUI, CLI), and `/undo` finally lets you take back the last N turns. 2 P0 and 62 P1 closures ride along, plus a security round (CVE-2026-48710 Starlette pin, SSRF off-loop hardening, subprocess credential stripping).
---
## ✨ Highlights
- **Hermes Desktop — a real native app, not a terminal wrapper** — This is the headline. There's now a `apps/desktop/` Electron application that installs like any other desktop app on macOS, Linux, and Windows, updates itself in place from inside the app, and gives you a polished GUI for everything Hermes does. You get a proper chat window with streaming, a session list you can archive and search, drag-and-drop files anywhere in the chat area, clipboard image paste, a Cmd+K command palette, and a model picker right in the status bar. If you've been telling friends "it's a CLI agent" and watching their eyes glaze over — now you can just send them an installer. None of this existed a week ago. ([#20059](https://github.com/NousResearch/hermes-agent/pull/20059), [#35607](https://github.com/NousResearch/hermes-agent/pull/35607), [#37099](https://github.com/NousResearch/hermes-agent/pull/37099), [#37379](https://github.com/NousResearch/hermes-agent/pull/37379), [#38631](https://github.com/NousResearch/hermes-agent/pull/38631) — @OutThisLife, @jquesnelle, @ethernet8023, @austinpickett, @benbarclay)
- **Run the desktop app against a remote Hermes — sign in with OAuth or username/password** — The desktop app doesn't have to run Hermes locally. Point it at a remote Hermes gateway (your homelab, a hosted box, a teammate's server) and it connects over a secure WebSocket, authenticating with OAuth or a username/password login — no fiddling with `--insecure` flags or hand-copied session tokens. Each profile can target its own remote host, and you can run concurrent sessions across multiple profiles in one window with cross-profile `@session` links. The practical version: your laptop runs a thin GUI, the heavy agent runs wherever your API keys and compute live. ([#37888](https://github.com/NousResearch/hermes-agent/pull/37888), [#38851](https://github.com/NousResearch/hermes-agent/pull/38851), [#39330](https://github.com/NousResearch/hermes-agent/pull/39330), [#39778](https://github.com/NousResearch/hermes-agent/pull/39778) — @benbarclay, @OutThisLife, @teknium1)
- **The web dashboard is now a full admin panel — configure everything from the browser** — The dashboard grew from "view your sessions" into a complete administration surface. There's a Channels page that sets up every gateway messaging platform (Telegram, Discord, Slack, etc.) from the browser, an admin panel for the MCP catalog with enable/disable toggles, credential management, webhook and hook creation, memory configuration, gateway controls, and a System page with check-before-update and one-click Debug Share. You no longer have to SSH in and edit `config.yaml` to wire up a new messaging channel or MCP server — it's all point-and-click now. ([#36704](https://github.com/NousResearch/hermes-agent/pull/36704), [#36736](https://github.com/NousResearch/hermes-agent/pull/36736), [#37211](https://github.com/NousResearch/hermes-agent/pull/37211), [#38205](https://github.com/NousResearch/hermes-agent/pull/38205), [#38600](https://github.com/NousResearch/hermes-agent/pull/38600) — @teknium1)
- **Hermes Desktop speaks Simplified Chinese — full 简体中文 in the chat GUI** — The desktop app now ships a complete Simplified Chinese (简体中文) translation across every UI surface — the chat window itself, sidebar, settings, command center, cron, messaging, profiles, skills, agents, the lot. English stays the default; switch language in Appearance settings and the choice persists to your config (`display.language`). It's built on a proper typed i18n layer, so adding more languages from here is straightforward. ([#38241](https://github.com/NousResearch/hermes-agent/pull/38241) — @JimLiu)
- **Leaner default skill set — Hermes ships only what you actually need** — The bundled skill set got a deliberate trim. Skills that were redundant or dead are gone (`spotify` — superseded by the native Spotify plugin's 7 tools; `linear` — superseded by `hermes mcp install linear`; `kanban-codex-lane`, `debugging-hermes-tui-commands`, a stale `domain` orphan, and several empty category markers). Heavier or niche skills moved from bundled to optional (the Baoyu creative set, `dspy`, `subagent-driven-development`, `minecraft-modpack-server`, `pokemon-player`, `hermes-s6-container-supervision`) — still one `hermes skills install` away, just not loaded by default. And a new `environments:` relevance gate keeps context-specific skills (kanban, docker/s6) out of the skills index for users who'll never use them, while still loading them on explicit request. The result: a smaller, sharper default skill list, less noise in the picker, and a lighter prompt. The curator can now prune unused **built-in** skills too (not just agent-created ones), with usage tracked for every skill. ([#39028](https://github.com/NousResearch/hermes-agent/pull/39028), [#36701](https://github.com/NousResearch/hermes-agent/pull/36701), [#36228](https://github.com/NousResearch/hermes-agent/pull/36228) — @teknium1)
- **NVIDIA/skills is now a built-in trusted skills tap** — `NVIDIA/skills` joins OpenAI, Anthropic, and HuggingFace as a default trusted tap in the Skills Hub — discoverable, browsable, searchable, and auto-updating through the same pipeline. NVIDIA's verified skills for CUDA-X, AIQ, cuOpt and the rest of their product stack are one install away, with real category labels from the repo's `skills.sh.json` sidecar. ([#34333](https://github.com/NousResearch/hermes-agent/pull/34333) — @teknium1)
- **Quick Setup via Nous Portal — from install to first message in seconds** — First-time setup was thinned down to two clear paths: Quick Setup (sign in with Nous Portal, get a model picker, start chatting immediately) or Full Setup (the detailed wizard for power users). `hermes portal` is now the human-readable alias that runs the full quick-setup Nous flow. The first-run menu explains the difference inline so newcomers aren't guessing. The goal: a brand-new user shouldn't need to read docs to send their first message. ([#35723](https://github.com/NousResearch/hermes-agent/pull/35723), [#36227](https://github.com/NousResearch/hermes-agent/pull/36227), [#38449](https://github.com/NousResearch/hermes-agent/pull/38449), [#38465](https://github.com/NousResearch/hermes-agent/pull/38465) — @teknium1, @kshitijk4poor)
- **Fuzzy model picker, everywhere — type a few letters, find your model** — The model picker now does fuzzy search across the desktop app, web dashboard, TUI, and CLI. Type "v4fl" and `deepseek-v4-flash` surfaces; multi-endpoint providers are grouped under one row instead of cluttering the list with duplicates, and each row carries a description so you know what you're picking. The catalog refreshes hourly instead of daily, so new models show up the same day they launch. New this window: `deepseek-v4-flash`, `MiniMax-M3` with 1M context, `qwen3.7-plus`. ([#36928](https://github.com/NousResearch/hermes-agent/pull/36928), [#35227](https://github.com/NousResearch/hermes-agent/pull/35227), [#35756](https://github.com/NousResearch/hermes-agent/pull/35756), [#35659](https://github.com/NousResearch/hermes-agent/pull/35659), [#36214](https://github.com/NousResearch/hermes-agent/pull/36214) — @kshitijk4poor, @teknium1)
- **`/undo [N]` — take back the last N turns** — Said the wrong thing, or sent the agent down a bad path? `/undo` backs up N user turns, prefills your last message so you can edit and resend, and soft-deletes the turns in between. It works in the CLI, the TUI, and across messaging platforms (Telegram, Discord, etc.) with full parity. Closes a long-standing request ([#21910](https://github.com/NousResearch/hermes-agent/issues/21910)). ([#36229](https://github.com/NousResearch/hermes-agent/pull/36229), [#36699](https://github.com/NousResearch/hermes-agent/pull/36699) — @teknium1)
- **Choose your default interface — `cli` or `tui`** — You can now set whether `hermes chat` drops you into the classic CLI or the Ink TUI by default, with a `--cli` flag to override per-invocation. The TUI also got a single unified `/model` command and a Sessions overlay for switching between live sessions. Use the interface you actually like. ([#37782](https://github.com/NousResearch/hermes-agent/pull/37782), [#37112](https://github.com/NousResearch/hermes-agent/pull/37112) — @OutThisLife)
---
## 🖥️ Hermes Desktop App (NEW)
### Install & lifecycle
- macOS desktop install + in-app self-update; rebuild-and-relaunch cleanly on macOS ([#35607](https://github.com/NousResearch/hermes-agent/pull/35607), [#36198](https://github.com/NousResearch/hermes-agent/pull/36198), [#38296](https://github.com/NousResearch/hermes-agent/pull/38296) — @OutThisLife)
- macOS installer renamed to "Hermes" and turned into a launcher ([#37516](https://github.com/NousResearch/hermes-agent/pull/37516) — @OutThisLife)
- Build desktop in its own `desktop` stage on macOS/Linux instead of silently skipping; content-hash build stamp, `--build-only` / `--force-build` flags ([#36134](https://github.com/NousResearch/hermes-agent/pull/36134) — @OutThisLife, [#37597](https://github.com/NousResearch/hermes-agent/pull/37597) — @ethernet8023)
- Boot-failure recovery + live API-key validation; cancellable install; recover from corrupt cached Electron download ([#35864](https://github.com/NousResearch/hermes-agent/pull/35864), [#37379](https://github.com/NousResearch/hermes-agent/pull/37379), [#39032](https://github.com/NousResearch/hermes-agent/pull/39032) — @OutThisLife, @teknium1)
- Windows: recover from corrupt Electron cache in bootstrap install; stop racing our own backend during in-app update ([#39465](https://github.com/NousResearch/hermes-agent/pull/39465), [#39828](https://github.com/NousResearch/hermes-agent/pull/39828) — @teknium1, @OutThisLife)
- Linux: configure Electron sandbox helper; detect linux arm64 binary; disable GPU acceleration on remote displays to stop flicker ([#37691](https://github.com/NousResearch/hermes-agent/pull/37691), [#38594](https://github.com/NousResearch/hermes-agent/pull/38594), [#37932](https://github.com/NousResearch/hermes-agent/pull/37932) — @ethernet8023, @OutThisLife)
- Require Node ≥20.19/22.12 for the desktop build; zero eslint/typecheck debt + prettier pass ([#38255](https://github.com/NousResearch/hermes-agent/pull/38255), [#39100](https://github.com/NousResearch/hermes-agent/pull/39100) — @OutThisLife)
### Remote-gateway & multi-profile
- Connect to OAuth-gated remote gateways; username/password login for remote gateways; per-profile remote gateway hosts ([#37888](https://github.com/NousResearch/hermes-agent/pull/37888), [#38851](https://github.com/NousResearch/hermes-agent/pull/38851), [#39778](https://github.com/NousResearch/hermes-agent/pull/39778) — @benbarclay, @teknium1, @OutThisLife)
- Concurrent multi-profile sessions, cross-profile `@session` links; re-mint OAuth WS ticket on gateway reconnect; gate OAuth remote connect on AT-or-RT ([#39330](https://github.com/NousResearch/hermes-agent/pull/39330), [#38886](https://github.com/NousResearch/hermes-agent/pull/38886), [#39464](https://github.com/NousResearch/hermes-agent/pull/39464) — @OutThisLife, @teknium1, @benbarclay)
- Offer remote sign-in on a gated-gateway boot failure; validate live WebSocket in remote gateway test ([#39402](https://github.com/NousResearch/hermes-agent/pull/39402), [#39511](https://github.com/NousResearch/hermes-agent/pull/39511) — @teknium1)
### Chat UX & settings
- Drop files anywhere in the chat area; clipboard image paste with dedupe; attachments on Enter, IME composition handling ([#36262](https://github.com/NousResearch/hermes-agent/pull/36262), [#38306](https://github.com/NousResearch/hermes-agent/pull/38306), [#38677](https://github.com/NousResearch/hermes-agent/pull/38677) — @OutThisLife, @teknium1)
- Background needs-input indicator, clarify redesign, Cmd+K palette & UI consistency pass; inline model picker in the status bar; YOLO toggle in the status bar (TUI parity) ([#38631](https://github.com/NousResearch/hermes-agent/pull/38631), [#37738](https://github.com/NousResearch/hermes-agent/pull/37738), [#38517](https://github.com/NousResearch/hermes-agent/pull/38517) — @OutThisLife)
- Session-list overhaul, session hygiene/archive, media streaming + connecting overlay; search sessions by id (SQL-bounded) ([#37379](https://github.com/NousResearch/hermes-agent/pull/37379), [#37099](https://github.com/NousResearch/hermes-agent/pull/37099), [#39062](https://github.com/NousResearch/hermes-agent/pull/39062) — @OutThisLife, @teknium1)
- Dedicated Providers settings + polished Accounts/API-keys UX; consolidate skills + tools management into one pane; move model management into Settings ([#38551](https://github.com/NousResearch/hermes-agent/pull/38551) — @austinpickett, [#37310](https://github.com/NousResearch/hermes-agent/pull/37310), [#37330](https://github.com/NousResearch/hermes-agent/pull/37330) — @jquesnelle)
- Render approval/sudo/secret prompts so tools stop silently timing out; surface skill & quick-command slash commands in the palette; first-class xAI Grok OAuth provider in the launcher ([#38578](https://github.com/NousResearch/hermes-agent/pull/38578), [#38531](https://github.com/NousResearch/hermes-agent/pull/38531), [#37697](https://github.com/NousResearch/hermes-agent/pull/37697) — @teknium1, @OutThisLife)
- "Choose provider later" skip on first-run onboarding; onboarding can configure a local/custom endpoint without an API key; custom zoom shortcuts ([#39483](https://github.com/NousResearch/hermes-agent/pull/39483), [#38572](https://github.com/NousResearch/hermes-agent/pull/38572), [#37894](https://github.com/NousResearch/hermes-agent/pull/37894) — @teknium1, @ethernet8023)
- macOS helper microphone entitlement; scroll-jump fixes (native anchoring, at-rest jump, wheel-up snap-back); thinking block stays open mid-streaming ([#37745](https://github.com/NousResearch/hermes-agent/pull/37745) — @xxxigm, [#37866](https://github.com/NousResearch/hermes-agent/pull/37866), [#38221](https://github.com/NousResearch/hermes-agent/pull/38221), [#38809](https://github.com/NousResearch/hermes-agent/pull/38809) — @OutThisLife, @teknium1, @stremtec)
- GUI quality-of-life triage batch; salvaged AhmetArif0 desktop/dashboard fixes; rename session via `session.title` RPC so `/title` works ([#37536](https://github.com/NousResearch/hermes-agent/pull/37536) — @austinpickett, [#39070](https://github.com/NousResearch/hermes-agent/pull/39070), [#39410](https://github.com/NousResearch/hermes-agent/pull/39410) — @teknium1, @benbarclay)
- `hermes debug share` / `/debug` / `hermes logs` now include `desktop.log` ([#38203](https://github.com/NousResearch/hermes-agent/pull/38203) — @teknium1)
- **Simplified Chinese (简体中文) translation** across every desktop UI surface — typed i18n layer, switch in Appearance settings, persisted via `display.language` (English remains default) ([#38241](https://github.com/NousResearch/hermes-agent/pull/38241) — @JimLiu)
- Full multi-profile support over one global-remote dashboard; remote-profile sessions are first-class (resume, read, rename/archive/delete); new chats honor their profile in global-remote mode ([#39921](https://github.com/NousResearch/hermes-agent/pull/39921), [#39894](https://github.com/NousResearch/hermes-agent/pull/39894), [#39993](https://github.com/NousResearch/hermes-agent/pull/39993) — @OutThisLife)
## 📊 Web Dashboard
### Administration panel (NEW)
- Full administration panel — MCP catalog with enable/disable toggles, pairing, webhooks, credentials, memory, gateway, hook creation, system settings ([#36704](https://github.com/NousResearch/hermes-agent/pull/36704), [#36736](https://github.com/NousResearch/hermes-agent/pull/36736) — @teknium1)
- Channels page — set up every gateway messaging channel from the browser ([#37211](https://github.com/NousResearch/hermes-agent/pull/37211) — @teknium1)
- System page: check-before-update flow + Debug Share ([#38205](https://github.com/NousResearch/hermes-agent/pull/38205), [#38600](https://github.com/NousResearch/hermes-agent/pull/38600) — @teknium1)
- nous-blue theme, bulk sessions, schedule picker; enriched profiles dashboard + de-dupe channel env vars; configurable terminal background via theme ([#37383](https://github.com/NousResearch/hermes-agent/pull/37383), [#37872](https://github.com/NousResearch/hermes-agent/pull/37872) — @austinpickett, [#37156](https://github.com/NousResearch/hermes-agent/pull/37156) — @teknium1)
- Always enable embedded chat; remove dashboard `--tui` flag ([#38591](https://github.com/NousResearch/hermes-agent/pull/38591) — @benbarclay)
### Auth
- Pluggable username/password login (Option B); generic self-hosted OIDC provider + multi-provider verify fix; `hermes dashboard register` for self-hosted OAuth client ([#38819](https://github.com/NousResearch/hermes-agent/pull/38819) — @benbarclay, [#38917](https://github.com/NousResearch/hermes-agent/pull/38917), [#38802](https://github.com/NousResearch/hermes-agent/pull/38802) — @teknium1)
- Rotate dashboard sessions via refresh token; share `/api/*` public allowlist between legacy and OAuth gates; drop `/api/*` paths from OAuth `next=` round trip ([#37247](https://github.com/NousResearch/hermes-agent/pull/37247), [#34254](https://github.com/NousResearch/hermes-agent/pull/34254), [#36244](https://github.com/NousResearch/hermes-agent/pull/36244) — @benbarclay)
- Chat tab works in gated (OAuth) mode; trust non-web WS origins on OAuth-gated binds after ticket auth; authenticate server-spawned PTY child WS; sanction plugin WS/upload auth via SDK helpers ([#34793](https://github.com/NousResearch/hermes-agent/pull/34793), [#37870](https://github.com/NousResearch/hermes-agent/pull/37870), [#37972](https://github.com/NousResearch/hermes-agent/pull/37972), [#38549](https://github.com/NousResearch/hermes-agent/pull/38549) — @teknium1, @benbarclay, @kshitijk4poor)
- Allow desktop websocket origins on remote binds ([#37747](https://github.com/NousResearch/hermes-agent/pull/37747) — @teknium1)
## 🏗️ Core Agent & Architecture
### Provider & model support
- New models: `deepseek-v4-flash` (+ trimmed variants, maker-grouped curated lists), `MiniMax-M3` with 1M context on native minimax providers, `qwen3.7-plus` (Nous + OpenRouter), `gemini-3.5-flash` to Gemini OAuth + API-key pickers ([#35659](https://github.com/NousResearch/hermes-agent/pull/35659), [#36214](https://github.com/NousResearch/hermes-agent/pull/36214), [#39409](https://github.com/NousResearch/hermes-agent/pull/39409), [#37046](https://github.com/NousResearch/hermes-agent/pull/37046) — @teknium1)
- Model picker: fuzzy search across WebUI/TUI/CLI; group multi-endpoint providers under one row; refresh provider descriptions + describe grouped rows; refresh catalog hourly; stop routing OpenAI selection to OpenRouter ([#36928](https://github.com/NousResearch/hermes-agent/pull/36928) — @kshitijk4poor, [#35227](https://github.com/NousResearch/hermes-agent/pull/35227), [#35773](https://github.com/NousResearch/hermes-agent/pull/35773), [#35756](https://github.com/NousResearch/hermes-agent/pull/35756), [#37175](https://github.com/NousResearch/hermes-agent/pull/37175))
- Always show Nous Tool Gateway backends, login on select; surface the Nous free tool pool (entitlement + setup prompt); route FAL video gen through managed Nous gateway ([#35792](https://github.com/NousResearch/hermes-agent/pull/35792) — @teknium1, [#36153](https://github.com/NousResearch/hermes-agent/pull/36153), [#33259](https://github.com/NousResearch/hermes-agent/pull/33259) — @alt-glitch)
- Persist mid-session model switch to database; recover model on post-interrupt recovery turn ([#35256](https://github.com/NousResearch/hermes-agent/pull/35256), [#35381](https://github.com/NousResearch/hermes-agent/pull/35381) — @teknium1)
- Credential pool: `STATUS_DEAD` for terminal OAuth failures; isolate custom provider picker credentials ([#34412](https://github.com/NousResearch/hermes-agent/pull/34412), [#34810](https://github.com/NousResearch/hermes-agent/pull/34810) — @teknium1)
- Disable Nous Portal legacy session-key inference fallback — JWT-only ([#34508](https://github.com/NousResearch/hermes-agent/pull/34508) — @kshitijk4poor)
### Agent loop, prompt & tools
- `/undo [N]` — backs up N user turns with prefill + soft-delete (CLI/TUI + messaging-platform parity) ([#36229](https://github.com/NousResearch/hermes-agent/pull/36229), [#36699](https://github.com/NousResearch/hermes-agent/pull/36699) — @teknium1)
- Progressive tool disclosure for MCP and plugin tools (scoped); embedder environment-hint hook for the system prompt; universal task-completion guidance + local Python toolchain probe ([#34493](https://github.com/NousResearch/hermes-agent/pull/34493), [#34574](https://github.com/NousResearch/hermes-agent/pull/34574), [#34340](https://github.com/NousResearch/hermes-agent/pull/34340) — @teknium1)
- Uncap delegation `max_spawn_depth` (floor 1, no ceiling); broaden Hermes self-knowledge pointer to docs + skill; `hermes prompt-size` diagnostic ([#39772](https://github.com/NousResearch/hermes-agent/pull/39772), [#38538](https://github.com/NousResearch/hermes-agent/pull/38538), [#35276](https://github.com/NousResearch/hermes-agent/pull/35276) — @teknium1)
- `perf(read_file)`: compact line-number gutter — ~14% fewer tokens per read (now the only format) ([#35368](https://github.com/NousResearch/hermes-agent/pull/35368), [#35532](https://github.com/NousResearch/hermes-agent/pull/35532) — @teknium1)
- Resolve agent cwd from `TERMINAL_CWD` via one reader; align prefill messages key handling; resume relaunches in the session's original working directory ([#35028](https://github.com/NousResearch/hermes-agent/pull/35028) — @banditburai, [#38760](https://github.com/NousResearch/hermes-agent/pull/38760) — @helix4u, [#38562](https://github.com/NousResearch/hermes-agent/pull/38562) — @teknium1)
- Prevent session-id fork from concurrent compressions; observer telemetry hooks + NeMo-Relay plugin (gated tool emit) ([#34351](https://github.com/NousResearch/hermes-agent/pull/34351), [#38232](https://github.com/NousResearch/hermes-agent/pull/38232) — @teknium1)
### Sessions, state & memory
- `perf(state)`: merge FTS5 segments on VACUUM + `hermes sessions optimize`; keep `/branch` sessions visible after parent reopen; survive missing FTS5 runtimes ([#34596](https://github.com/NousResearch/hermes-agent/pull/34596), [#39214](https://github.com/NousResearch/hermes-agent/pull/39214) — @teknium1, @kshitijk4poor, [#35452](https://github.com/NousResearch/hermes-agent/pull/35452) — @helix4u)
- Honcho: make startup fail open; harden self-hosted setup paths ([#24847](https://github.com/NousResearch/hermes-agent/pull/24847) — @stephenschoettler, [#35170](https://github.com/NousResearch/hermes-agent/pull/35170) — @kshitijk4poor)
- Supermemory: session-level ingest + kebab aliases ([#38756](https://github.com/NousResearch/hermes-agent/pull/38756) — @alt-glitch)
## 🧩 Multi-Agent (Kanban) & Skills
### Kanban
- `goal_mode` cards run workers in a `/goal` loop; file attachments on tasks; attach images referenced in task bodies to worker vision ([#35710](https://github.com/NousResearch/hermes-agent/pull/35710), [#35395](https://github.com/NousResearch/hermes-agent/pull/35395), [#34210](https://github.com/NousResearch/hermes-agent/pull/34210) — @teknium1)
- `default_assignee` fallback + per-profile concurrency cap; `POST /runs/{run_id}/terminate` endpoint; gate notifier watcher on `dispatch_in_gateway` ([#34244](https://github.com/NousResearch/hermes-agent/pull/34244), [#34449](https://github.com/NousResearch/hermes-agent/pull/34449), [#37174](https://github.com/NousResearch/hermes-agent/pull/37174) — @teknium1)
- CLI dispatch config passthrough + humanizer skill swap ([#34337](https://github.com/NousResearch/hermes-agent/pull/34337) — @teknium1)
### Skills
- **Leaner default skill set** ([#39028](https://github.com/NousResearch/hermes-agent/pull/39028) — @teknium1):
- Removed (redundant / dead): `spotify` (→ Spotify plugin's 7 native tools), `linear` (→ `hermes mcp install linear`), `kanban-codex-lane`, `debugging-hermes-tui-commands`, stale `domain` orphan, empty category markers (`diagramming`, `gifs`, `inference-sh`, `mlops/training`, `mlops/vector-databases`)
- Bundled → optional: `baoyu-article-illustrator`, `baoyu-comic`, `creative-ideation`, `pixel-art`, `dspy`, `subagent-driven-development`, `minecraft-modpack-server`, `pokemon-player`, `hermes-s6-container-supervision`
- Consolidated: `webhook-subscriptions` + `native-mcp` folded into the `hermes-agent` skill as on-demand references; `writing-plans` merged into `plan` (v2.0.0)
- New `environments:` frontmatter relevance gate (`kanban` / `docker` / `s6`) — context-specific skills stop appearing in the index for users who won't use them, still load on explicit request
- Curator can now prune unused **built-in** skills (not just agent-created), with usage tracked for every skill ([#36701](https://github.com/NousResearch/hermes-agent/pull/36701) — @teknium1)
- Blank-slate skills — `install --no-skills` + opt-out/opt-in for the default profile ([#36228](https://github.com/NousResearch/hermes-agent/pull/36228) — @teknium1)
- **NVIDIA/skills trusted tap** — `NVIDIA/skills` is now a default trusted Skills Hub tap alongside OpenAI/Anthropic/HuggingFace; `skills.sh.json` sidecar gives taps real category labels ([#34333](https://github.com/NousResearch/hermes-agent/pull/34333) — @teknium1)
- Skills Hub: fix browse cap, add source links + copy buttons + category cleanup ([#37143](https://github.com/NousResearch/hermes-agent/pull/37143) — @teknium1)
- New optional skills: `grok` (xAI Grok Build CLI), `antigravity-cli` operator (under autonomous-ai-agents) ([#34582](https://github.com/NousResearch/hermes-agent/pull/34582), [#34583](https://github.com/NousResearch/hermes-agent/pull/34583), [#34604](https://github.com/NousResearch/hermes-agent/pull/34604) — @teknium1)
## 📱 Messaging Platforms (Gateway)
- Structured stream-event protocol + Telegram draft formatting parity; per-platform streaming defaults (Telegram on, Discord off) + dashboard toggles; surface gateway streaming block in `DEFAULT_CONFIG` ([#37250](https://github.com/NousResearch/hermes-agent/pull/37250), [#37303](https://github.com/NousResearch/hermes-agent/pull/37303), [#37285](https://github.com/NousResearch/hermes-agent/pull/37285) — @teknium1)
- Discord voice-channel mixer — ambient idle bed + verbal acks that overlap TTS; explain `/voice` usage when toggled bare ([#39659](https://github.com/NousResearch/hermes-agent/pull/39659), [#39766](https://github.com/NousResearch/hermes-agent/pull/39766) — @teknium1)
- Handle Feishu meeting invitations; bluebubbles group mention gating; matrix bang-command aliases; matrix fail-closed approval reaction auth ([#39040](https://github.com/NousResearch/hermes-agent/pull/39040), [#37091](https://github.com/NousResearch/hermes-agent/pull/37091), [#38175](https://github.com/NousResearch/hermes-agent/pull/38175) — @teknium1, @alt-glitch, [#34567](https://github.com/NousResearch/hermes-agent/pull/34567))
- Clean service restart flow; close ResponseStore + dispose unowned adapter on reconnect failure; weixin `asyncio.wait_for` timeouts ([#36188](https://github.com/NousResearch/hermes-agent/pull/36188) — @helix4u, [#37679](https://github.com/NousResearch/hermes-agent/pull/37679) — @Fearvox, [#35117](https://github.com/NousResearch/hermes-agent/pull/35117) — @banditburai)
## 🖥️ CLI, TUI & Setup
- Configurable default interface (cli vs tui) + `--cli` flag; TUI single `/model` command + unified Sessions overlay; nudge toward `/agents` dashboard when delegation starts ([#37782](https://github.com/NousResearch/hermes-agent/pull/37782), [#37112](https://github.com/NousResearch/hermes-agent/pull/37112) — @OutThisLife, [#34704](https://github.com/NousResearch/hermes-agent/pull/34704) — @kshitijk4poor)
- Thin out setup — Quick Setup via Nous Portal + Full Setup defaults; explain Quick vs Full inline; `hermes portal` human-readable Portal onboarding alias + full quick-setup Nous flow ([#35723](https://github.com/NousResearch/hermes-agent/pull/35723), [#36227](https://github.com/NousResearch/hermes-agent/pull/36227), [#38449](https://github.com/NousResearch/hermes-agent/pull/38449), [#38465](https://github.com/NousResearch/hermes-agent/pull/38465) — @teknium1, @kshitijk4poor)
- Set process title to `hermes` in ps/top/htop; warn on unsupported pip installs + fix stale update-check cache ([#35143](https://github.com/NousResearch/hermes-agent/pull/35143), [#34846](https://github.com/NousResearch/hermes-agent/pull/34846) — @teknium1)
- TUI perf: stop slow/dead MCP servers from freezing startup; stop eager MCP discovery from blocking agent-capable startup; stop persisting full tool output in trail lines (silent OOM) ([#35273](https://github.com/NousResearch/hermes-agent/pull/35273), [#35397](https://github.com/NousResearch/hermes-agent/pull/35397), [#38224](https://github.com/NousResearch/hermes-agent/pull/38224) — @teknium1)
- TUI fixes: auto-recover session on unexpected gateway death; reassemble split SGR mouse sequences; preserve UTF-8 in PowerShell clipboard; reset terminal input modes on exit; `/save` snapshots under Hermes home ([#35893](https://github.com/NousResearch/hermes-agent/pull/35893), [#38564](https://github.com/NousResearch/hermes-agent/pull/38564) — @OutThisLife, [#35222](https://github.com/NousResearch/hermes-agent/pull/35222) — @teknium1, [#36864](https://github.com/NousResearch/hermes-agent/pull/36864) — @maxmilian, [#38251](https://github.com/NousResearch/hermes-agent/pull/38251) — @austinpickett)
- Setup model/provider pickers migrated off `simple_term_menu` to curses (ESC + ghost-row fixes); default browser/TTS picker to free local backend, not paid Nous ([#35806](https://github.com/NousResearch/hermes-agent/pull/35806), [#37800](https://github.com/NousResearch/hermes-agent/pull/37800) — @teknium1)
## 🔧 Tool System & Installer
- `single managed-uv path`, delete fts5 installer escalation; installer commit pinning opt-in (default branch-follow); shallow clones ([#37660](https://github.com/NousResearch/hermes-agent/pull/37660) — @ethernet8023, [#37123](https://github.com/NousResearch/hermes-agent/pull/37123) — @jquesnelle, [#39423](https://github.com/NousResearch/hermes-agent/pull/39423) — @ethernet8023)
- `ensure_uv()` survives the update boundary (no first-run crash); harden venv rebuild + verify core deps after install; require managed marker before destructive clean; stash/restore by default for non-interactive updates ([#39780](https://github.com/NousResearch/hermes-agent/pull/39780) — @OutThisLife, [#38887](https://github.com/NousResearch/hermes-agent/pull/38887), [#39568](https://github.com/NousResearch/hermes-agent/pull/39568), [#39645](https://github.com/NousResearch/hermes-agent/pull/39645) — @teknium1, @helix4u)
- MCP: stop reporting false OAuth success when no token was obtained; vision honors `model.supports_vision` in `vision_analyze` + `browser_vision`; MiniMax t2a_v2 TTS `raise_for_status` ([#34807](https://github.com/NousResearch/hermes-agent/pull/34807), [#34562](https://github.com/NousResearch/hermes-agent/pull/34562), [#39057](https://github.com/NousResearch/hermes-agent/pull/39057) — @teknium1)
- yuanbao: cache resolved media resources by resourceId ([#34474](https://github.com/NousResearch/hermes-agent/pull/34474) — @teknium1)
## 🐳 Docker & Deployment
- Container reuse + bounded-sync cleanup + orphan reaper; auto-join Docker socket group for docker-in-docker backend; boot non-root containers (skip s6-setuidgid drop when already unprivileged) ([#33645](https://github.com/NousResearch/hermes-agent/pull/33645), [#34407](https://github.com/NousResearch/hermes-agent/pull/34407) — @benbarclay, [#34837](https://github.com/NousResearch/hermes-agent/pull/34837) — @IAvecilla)
- Skip unnecessary boot chown when volume ownership matches remapped UID; seed `gateway_state.json` from `HERMES_GATEWAY_BOOTSTRAP_STATE` on first boot; tag containers with hermes-agent labels for identification ([#35027](https://github.com/NousResearch/hermes-agent/pull/35027) — @Foldblade, [#37896](https://github.com/NousResearch/hermes-agent/pull/37896) — @benbarclay)
- Point TUI launcher at prebuilt bundle via `HERMES_TUI_DIR`; consolidate node/nix workspace lockfile + update all consumers ([#37923](https://github.com/NousResearch/hermes-agent/pull/37923), [#36171](https://github.com/NousResearch/hermes-agent/pull/36171) — @benbarclay, @ethernet8023)
## 🔒 Security & Reliability
- **CVE-2026-48710 (Starlette BadHost)** — pin patched Starlette ≥1.0.1 ([#35118](https://github.com/NousResearch/hermes-agent/pull/35118) — @teknium1)
- Run URL SSRF checks off the event loop in async paths; strip Bedrock inference bearer token from subprocess env; add `bws_cache.json` to file-safety read guard; neutralize file paths in mutation-verifier footer ([#39046](https://github.com/NousResearch/hermes-agent/pull/39046), [#34498](https://github.com/NousResearch/hermes-agent/pull/34498), [#34421](https://github.com/NousResearch/hermes-agent/pull/34421), [#35684](https://github.com/NousResearch/hermes-agent/pull/35684) — @teknium1)
- Restore approval/sudo context in `execute_code` + guard entry points; add docker restart/stop/kill to `DANGEROUS_PATTERNS`; sanitize invisible unicode in vetted skill content; deepcopy tools before in-place xAI mutation ([#34497](https://github.com/NousResearch/hermes-agent/pull/34497), [#33438](https://github.com/NousResearch/hermes-agent/pull/33438) — @teknium1, @Sarbai, [#37245](https://github.com/NousResearch/hermes-agent/pull/37245), [#34416](https://github.com/NousResearch/hermes-agent/pull/34416))
- Sandbox-mirror soft guard for writes to per-task `.hermes` mirrors; honcho fail-open on startup ([#32213](https://github.com/NousResearch/hermes-agent/pull/32213) — @briandevans, [#24847](https://github.com/NousResearch/hermes-agent/pull/24847) — @stephenschoettler)
## 🐛 Notable Bug Fixes
- **399 issues closed** this window (2 P0, 62 P1, 16 security-tagged, 262 bug-labeled).
- Desktop: keep in-flight new chats from vanishing on refresh; Stop button actually interrupts when a turn is queued; stop background session messages bleeding into the active transcript; slash/@ completion menu navigable & Esc-dismissable; IME Enter no longer splits messages ([#37908](https://github.com/NousResearch/hermes-agent/pull/37908) — @OutThisLife, [#37948](https://github.com/NousResearch/hermes-agent/pull/37948), [#37975](https://github.com/NousResearch/hermes-agent/pull/37975), [#37937](https://github.com/NousResearch/hermes-agent/pull/37937) — @kshitijk4poor, [#38333](https://github.com/NousResearch/hermes-agent/pull/38333) — @stremtec)
- Update: stop stash/restore from clobbering desktop source on managed clones; don't fail desktop rebuild/skills sync on mid-rebuild venv; export launcher virtualenv to uv ([#38542](https://github.com/NousResearch/hermes-agent/pull/38542), [#38885](https://github.com/NousResearch/hermes-agent/pull/38885), [#35224](https://github.com/NousResearch/hermes-agent/pull/35224) — @teknium1)
- Voice: honor `PIPEWIRE_REMOTE` in PortAudio fallback; allow `/voice` over SSH when a sound server is reachable; restore mistralai (2.4.8 clean, ban lifted) ([#33473](https://github.com/NousResearch/hermes-agent/pull/33473) — @Dusk1e, [#35719](https://github.com/NousResearch/hermes-agent/pull/35719), [#34841](https://github.com/NousResearch/hermes-agent/pull/34841) — @teknium1)
## 📚 Documentation
- New Desktop App guide + remote-backend sections (session token, `--tui` requirement, username/password connect, dashboard/gateway prerequisites) ([#37457](https://github.com/NousResearch/hermes-agent/pull/37457), [#38144](https://github.com/NousResearch/hermes-agent/pull/38144), [#38180](https://github.com/NousResearch/hermes-agent/pull/38180), [#38534](https://github.com/NousResearch/hermes-agent/pull/38534), [#39128](https://github.com/NousResearch/hermes-agent/pull/39128) — @teknium1)
- Dashboard auth-provider suitability + registration across dashboard/Docker/Desktop; network egress isolation guide for Docker ([#39633](https://github.com/NousResearch/hermes-agent/pull/39633) — @benbarclay, [#26385](https://github.com/NousResearch/hermes-agent/pull/26385) — @Manzela)
---

## 👥 Contributors
A huge thank-you to the **170 community contributors** (including co-authors) who shipped work in this release.
### Core
- @teknium1
### Top community contributors (by merged-PR count)
- **@OutThisLife** (52) — built the desktop app end to end: install, self-update, remote-gateway connect, multi-profile sessions, chat UX, status-bar model picker
- **@benbarclay** (44) — Docker hardening, dashboard auth (OIDC, username/password, refresh-token rotation), desktop OAuth remote connect
- **@kshitijk4poor** (29) — fuzzy model picker, setup/portal onboarding, desktop completion-menu & Stop-button fixes, honcho hardening
- **@ethernet8023** (18) — desktop build pipeline (content-hash stamp, build flags), Linux/arm64 desktop support, managed-uv consolidation
- **@austinpickett** (8) — dashboard nous-blue theme + bulk sessions, desktop Providers settings, GUI QoL triage
- **@alt-glitch** (7) — Nous tool-pool entitlement surfacing, FAL video-gen managed gateway, supermemory session ingest, matrix aliases
- **@helix4u** (6) — gateway service-restart flow, update destructive-clean guard, config prefill alignment
- **@jquesnelle** (4) — installer commit-pinning opt-in, desktop skills/tools + model-management consolidation
- **@JimLiu** — full Simplified Chinese (简体中文) desktop translation + typed i18n layer
### All Contributors
@0xharryriddle, @a1245582339, @adybag14-cyber, @AhmetArif0, @alaamohanad169-ship-it, @alelpoan, @alt-glitch,
@Aman113114-IITD, @amathxbt, @aminvakil, @annguyenNous, @aqilaziz, @Archerouyang, @ashishpatel26, @asimons81,
@austinpickett, @banditburai, @baofuen, @Bartok9, @bbednarski9, @beardthelion, @bedirhancode, @benbarclay,
@benfrank241, @blackpilledsoftware-prog, @bluefishs, @brian-doherty, @briancl2, @briandevans, @BROCCOLO1D,
@caojiguang, @CharZhou, @counterposition, @coygeek, @CryptoByz, @davetist, @davidgut1982, @dchenk, @dirtyren,
@donovan-yohan, @dparikh79, @dskwe, @Dusk1e, @dvir-pashut, @EloquentBrush0x, @emozilla, @ErnestHysa, @Erosika,
@ethernet8023, @f3rs3n, @faisfamilytravel, @Fearvox, @ferminquant, @fesalfayed, @firefly, @flooryyyy,
@Foldblade, @Frowtek, @gbarany, @Glucksberg, @GodsBoy, @haran2001, @harjothkhara, @HashClawAI, @hayka-pacha,
@helix4u, @HeLLGURD, @Hinotoi-agent, @hllqkb, @IAvecilla, @inchargeautomation-lab, @Interstellar-code, @isair,
@ITheEqualizer, @jeffrobodie-glitch, @JezzaHehn, @JimLiu, @Julientalbot, @julio-cloudvisor, @karmeleon,
@Kenmege, @Kewe63, @Kolektori, @konsisumer, @kshitijk4poor, @kurobaryo, @kweiner, @kyssta-exe, @Kyzcreig,
@LengR, @leonardsellem, @LeonSGP43, @libre-7, @liuboacean, @liuhao1024, @loongzhao, @luyao618, @MaheshtheDev,
@Manzela, @mathijsvandenhurk, @MattMaximo, @maxcz79, @maxmilian, @Moikapy, @MustafaKara7, @nateGeorge,
@nepenth, @nielskaspers, @ninjmnky, @octavioturra, @OCWC22, @ohMyJason, @ousiaresearch, @outsourc-e,
@OutThisLife, @Pluviobyte, @polnikale, @pxdsgnco, @Que0x, @r266-tech, @redpiggy-cyber, @rewbs, @rexdotsh,
@rob-maron, @SaguaroDev, @sahibzada-allahyar, @Sarbai, @sarvesh1327, @scubamount, @SeaXen, @seppegadeyne,
@shannonsands, @SHL0MS, @SimoKiihamaki, @SiTaggart, @solaitken, @sprmn24, @stephenschoettler, @steveonjava,
@stremtec, @Subway2023, @sweetcornna, @Sylw3ster, @ThyFriendlyFox, @tillfalko, @tmchow, @TonyPepeBear,
@Tranquil-Flow, @truenorth-lj, @tuancookiez-hub, @Twanislas, @tymrtn, @uzunkuyruk, @ViewWay, @VinciZhu,
@vinoth12940, @vladkvlchk, @vynxevainglory-ai, @WadydX, @wenchengxucool, @whyhkzk, @worlldz, @Wysie, @x1am1,
@xxxigm, @ygd58, @youngstar-eth, @zapabob, @zhaoleibd, @Zyrixtrex
---
**Full Changelog**: [v2026.5.29.2...v2026.6.5](https://github.com/NousResearch/hermes-agent/compare/v2026.5.29.2...v2026.6.5)