# Hermes Agent v0.9.0 (v2026.4.13)
**发布日期:** 2026年4月13日
**自 v0.8.0 以来:** 487 次提交 · 269 个合并的 PR · 167 个已解决问题 · 493 个文件变更 · 63,281 行新增代码 · 24 位贡献者
> 这一次的发布实现了无处不在的覆盖——Hermes 通过 Termux/Android 登陆移动端,新增 iMessage 和微信支持,为 OpenAI 和 Anthropic 推出快速模式,引入后台进程监控,启动本地 Web 仪表板以管理您的代理,并完成了迄今为止在 16 个支持平台上最深入的安全加固。
---
## ✨ 亮点功能
- **本地 Web 仪表板** — 全新的基于浏览器的仪表板,用于在本地管理您的 Hermes Agent。通过简洁的 Web 界面配置设置、监控会话、浏览技能和管理网关,无需触碰配置文件或终端。这是上手 Hermes 最简单的方式。
- **快速模式 (`/fast`)** — 为 OpenAI 和 Anthropic 模型提供优先处理。切换 `/fast` 可通过优先队列路由,显著降低支持模型(GPT-5.4、Codex、Claude)的延迟。扩展至所有 OpenAI 优先处理模型和 Anthropic 快速层级。([#6875](https://github.com/NousResearch/hermes-agent/pull/6875), [#6960](https://github.com/NousResearch/hermes-agent/pull/6960), [#7037](https://github.com/NousResearch/hermes-agent/pull/7037))
- **通过 BlueBubbles 集成 iMessage** — 通过 BlueBubbles 实现完整的 iMessage 集成,将 Hermes 带入苹果消息生态系统。自动 Webhook 注册、安装向导集成和崩溃恢复能力。([#6437](https://github.com/NousResearch/hermes-agent/pull/6437), [#6460](https://github.com/NousResearch/hermes-agent/pull/6460), [#6494](https://github.com/NousResearch/hermes-agent/pull/6494))
- **微信(Weixin)与企业微信回调模式** — 通过 iLink Bot API 提供原生微信支持,并新增企业微信回调模式适配器,用于自建企业应用。支持流式光标、媒体上传、Markdown 链接处理和原子状态持久化。Hermes 现已端到端覆盖中国消息生态系统。([#7166](https://github.com/NousResearch/hermes-agent/pull/7166), [#7943](https://github.com/NousResearch/hermes-agent/pull/7943))
- **Termux / Android 支持** — 通过 Termux 在 Android 上原生运行 Hermes。适配安装路径、针对移动屏幕优化 TUI、支持语音后端,且 `/image` 命令可在设备上使用。([#6834](https://github.com/NousResearch/hermes-agent/pull/6834))
- **后台进程监控 (`watch_patterns`)** — 设置模式以监控后台进程输出,并在匹配时实时接收通知。监控错误、等待特定事件(如“监听端口”)或查看构建日志——全部无需轮询。([#7635](https://github.com/NousResearch/hermes-agent/pull/7635))
- **原生 xAI 与小米 MiMo 提供商** — 为 xAI (Grok) 和小米 MiMo 提供一级提供商支持,具备直接 API 访问、模型目录和安装向导集成。此外支持 Qwen OAuth 及门户请求。([#7372](https://github.com/NousResearch/hermes-agent/pull/7372), [#7855](https://github.com/NousResearch/hermes-agent/pull/7855))
- **可插拔上下文引擎** — 上下文管理现通过 `hermes plugins` 成为可插拔槽位。可插入自定义上下文引擎,控制代理每轮看到的内容——过滤、摘要或特定领域上下文注入。([#7464](https://github.com/NousResearch/hermes-agent/pull/7464))
- **统一代理支持** — 跨所有网关平台支持 SOCKS 代理、`DISCORD_PROXY` 和系统代理自动检测。Hermes 在企业防火墙后即可直接使用。([#6814](https://github.com/NousResearch/hermes-agent/pull/6814))
- **全面安全加固** — 检查点管理器中的路径遍历防护、沙盒写入中的 Shell 注入 neutralizing、Slack 图片上传中的 SSRF 重定向守卫、Twilio Webhook 签名验证(SMS RCE 修复)、API 服务器认证强制执行、Git 参数注入防护以及批准按钮授权。([#7933](https://github.com/NousResearch/hermes-agent/pull/7933), [#7944](https://github.com/NousResearch/hermes-agent/pull/7944), [#7940](https://github.com/NousResearch/hermes-agent/pull/7940), [#7151](https://github.com/NousResearch/hermes-agent/pull/7151), [#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- **`hermes backup` 与 `hermes import`** — 完整备份与恢复您的 Hermes 配置、会话、技能和记忆。可在机器间迁移,或在重大更改前创建快照。([#7997](https://github.com/NousResearch/hermes-agent/pull/7997))
- **16 个支持平台** — 随着 BlueBubbles (iMessage) 和微信加入 Telegram、Discord、Slack、WhatsApp、Signal、Matrix、邮件、SMS、钉钉、飞书、企业微信、Mattermost、Home Assistant 和 Webhooks,Hermes 现开箱即支持 16 个消息平台。
- **`/debug` 与 `hermes debug share`** — 全新调试工具包:跨所有平台的 `/debug` 斜杠命令用于快速诊断,加上 `hermes debug share` 可将完整调试报告上传至粘贴站,便于故障排查时共享。([#8681](https://github.com/NousResearch/hermes-agent/pull/8681))
---
## 🏗️ 核心代理与架构
### 提供商与模型支持
- **原生 xAI (Grok) 提供商**,具备直接 API 访问和模型目录 ([#7372](https://github.com/NousResearch/hermes-agent/pull/7372))
- **小米 MiMo 作为一级提供商** — 安装向导、模型目录、空响应恢复 ([#7855](https://github.com/NousResearch/hermes-agent/pull/7855))
- **Qwen OAuth 提供商**,支持门户请求 ([#6282](https://github.com/NousResearch/hermes-agent/pull/6282))
- **快速模式** — `/fast` 切换,支持 OpenAI 优先处理 + Anthropic 快速层级 ([#6875](https://github.com/NousResearch/hermes-agent/pull/6875), [#6960](https://github.com/NousResearch/hermes-agent/pull/6960), [#7037](https://github.com/NousResearch/hermes-agent/pull/7037))
- **结构化 API 错误分类**,用于智能故障转移决策 ([#6514](https://github.com/NousResearch/hermes-agent/pull/6514))
- **速率限制头部捕获**,在 `/usage` 中显示 ([#6541](https://github.com/NousResearch/hermes-agent/pull/6541))
- **API 服务器模型名称** 源自配置文件名称 ([#6857](https://github.com/NousResearch/hermes-agent/pull/6857))
- **自定义提供商** 现包含在 `/model` 列表和解析中 ([#7088](https://github.com/NousResearch/hermes-agent/pull/7088))
- **重复空响应时激活故障转移提供商**,并显示用户可见状态 ([#7505](https://github.com/NousResearch/hermes-agent/pull/7505))
- **OpenRouter 变体标签** (`:free`, `:extended`, `:fast`) 在模型切换时得以保留 ([#6383](https://github.com/NousResearch/hermes-agent/pull/6383))
- **凭证耗尽 TTL** 从 24 小时减少至 1 小时 ([#6504](https://github.com/NousResearch/hermes-agent/pull/6504))
- **OAuth 凭证生命周期** 加固 — 陈旧池密钥、auth.json 同步、Codex CLI 竞争修复 ([#6874](https://github.com/NousResearch/hermes-agent/pull/6874))
- 推理模型(MiMo、Qwen、GLM)的空响应恢复 ([#8609](https://github.com/NousResearch/hermes-agent/pull/8609))
- MiniMax 上下文长度、思考守卫、端点修正 ([#6082](https://github.com/NousResearch/hermes-agent/pull/6082), [#7126](https://github.com/NousResearch/hermes-agent/pull/7126))
- Z.AI 端点通过探测和缓存自动检测 ([#5763](https://github.com/NousResearch/hermes-agent/pull/5763))
### 代理循环与对话
- **通过 `hermes plugins` 实现可插拔上下文引擎槽位** ([#7464](https://github.com/NousResearch/hermes-agent/pull/7464))
- **后台进程监控** — `watch_patterns` 用于实时输出警报 ([#7635](https://github.com/NousResearch/hermes-agent/pull/7635))
- **改进的上下文压缩** — 更高限制、工具跟踪、降级警告、token 预算尾部保护 ([#6395](https://github.com/NousResearch/hermes-agent/pull/6395), [#6453](https://github.com/NousResearch/hermes-agent/pull/6453))
- **`/compress <focus>`** — 带聚焦主题的引导式压缩 ([#8017](https://github.com/NousResearch/hermes-agent/pull/8017))
- **分层上下文压力警告**,配合网关去重 ([#6411](https://github.com/NousResearch/hermes-agent/pull/6411))
- **分级不活动警告**,在超时升级前提示 ([#6387](https://github.com/NousResearch/hermes-agent/pull/6387))
- **防止代理在任务中途停止** — 压缩下限、预算 overhaul、活动跟踪 ([#7983](https://github.com/NousResearch/hermes-agent/pull/7983))
- **在 `delegate_task` 期间将子活动传播至父级** ([#7295](https://github.com/NousResearch/hermes-agent/pull/7295))
- **执行前检测截断的流式工具调用** ([#6847](https://github.com/NousResearch/hermes-agent/pull/6847))
- 空响应重试(3 次尝试并附带提示)([#6488](https://github.com/NousResearch/hermes-agent/pull/6488))
- 自适应流式退避 + 光标剥离以防止消息截断 ([#7683](https://github.com/NousResearch/hermes-agent/pull/7683))
- 压缩使用实时会话模型而非过时的持久化配置 ([#8258](https://github.com/NousResearch/hermes-agent/pull/8258))
- 从 Gemma 4 响应中剥离 `<thought>` 标签 ([#8562](https://github.com/NousResearch/hermes-agent/pull/8562))
- ` 在散文中抑制响应输出 ([#6968](https://github.com/NousResearch/hermes-agent/pull/6968))
- 回合退出诊断日志记录至代理循环 ([#6549](https://github.com/NousResearch/hermes-agent/pull/6549))
- 按线程范围工具中断信号,防止跨会话泄漏 ([#7930](https://github.com/NousResearch/hermes-agent/pull/7930))
### 记忆与会话
- ** hindsight 记忆插件** — 功能对等、安装向导、配置改进 — @nicoloboschi ([#6428](https://github.com/NousResearch/hermes-agent/pull/6428))
- **Honcho** — 工具模式 opt-in `initOnSessionStart` — @Kathie-yu ([#6995](https://github.com/NousResearch/hermes-agent/pull/6995))
- 孤立子项而非在修剪/删除时级联删除 ([#6513](https://github.com/NousResearch/hermes-agent/pull/6513))
- Doctor 命令仅检查活动记忆提供商 ([#6285](https://github.com/NousResearch/hermes-agent/pull/6285))
---
## 📱 消息平台(网关)
### 新平台
- **BlueBubbles (iMessage)** — 完整适配器,含自动 Webhook 注册、安装向导和崩溃恢复能力 ([#6437](https://github.com/NousResearch/hermes-agent/pull/6437), [#6460](https://github.com/NousResearch/hermes-agent/pull/6460), [#6494](https://github.com/NousResearch/hermes-agent/pull/6494), [#7107](https://github.com/NousResearch/hermes-agent/pull/7107))
- **微信 (Weixin)** — 通过 iLink Bot API 提供原生支持,含流式、媒体上传、Markdown 链接 ([#7166](https://github.com/NousResearch/hermes-agent/pull/7166), [#8665](https://github.com/NousResearch/hermes-agent/pull/8665))
- **企业微信回调模式** — 自建企业应用适配器,具备原子状态持久化 ([#7943](https://github.com/NousResearch/hermes-agent/pull/7943), [#7928](https://github.com/NousResearch/hermes-agent/pull/7928))
### Discord
- **允许频道白名单** 配置 — @jarvis-phw ([#7044](https://github.com/NousResearch/hermes-agent/pull/7044))
- **论坛频道主题继承** 在主题会话中 — @hermes-agent-dhabibi ([#6377](https://github.com/NousResearch/hermes-agent/pull/6377))
- **DISCORD_REPLY_TO_MODE** 设置 ([#6333](https://github.com/NousResearch/hermes-agent/pull/6333))
- 接受 `.log` 附件,提高文档大小限制 — @kira-ariaki ([#6467](https://github.com/NousResearch/hermes-agent/pull/6467))
- 将准备状态与斜杠同步解耦 ([#8016](https://github.com/NousResearch/hermes-agent/pull/8016))
### Slack
- **Slack 改进汇总** — 7 个社区 PR 合并为一个 ([#6809](https://github.com/NousResearch/hermes-agent/pull/6809))
- 处理助手线程生命周期事件 ([#6433](https://github.com/NousResearch/hermes-agent/pull/6433))
### Matrix
- **从 matrix-nio 迁移至 mautrix-python** ([#7518](https://github.com/NousResearch/hermes-agent/pull/7518))
- SQLite 加密存储替换 pickle(修复 E2EE 解密)— @alt-glitch ([#7981](https://github.com/NousResearch/hermes-agent/pull/7981))
- 用于 E2EE 迁移的跨签名恢复密钥验证 ([#8282](https://github.com/NousResearch/hermes-agent/pull/8282))
- 飞书 DM 提及线程 + 群聊事件 ([#7423](https://github.com/NousResearch/hermes-agent/pull/7423))
### 网关核心
- **统一代理支持** — SOCKS、DISCORD_PROXY、多平台及 macOS 自动检测 ([#6814](https://github.com/NousResearch/hermes-agent/pull/6814))
- **入站文本批处理** 适用于 Discord、Matrix、企业微信 + 自适应延迟 ([#6979](https://github.com/NousResearch/hermes-agent/pull/6979))
- **在聊天平台中展示自然的轮次中助手消息** ([#7978](https://github.com/NousResearch/hermes-agent/pull/7978))
- **WSL 感知网关**,具备智能 systemd 检测 ([#7510](https://github.com/NousResearch/hermes-agent/pull/7510))
- **安装向导中添加所有缺失平台** ([#7949](https://github.com/NousResearch/hermes-agent/pull/7949))
- **每平台 `tool_progress` 覆盖** ([#6348](https://github.com/NousResearch/hermes-agent/pull/6348))
- **可配置的“仍在工作”通知间隔** ([#8572](https://github.com/NousResearch/hermes-agent/pull/8572))
- `/model` 切换在消息间持久化 ([#7081](https://github.com/NousResearch/hermes-agent/pull/7081))
- `/usage` 在轮次间显示速率限制、成本和 token 详情 ([#7038](https://github.com/NousResearch/hermes-agent/pull/7038))
- 重启前排空进行中工作 ([#7503](https://github.com/NousResearch/hermes-agent/pull/7503))
- 失败运行时不移除缓存的代理 — 防止 MCP 重启循环 ([#7539](https://github.com/NousResearch/hermes-agent/pull/7539))
- 用 `contextvars` 替换 `os.environ` 会话状态 ([#7454](https://github.com/NousResearch/hermes-agent/pull/7454))
- 从枚举而非硬编码列表派生频道目录平台 ([#7450](https://github.com/NousResearch/hermes-agent/pull/7450))
- 缓存前验证图片下载(跨平台)([#7125](https://github.com/NousResearch/hermes-agent/pull/7125))
- 所有平台的跨平台 Webhook 传递 ([#7095](https://github.com/NousResearch/hermes-agent/pull/7095))
- Cron Discord thread_id 传递支持 ([#7106](https://github.com/NousResearch/hermes-agent/pull/7106))
- 飞书基于 QR 的机器人接入 ([#8570](https://github.com/NousResearch/hermes-agent/pull/8570))
- 网关状态范围限定于活动配置文件 ([#7951](https://github.com/NousResearch/hermes-agent/pull/7951))
- 防止后台进程通知触发错误配对请求 ([#6434](https://github.com/NousResearch/hermes-agent/pull/6434))
---
## 🖥️ CLI 与用户体验
### 交互式 CLI
- **Termux / Android 支持** — 适配安装路径、TUI、语音、`/image` ([#6834](https://github.com/NousResearch/hermes-agent/pull/6834))
- **原生 `/model` 选择器模态框**,用于提供商 → 模型选择 ([#8003](https://github.com/NousResearch/hermes-agent/pull/8003))
- **TUI 微调器中恢复每工具实时耗时计时器** ([#7359](https://github.com/NousResearch/hermes-agent/pull/7359))
- **TUI 中的堆叠工具进度回滚** ([#8201](https://github.com/NousResearch/hermes-agent/pull/8201))
- **新会话启动时随机提示**(CLI + 网关,279 条提示)([#8225](https://github.com/NousResearch/hermes-agent/pull/8225), [#8237](https://github.com/NousResearch/hermes-agent/pull/8237))
- **`hermes dump`** — 用于调试的可复制粘贴设置摘要 ([#6550](https://github.com/NousResearch/hermes-agent/pull/6550))
- **`hermes backup` / `hermes import`** — 完整配置备份与恢复 ([#7997](https://github.com/NousResearch/hermes-agent/pull/7997))
- **系统提示中的 WSL 环境提示** ([#8285](https://github.com/NousResearch/hermes-agent/pull/8285))
- **配置文件创建 UX** — 播种 SOUL.md + 凭证警告 ([#8553](https://github.com/NousResearch/hermes-agent/pull/8553))
- Shell 感知的 sudo 检测、空密码支持 ([#6517](https://github.com/NousResearch/hermes-agent/pull/6517))
- 在 curses/终端菜单后刷新 stdin,防止转义序列泄漏 ([#7167](https://github.com/NousResearch/hermes-agent/pull/7167))
- 处理 prompt_toolkit 启动时的损坏 stdin ([#8560](https://github.com/NousResearch/hermes-agent/pull/8560))
### 安装与配置
- **每平台显示详细程度配置** ([#8006](https://github.com/NousResearch/hermes-agent/pull/8006))
- **组件分离日志**,含会话上下文和过滤 ([#7991](https://github.com/NousResearch/hermes-agent/pull/7991))
- **`network.force_ipv4`** 配置,修复 IPv6 超时问题 ([#8196](https://github.com/NousResearch/hermes-agent/pull/8196))
- **标准化消息空白和 JSON 格式** ([#7988](https://github.com/NousResearch/hermes-agent/pull/7988))
- **迁移期间重命名 OpenClaw → Hermes** ([#8210](https://github.com/NousResearch/hermes-agent/pull/8210))
- config.yaml 对辅助设置优先于环境变量 ([#7889](https://github.com/NousResearch/hermes-agent/pull/7889))
- 加固安装提供商流程 + 实时 OpenRouter 目录刷新 ([#7078](https://github.com/NousResearch/hermes-agent/pull/7078))
- 跨所有表面标准化推理努力排序 ([#6804](https://github.com/NousResearch/hermes-agent/pull/6804))
- 移除废弃的 `LLM_MODEL` 环境变量 + 迁移以清除陈旧条目 ([#6543](https://github.com/NousResearch/hermes-agent/pull/6543))
- 移除 `/prompt` 斜杠命令 — 前缀扩展陷阱 ([#6752](https://github.com/NousResearch/hermes-agent/pull/6752))
- `HERMES_HOME_MODE` 环境变量用于覆盖权限 — @ygd58 ([#6993](https://github.com/NousResearch/hermes-agent/pull/6993))
- 模型配置为空时回退至默认模型 ([#8303](https://github.com/NousResearch/hermes-agent/pull/8303))
- 压缩模型上下文过小时警告 ([#7894](https://github.com/NousResearch/hermes-agent/pull/7894))
---
## 🔧 工具系统
### 环境与执行
- **统一每调用生成执行层** 用于环境 ([#6343](https://github.com/NousResearch/hermes-agent/pull/6343))
- **统一文件同步**,含 mtime 跟踪、删除和事务状态 ([#7087](https://github.com/NousResearch/hermes-agent/pull/7087))
- **持久沙盒环境** 在轮次间存活 ([#6412](https://github.com/NousResearch/hermes-agent/pull/6412))
- **通过 tar 管道批量文件同步** 适用于 SSH/Modal 后端 — @alt-glitch ([#8014](https://github.com/NousResearch/hermes-agent/pull/8014))
- **Daytona** — 批量上传、配置桥接、静默磁盘上限 ([#7538](https://github.com/NousResearch/hermes-agent/pull/7538))
- 前台超时上限以防止会话死锁 ([#7082](https://github.com/NousResearch/hermes-agent/pull/7082))
- 防护无效命令值 ([#6417](https://github.com/NousResearch/hermes-agent/pull/6417))
### MCP
- **`hermes mcp add --env` 和 `--preset`** 支持 ([#7970](https://github.com/NousResearch/hermes-agent/pull/7970))
- 两者均存在时合并 `content` 和 `structuredContent` ([#7118](https://github.com/NousResearch/hermes-agent/pull/7118))
- MCP 工具名称去冲突修复 ([#7654](https://github.com/NousResearch/hermes-agent/pull/7654))
### 浏览器
- 浏览器加固 — 移除死代码、缓存、滚动性能、安全性、线程安全 ([#7354](https://github.com/NousResearch/hermes-agent/pull/7354))
- `/browser connect` 自动启动使用专用 Chrome 配置文件目录 ([#6821](https://github.com/NousResearch/hermes-agent/pull/6821))
- 启动时清理孤立浏览器会话 ([#7931](https://github.com/NousResearch/hermes-agent/pull/7931))
### 语音与视觉
- **Voxtral TTS 提供商** (Mistral AI) ([#7653](https://github.com/NousResearch/hermes-agent/pull/7653))
- **TTS 速度支持** 适用于 Edge TTS、OpenAI TTS、MiniMax ([#8666](https://github.com/NousResearch/hermes-agent/pull/8666))
- **视觉自动调整大小** 适用于超大图片,将上限提升至 20 MB,失败重试 ([#7883](https://github.com/NousResearch/hermes-agent/pull/7883), [#7902](https://github.com/NousResearch/hermes-agent/pull/7902))
- STT 提供商-模型不匹配修复(whisper-1 vs faster-whisper)([#7113](https://github.com/NousResearch/hermes-agent/pull/7113))
### 其他工具
- **`hermes dump`** 命令用于设置摘要 ([#6550](https://github.com/NousResearch/hermes-agent/pull/6550))
- TODO 存储在执行替换操作时强制 ID 唯一性 ([#7986](https://github.com/NousResearch/hermes-agent/pull/7986))
- 在 `delegate_task` 模式描述中列出所有可用工具集 ([#8231](https://github.com/NousResearch/hermes-agent/pull/8231))
- API 服务器:工具进度作为自定义 SSE 事件,防止模型损坏 ([#7500](https://github.com/NousResearch/hermes-agent/pull/7500))
- API 服务器:所有会话共享一个 Docker 容器 ([#7127](https://github.com/NousResearch/hermes-agent/pull/7127))
---
## 🧩 技能生态
- **集中式技能索引 + 树缓存** — 消除安装时的速率限制失败 ([#8575](https://github.com/NousResearch/hermes-agent/pull/8575))
- **系统提示中更激进的技能加载指令**(v3)([#8209](https://github.com/NousResearch/hermes-agent/pull/8209), [#8286](https://github.com/NousResearch/hermes-agent/pull/8286))
- **Google Workspace 技能** 迁移至 GWS CLI 后端 ([#6788](https://github.com/NousResearch/hermes-agent/pull/6788))
- **创造性发散策略** 技能 — @SHL0MS ([#6882](https://github.com/NousResearch/hermes-agent/pull/6882))
- **创造性构思** — 约束驱动项目生成 — @SHL0MS ([#7555](https://github.com/NousResearch/hermes-agent/pull/7555))
- 并行化技能浏览/搜索以防止挂起 ([#7301](https://github.com/NousResearch/hermes-agent/pull/7301))
- 在 skills_sync 中从 SKILL.md 前端读取名称 ([#7623](https://github.com/NousResearch/hermes-agent/pull/7623))
---
## 🔒 安全与可靠性
### 安全加固
- **Twilio Webhook 签名验证** — SMS RCE 修复 ([#7933](https://github.com/NousResearch/hermes-agent/pull/7933))
- **Shell 注入 neutralizing** 在 `_write_to_sandbox` 中通过路径引用 ([#7940](https://github.com/NousResearch/hermes-agent/pull/7940))
- **Git 参数注入** 和检查点管理器中的路径遍历防护 ([#7944](https://github.com/NousResearch/hermes-agent/pull/7944))
- **Slack 图片上传中的 SSRF 重定向绕过** + base.py 缓存助手 ([#7151](https://github.com/NousResearch/hermes-agent/pull/7151))
- **路径遍历、凭证门、DANGEROUS_PATTERNS 缺口** ([#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- **API 绑定守卫** — 为非环回绑定强制执行 `API_SERVER_KEY` ([#7455](https://github.com/NousResearch/hermes-agent/pull/7455))
- **批准按钮授权** — 会话继续需要认证 — @Cafexss ([#6930](https://github.com/NousResearch/hermes-agent/pull/6930))
- 技能管理器操作中的路径边界执行 ([#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- 钉钉/API Webhook URL 源验证、头部注入拒绝 ([#7455](https://github.com/NousResearch/hermes-agent/pull/7455))
### 可靠性
- **上下文错误诊断** 用于无效 API 响应 ([#8565](https://github.com/NousResearch/hermes-agent/pull/8565))
- **防止 400 格式错误** 在 Codex 上触发压缩循环 ([#6751](https://github.com/NousResearch/hermes-agent/pull/6751))
- **输出过大错误时不减半 context_length** — @KUSH42 ([#6664](https://github.com/NousResearch/hermes-agent/pull/6664))
- **OpenAI 传输错误时恢复主客户端** ([#7108](https://github.com/NousResearch/hermes-agent/pull/7108))
- **计费分类 400 时凭证池轮换** ([#7112](https://github.com/NousResearch/hermes-agent/pull/7112))
- **自动增加流式读取超时** 适用于本地 LLM 提供商 ([#6967](https://github.com/NousResearch/hermes-agent/pull/6967))
- **CA 包路径不存在时回退至默认证书** ([#7352](https://github.com/NousResearch/hermes-agent/pull/7352))
- **消除错误分类器中的使用限制模式歧义** — @sprmn24 ([#6836](https://github.com/NousResearch/hermes-agent/pull/6836))
- 加固 cron 脚本超时和提供商恢复 ([#7079](https://github.com/NousResearch/hermes-agent/pull/7079))
- 网关中断检测对监控任务失败具有弹性 ([#8208](https://github.com/NousResearch/hermes-agent/pull/8208))
- 防止优雅网关重启后不必要的会话自动重置 ([#8299](https://github.com/NousResearch/hermes-agent/pull/8299))
- 防止网关观察器中重复更新提示垃圾信息 ([#8343](https://github.com/NousResearch/hermes-agent/pull/8343))
- 去重 Responses API 输入中的推理项 ([#7946](https://github.com/NousResearch/hermes-agent/pull/7946))
### 基础设施
- **多架构 Docker 镜像** — amd64 + arm64 ([#6124](https://github.com/NousResearch/hermes-agent/pull/6124))
- **Docker 以非 root 用户运行**,使用 virtualenv — @benbarclay 贡献 ([#8226](https://github.com/NousResearch/hermes-agent/pull/8226))
- **使用 `uv`** 进行 Docker 依赖解析,修复解析过深问题 ([#6965](https://github.com/NousResearch/hermes-agent/pull/6965))
- **容器感知 Nix CLI** — 自动路由至托管容器 — @alt-glitch ([#7543](https://github.com/NousResearch/hermes-agent/pull/7543))
- **Nix 共享状态权限模型** 适用于交互式 CLI 用户 — @alt-glitch ([#6796](https://github.com/NousResearch/hermes-agent/pull/6796))
- **每配置文件子进程 HOME 隔离** ([#7357](https://github.com/NousResearch/hermes-agent/pull/7357))
- Docker 中配置文件路径修复 — 配置文件移至挂载卷 ([#7170](https://github.com/NousResearch/hermes-agent/pull/7170))
- Docker 容器网关路径加固 ([#8614](https://github.com/NousResearch/hermes-agent/pull/8614))
- 启用无缓冲 stdout 以实现实时 Docker 日志 ([#6749](https://github.com/NousResearch/hermes-agent/pull/6749))
- 在 Docker 镜像中安装 procps — @HiddenPuppy ([#7032](https://github.com/NousResearch/hermes-agent/pull/7032))
- 浅层 git 克隆以加速安装 — @sosyz ([#8396](https://github.com/NousResearch/hermes-agent/pull/8396))
- `hermes update` 在 stash 冲突时始终重置 ([#7010](https://github.com/NousResearch/hermes-agent/pull/7010))
- 重启前写入更新退出代码(cgroup 杀死竞争)([#8288](https://github.com/NousResearch/hermes-agent/pull/8288))
- Nix: `setupSecrets` 可选,tirith 运行时依赖 — @devorun, @ethernet8023 ([#6261](https://github.com/NousResearch/hermes-agent/pull/6261), [#6721](https://github.com/NousResearch/hermes-agent/pull/6721))
- launchd 停止使用 `bootout`,因此 `KeepAlive` 不会重启 ([#7119](https://github.com/NousResearch/hermes-agent/pull/7119))
---
## 🐛 值得注意的 Bug 修复
- 修复:`/model` 切换在网关消息间不持久化 ([#7081](https://github.com/NousResearch/hermes-agent/pull/7081))
- 修复:会话范围网关模型覆盖被忽略 — @Hygaard ([#7662](https://github.com/NousResearch/hermes-agent/pull/7662))
- 修复:压缩模型上下文长度忽略配置 — 3 个相关问题 ([#8258](https://github.com/NousResearch/hermes-agent/pull/8258), [#8107](https://github.com/NousResearch/hermes-agent/pull/8107))
- 修复:OpenCode.ai 上下文窗口解析为 128K 而非 1M ([#6472](https://github.com/NousResearch/hermes-agent/pull/6472))
- 修复:Codex 故障转移认证存储查找 — @cherifya ([#6462](https://github.com/NousResearch/hermes-agent/pull/6462))
- 修复:进程被杀死时重复完成通知 ([#7124](https://github.com/NousResearch/hermes-agent/pull/7124))
- 修复:代理守护线程防止标签页关闭时的孤立 CLI 进程 ([#8557](https://github.com/NousResearch/hermes-agent/pull/8557))
- 修复:文本粘贴和语音输入时过时图片附件 ([#7077](https://github.com/NousResearch/hermes-agent/pull/7077))
- 修复:DM 线程会话播种导致跨线程污染 ([#7084](https://github.com/NousResearch/hermes-agent/pull/7084))
- 修复:OpenClaw 迁移在执行前显示试运行预览 ([#6769](https://github.com/NousResearch/hermes-agent/pull/6769))
- 修复:认证错误被错误分类为可重试 — @kuishou68 ([#7027](https://github.com/NousResearch/hermes-agent/pull/7027))
- 修复:缺失 Copilot-Integration-Id 头部 ([#7083](https://github.com/NousResearch/hermes-agent/pull/7083))
- 修复:ACP 会话能力 — @luyao618 ([#6985](https://github.com/NousResearch/hermes-agent/pull/6985))
- 修复:ACP PromptResponse 使用顶级字段 ([#7086](https://github.com/NousResearch/hermes-agent/pull/7086))
- 修复:main 上多个失败/不稳定测试 — @dsocolobsky ([#6777](https://github.com/NousResearch/hermes-agent/pull/6777))
- 修复:备份标记文件名 — @sprmn24 ([#8600](https://github.com/NousResearch/hermes-agent/pull/8600))
- 修复:fast_mode 检查中的 NoneType — @0xbyt4 ([#7350](https://github.com/NousResearch/hermes-agent/pull/7350))
- 修复:uninstall.py 中缺失导入 — @JiayuuWang ([#7034](https://github.com/NousResearch/hermes-agent/pull/7034))
---
## 📚 文档
- 平台适配器开发者指南 + 企业微信回调文档 ([#7969](https://github.com/NousResearch/hermes-agent/pull/7969))
- Cron 故障排除指南 ([#7122](https://github.com/NousResearch/hermes-agent/pull/7122))
- 本地 LLM 流式超时自动检测 ([#6990](https://github.com/NousResearch/hermes-agent/pull/6990))
- 工具使用强制文档扩展 ([#7984](https://github.com/NousResearch/hermes-agent/pull/7984))
- BlueBubbles 配对说明 ([#6548](https://github.com/NousResearch/hermes-agent/pull/6548))
- Telegram 代理支持章节 ([#6348](https://github.com/NousResearch/hermes-agent/pull/6348))
- `hermes dump` 和 `hermes logs` CLI 参考 ([#6552](https://github.com/NousResearch/hermes-agent/pull/6552))
- `tool_progress_overrides` 配置参考 ([#6364](https://github.com/NousResearch/hermes-agent/pull/6364))
- 压缩模型上下文长度警告文档 ([#7879](https://github.com/NousResearch/hermes-agent/pull/7879))
---
## 👥 贡献者
**269 个合并的 PR** 来自 **24 位贡献者**,共计 **487 次提交**。
### 社区贡献者
- **@alt-glitch** (6 个 PR) — Nix 容器感知 CLI、共享状态权限、Matrix SQLite 加密存储、SSH/Modal 批量文件同步、Matrix mautrix 兼容性
- **@SHL0MS** (2 个 PR) — 创造性发散策略技能、创造性构思技能
- **@sprmn24** (2 个 PR) — 错误分类器消歧、备份标记修复
- **@nicoloboschi** — hindsight 记忆插件功能对等
- **@Hygaard** — 会话范围网关模型覆盖修复
- **@jarvis-phw** — Discord 允许频道白名单
- **@Kathie-yu** — Honcho 工具模式 initOnSessionStart
- **@hermes-agent-dhabibi** — Discord 论坛频道主题继承
- **@kira-ariaki** — Discord .log 附件和大小限制
- **@cherifya** — Codex 故障转移认证存储查找
- **@Cafexss** — 安全:会话继续认证
- **@KUSH42** — 压缩 context_length 修复
- **@kuishou68** — 认证错误可重试分类修复
- **@luyao618** — ACP 会话能力
- **@ygd58** — HERMES_HOME_MODE 环境变量覆盖
- **@0xbyt4** — 快速模式 NoneType 修复
- **@JiayuuWang** — CLI 卸载导入修复
- **@HiddenPuppy** — Docker procps 安装
- **@dsocolobsky** — 测试套件修复
- **@benbarclay** — Docker 镜像标签简化
- **@sosyz** — 浅层 git 克隆以加速安装
- **@devorun** — Nix setupSecrets 可选
- **@ethernet8023** — Nix tirith 运行时依赖
---
**完整更新日志**:[v2026.4.8...v2026.4.13](https://github.com/NousResearch/hermes-agent/compare/v2026.4.8...v2026.4.13)
# Hermes Agent v0.9.0 (v2026.4.13)
**Release Date:** April 13, 2026
**Since v0.8.0:** 487 commits · 269 merged PRs · 167 resolved issues · 493 files changed · 63,281 insertions · 24 contributors
> The everywhere release — Hermes goes mobile with Termux/Android, adds iMessage and WeChat, ships Fast Mode for OpenAI and Anthropic, introduces background process monitoring, launches a local web dashboard for managing your agent, and delivers the deepest security hardening pass yet across 16 supported platforms.
---
## ✨ Highlights
- **Local Web Dashboard** — A new browser-based dashboard for managing your Hermes Agent locally. Configure settings, monitor sessions, browse skills, and manage your gateway — all from a clean web interface without touching config files or the terminal. The easiest way to get started with Hermes.
- **Fast Mode (`/fast`)** — Priority processing for OpenAI and Anthropic models. Toggle `/fast` to route through priority queues for significantly lower latency on supported models (GPT-5.4, Codex, Claude). Expands across all OpenAI Priority Processing models and Anthropic's fast tier. ([#6875](https://github.com/NousResearch/hermes-agent/pull/6875), [#6960](https://github.com/NousResearch/hermes-agent/pull/6960), [#7037](https://github.com/NousResearch/hermes-agent/pull/7037))
- **iMessage via BlueBubbles** — Full iMessage integration through BlueBubbles, bringing Hermes to Apple's messaging ecosystem. Auto-webhook registration, setup wizard integration, and crash resilience. ([#6437](https://github.com/NousResearch/hermes-agent/pull/6437), [#6460](https://github.com/NousResearch/hermes-agent/pull/6460), [#6494](https://github.com/NousResearch/hermes-agent/pull/6494))
- **WeChat (Weixin) & WeCom Callback Mode** — Native WeChat support via iLink Bot API and a new WeCom callback-mode adapter for self-built enterprise apps. Streaming cursor, media uploads, markdown link handling, and atomic state persistence. Hermes now covers the Chinese messaging ecosystem end-to-end. ([#7166](https://github.com/NousResearch/hermes-agent/pull/7166), [#7943](https://github.com/NousResearch/hermes-agent/pull/7943))
- **Termux / Android Support** — Run Hermes natively on Android via Termux. Adapted install paths, TUI optimizations for mobile screens, voice backend support, and the `/image` command work on-device. ([#6834](https://github.com/NousResearch/hermes-agent/pull/6834))
- **Background Process Monitoring (`watch_patterns`)** — Set patterns to watch for in background process output and get notified in real-time when they match. Monitor for errors, wait for specific events ("listening on port"), or watch build logs — all without polling. ([#7635](https://github.com/NousResearch/hermes-agent/pull/7635))
- **Native xAI & Xiaomi MiMo Providers** — First-class provider support for xAI (Grok) and Xiaomi MiMo, with direct API access, model catalogs, and setup wizard integration. Plus Qwen OAuth with portal request support. ([#7372](https://github.com/NousResearch/hermes-agent/pull/7372), [#7855](https://github.com/NousResearch/hermes-agent/pull/7855))
- **Pluggable Context Engine** — Context management is now a pluggable slot via `hermes plugins`. Swap in custom context engines that control what the agent sees each turn — filtering, summarization, or domain-specific context injection. ([#7464](https://github.com/NousResearch/hermes-agent/pull/7464))
- **Unified Proxy Support** — SOCKS proxy, `DISCORD_PROXY`, and system proxy auto-detection across all gateway platforms. Hermes behind corporate firewalls just works. ([#6814](https://github.com/NousResearch/hermes-agent/pull/6814))
- **Comprehensive Security Hardening** — Path traversal protection in checkpoint manager, shell injection neutralization in sandbox writes, SSRF redirect guards in Slack image uploads, Twilio webhook signature validation (SMS RCE fix), API server auth enforcement, git argument injection prevention, and approval button authorization. ([#7933](https://github.com/NousResearch/hermes-agent/pull/7933), [#7944](https://github.com/NousResearch/hermes-agent/pull/7944), [#7940](https://github.com/NousResearch/hermes-agent/pull/7940), [#7151](https://github.com/NousResearch/hermes-agent/pull/7151), [#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- **`hermes backup` & `hermes import`** — Full backup and restore of your Hermes configuration, sessions, skills, and memory. Migrate between machines or create snapshots before major changes. ([#7997](https://github.com/NousResearch/hermes-agent/pull/7997))
- **16 Supported Platforms** — With BlueBubbles (iMessage) and WeChat joining Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS, DingTalk, Feishu, WeCom, Mattermost, Home Assistant, and Webhooks, Hermes now runs on 16 messaging platforms out of the box.
- **`/debug` & `hermes debug share`** — New debugging toolkit: `/debug` slash command across all platforms for quick diagnostics, plus `hermes debug share` to upload a full debug report to a pastebin for easy sharing when troubleshooting. ([#8681](https://github.com/NousResearch/hermes-agent/pull/8681))
---
## 🏗️ Core Agent & Architecture
### Provider & Model Support
- **Native xAI (Grok) provider** with direct API access and model catalog ([#7372](https://github.com/NousResearch/hermes-agent/pull/7372))
- **Xiaomi MiMo as first-class provider** — setup wizard, model catalog, empty response recovery ([#7855](https://github.com/NousResearch/hermes-agent/pull/7855))
- **Qwen OAuth provider** with portal request support ([#6282](https://github.com/NousResearch/hermes-agent/pull/6282))
- **Fast Mode** — `/fast` toggle for OpenAI Priority Processing + Anthropic fast tier ([#6875](https://github.com/NousResearch/hermes-agent/pull/6875), [#6960](https://github.com/NousResearch/hermes-agent/pull/6960), [#7037](https://github.com/NousResearch/hermes-agent/pull/7037))
- **Structured API error classification** for smart failover decisions ([#6514](https://github.com/NousResearch/hermes-agent/pull/6514))
- **Rate limit header capture** shown in `/usage` ([#6541](https://github.com/NousResearch/hermes-agent/pull/6541))
- **API server model name** derived from profile name ([#6857](https://github.com/NousResearch/hermes-agent/pull/6857))
- **Custom providers** now included in `/model` listings and resolution ([#7088](https://github.com/NousResearch/hermes-agent/pull/7088))
- **Fallback provider activation** on repeated empty responses with user-visible status ([#7505](https://github.com/NousResearch/hermes-agent/pull/7505))
- **OpenRouter variant tags** (`:free`, `:extended`, `:fast`) preserved during model switch ([#6383](https://github.com/NousResearch/hermes-agent/pull/6383))
- **Credential exhaustion TTL** reduced from 24 hours to 1 hour ([#6504](https://github.com/NousResearch/hermes-agent/pull/6504))
- **OAuth credential lifecycle** hardening — stale pool keys, auth.json sync, Codex CLI race fixes ([#6874](https://github.com/NousResearch/hermes-agent/pull/6874))
- Empty response recovery for reasoning models (MiMo, Qwen, GLM) ([#8609](https://github.com/NousResearch/hermes-agent/pull/8609))
- MiniMax context lengths, thinking guard, endpoint corrections ([#6082](https://github.com/NousResearch/hermes-agent/pull/6082), [#7126](https://github.com/NousResearch/hermes-agent/pull/7126))
- Z.AI endpoint auto-detect via probe and cache ([#5763](https://github.com/NousResearch/hermes-agent/pull/5763))
### Agent Loop & Conversation
- **Pluggable context engine slot** via `hermes plugins` ([#7464](https://github.com/NousResearch/hermes-agent/pull/7464))
- **Background process monitoring** — `watch_patterns` for real-time output alerts ([#7635](https://github.com/NousResearch/hermes-agent/pull/7635))
- **Improved context compression** — higher limits, tool tracking, degradation warnings, token-budget tail protection ([#6395](https://github.com/NousResearch/hermes-agent/pull/6395), [#6453](https://github.com/NousResearch/hermes-agent/pull/6453))
- **`/compress <focus>`** — guided compression with a focus topic ([#8017](https://github.com/NousResearch/hermes-agent/pull/8017))
- **Tiered context pressure warnings** with gateway dedup ([#6411](https://github.com/NousResearch/hermes-agent/pull/6411))
- **Staged inactivity warning** before timeout escalation ([#6387](https://github.com/NousResearch/hermes-agent/pull/6387))
- **Prevent agent from stopping mid-task** — compression floor, budget overhaul, activity tracking ([#7983](https://github.com/NousResearch/hermes-agent/pull/7983))
- **Propagate child activity to parent** during `delegate_task` ([#7295](https://github.com/NousResearch/hermes-agent/pull/7295))
- **Truncated streaming tool call detection** before execution ([#6847](https://github.com/NousResearch/hermes-agent/pull/6847))
- Empty response retry (3 attempts with nudge) ([#6488](https://github.com/NousResearch/hermes-agent/pull/6488))
- Adaptive streaming backoff + cursor strip to prevent message truncation ([#7683](https://github.com/NousResearch/hermes-agent/pull/7683))
- Compression uses live session model instead of stale persisted config ([#8258](https://github.com/NousResearch/hermes-agent/pull/8258))
- Strip `<thought>` tags from Gemma 4 responses ([#8562](https://github.com/NousResearch/hermes-agent/pull/8562))
- Prevent `<think>` in prose from suppressing response output ([#6968](https://github.com/NousResearch/hermes-agent/pull/6968))
- Turn-exit diagnostic logging to agent loop ([#6549](https://github.com/NousResearch/hermes-agent/pull/6549))
- Scope tool interrupt signal per-thread to prevent cross-session leaks ([#7930](https://github.com/NousResearch/hermes-agent/pull/7930))
### Memory & Sessions
- **Hindsight memory plugin** — feature parity, setup wizard, config improvements — @nicoloboschi ([#6428](https://github.com/NousResearch/hermes-agent/pull/6428))
- **Honcho** — opt-in `initOnSessionStart` for tools mode — @Kathie-yu ([#6995](https://github.com/NousResearch/hermes-agent/pull/6995))
- Orphan children instead of cascade-deleting in prune/delete ([#6513](https://github.com/NousResearch/hermes-agent/pull/6513))
- Doctor command only checks the active memory provider ([#6285](https://github.com/NousResearch/hermes-agent/pull/6285))
---
## 📱 Messaging Platforms (Gateway)
### New Platforms
- **BlueBubbles (iMessage)** — full adapter with auto-webhook registration, setup wizard, and crash resilience ([#6437](https://github.com/NousResearch/hermes-agent/pull/6437), [#6460](https://github.com/NousResearch/hermes-agent/pull/6460), [#6494](https://github.com/NousResearch/hermes-agent/pull/6494), [#7107](https://github.com/NousResearch/hermes-agent/pull/7107))
- **Weixin (WeChat)** — native support via iLink Bot API with streaming, media uploads, markdown links ([#7166](https://github.com/NousResearch/hermes-agent/pull/7166), [#8665](https://github.com/NousResearch/hermes-agent/pull/8665))
- **WeCom Callback Mode** — self-built enterprise app adapter with atomic state persistence ([#7943](https://github.com/NousResearch/hermes-agent/pull/7943), [#7928](https://github.com/NousResearch/hermes-agent/pull/7928))
### Discord
- **Allowed channels whitelist** config — @jarvis-phw ([#7044](https://github.com/NousResearch/hermes-agent/pull/7044))
- **Forum channel topic inheritance** in thread sessions — @hermes-agent-dhabibi ([#6377](https://github.com/NousResearch/hermes-agent/pull/6377))
- **DISCORD_REPLY_TO_MODE** setting ([#6333](https://github.com/NousResearch/hermes-agent/pull/6333))
- Accept `.log` attachments, raise document size limit — @kira-ariaki ([#6467](https://github.com/NousResearch/hermes-agent/pull/6467))
- Decouple readiness from slash sync ([#8016](https://github.com/NousResearch/hermes-agent/pull/8016))
### Slack
- **Consolidated Slack improvements** — 7 community PRs salvaged into one ([#6809](https://github.com/NousResearch/hermes-agent/pull/6809))
- Handle assistant thread lifecycle events ([#6433](https://github.com/NousResearch/hermes-agent/pull/6433))
### Matrix
- **Migrated from matrix-nio to mautrix-python** ([#7518](https://github.com/NousResearch/hermes-agent/pull/7518))
- SQLite crypto store replacing pickle (fixes E2EE decryption) — @alt-glitch ([#7981](https://github.com/NousResearch/hermes-agent/pull/7981))
- Cross-signing recovery key verification for E2EE migration ([#8282](https://github.com/NousResearch/hermes-agent/pull/8282))
- DM mention threads + group chat events for Feishu ([#7423](https://github.com/NousResearch/hermes-agent/pull/7423))
### Gateway Core
- **Unified proxy support** — SOCKS, DISCORD_PROXY, multi-platform with macOS auto-detection ([#6814](https://github.com/NousResearch/hermes-agent/pull/6814))
- **Inbound text batching** for Discord, Matrix, WeCom + adaptive delay ([#6979](https://github.com/NousResearch/hermes-agent/pull/6979))
- **Surface natural mid-turn assistant messages** in chat platforms ([#7978](https://github.com/NousResearch/hermes-agent/pull/7978))
- **WSL-aware gateway** with smart systemd detection ([#7510](https://github.com/NousResearch/hermes-agent/pull/7510))
- **All missing platforms added to setup wizard** ([#7949](https://github.com/NousResearch/hermes-agent/pull/7949))
- **Per-platform `tool_progress` overrides** ([#6348](https://github.com/NousResearch/hermes-agent/pull/6348))
- **Configurable 'still working' notification interval** ([#8572](https://github.com/NousResearch/hermes-agent/pull/8572))
- `/model` switch persists across messages ([#7081](https://github.com/NousResearch/hermes-agent/pull/7081))
- `/usage` shows rate limits, cost, and token details between turns ([#7038](https://github.com/NousResearch/hermes-agent/pull/7038))
- Drain in-flight work before restart ([#7503](https://github.com/NousResearch/hermes-agent/pull/7503))
- Don't evict cached agent on failed runs — prevents MCP restart loop ([#7539](https://github.com/NousResearch/hermes-agent/pull/7539))
- Replace `os.environ` session state with `contextvars` ([#7454](https://github.com/NousResearch/hermes-agent/pull/7454))
- Derive channel directory platforms from enum instead of hardcoded list ([#7450](https://github.com/NousResearch/hermes-agent/pull/7450))
- Validate image downloads before caching (cross-platform) ([#7125](https://github.com/NousResearch/hermes-agent/pull/7125))
- Cross-platform webhook delivery for all platforms ([#7095](https://github.com/NousResearch/hermes-agent/pull/7095))
- Cron Discord thread_id delivery support ([#7106](https://github.com/NousResearch/hermes-agent/pull/7106))
- Feishu QR-based bot onboarding ([#8570](https://github.com/NousResearch/hermes-agent/pull/8570))
- Gateway status scoped to active profile ([#7951](https://github.com/NousResearch/hermes-agent/pull/7951))
- Prevent background process notifications from triggering false pairing requests ([#6434](https://github.com/NousResearch/hermes-agent/pull/6434))
---
## 🖥️ CLI & User Experience
### Interactive CLI
- **Termux / Android support** — adapted install paths, TUI, voice, `/image` ([#6834](https://github.com/NousResearch/hermes-agent/pull/6834))
- **Native `/model` picker modal** for provider → model selection ([#8003](https://github.com/NousResearch/hermes-agent/pull/8003))
- **Live per-tool elapsed timer** restored in TUI spinner ([#7359](https://github.com/NousResearch/hermes-agent/pull/7359))
- **Stacked tool progress scrollback** in TUI ([#8201](https://github.com/NousResearch/hermes-agent/pull/8201))
- **Random tips on new session start** (CLI + gateway, 279 tips) ([#8225](https://github.com/NousResearch/hermes-agent/pull/8225), [#8237](https://github.com/NousResearch/hermes-agent/pull/8237))
- **`hermes dump`** — copy-pasteable setup summary for debugging ([#6550](https://github.com/NousResearch/hermes-agent/pull/6550))
- **`hermes backup` / `hermes import`** — full config backup and restore ([#7997](https://github.com/NousResearch/hermes-agent/pull/7997))
- **WSL environment hint** in system prompt ([#8285](https://github.com/NousResearch/hermes-agent/pull/8285))
- **Profile creation UX** — seed SOUL.md + credential warning ([#8553](https://github.com/NousResearch/hermes-agent/pull/8553))
- Shell-aware sudo detection, empty password support ([#6517](https://github.com/NousResearch/hermes-agent/pull/6517))
- Flush stdin after curses/terminal menus to prevent escape sequence leakage ([#7167](https://github.com/NousResearch/hermes-agent/pull/7167))
- Handle broken stdin in prompt_toolkit startup ([#8560](https://github.com/NousResearch/hermes-agent/pull/8560))
### Setup & Configuration
- **Per-platform display verbosity** configuration ([#8006](https://github.com/NousResearch/hermes-agent/pull/8006))
- **Component-separated logging** with session context and filtering ([#7991](https://github.com/NousResearch/hermes-agent/pull/7991))
- **`network.force_ipv4`** config to fix IPv6 timeout issues ([#8196](https://github.com/NousResearch/hermes-agent/pull/8196))
- **Standardize message whitespace and JSON formatting** ([#7988](https://github.com/NousResearch/hermes-agent/pull/7988))
- **Rebrand OpenClaw → Hermes** during migration ([#8210](https://github.com/NousResearch/hermes-agent/pull/8210))
- Config.yaml takes priority over env vars for auxiliary settings ([#7889](https://github.com/NousResearch/hermes-agent/pull/7889))
- Harden setup provider flows + live OpenRouter catalog refresh ([#7078](https://github.com/NousResearch/hermes-agent/pull/7078))
- Normalize reasoning effort ordering across all surfaces ([#6804](https://github.com/NousResearch/hermes-agent/pull/6804))
- Remove dead `LLM_MODEL` env var + migration to clear stale entries ([#6543](https://github.com/NousResearch/hermes-agent/pull/6543))
- Remove `/prompt` slash command — prefix expansion footgun ([#6752](https://github.com/NousResearch/hermes-agent/pull/6752))
- `HERMES_HOME_MODE` env var to override permissions — @ygd58 ([#6993](https://github.com/NousResearch/hermes-agent/pull/6993))
- Fall back to default model when model config is empty ([#8303](https://github.com/NousResearch/hermes-agent/pull/8303))
- Warn when compression model context is too small ([#7894](https://github.com/NousResearch/hermes-agent/pull/7894))
---
## 🔧 Tool System
### Environments & Execution
- **Unified spawn-per-call execution layer** for environments ([#6343](https://github.com/NousResearch/hermes-agent/pull/6343))
- **Unified file sync** with mtime tracking, deletion, and transactional state ([#7087](https://github.com/NousResearch/hermes-agent/pull/7087))
- **Persistent sandbox envs** survive between turns ([#6412](https://github.com/NousResearch/hermes-agent/pull/6412))
- **Bulk file sync** via tar pipe for SSH/Modal backends — @alt-glitch ([#8014](https://github.com/NousResearch/hermes-agent/pull/8014))
- **Daytona** — bulk upload, config bridge, silent disk cap ([#7538](https://github.com/NousResearch/hermes-agent/pull/7538))
- Foreground timeout cap to prevent session deadlocks ([#7082](https://github.com/NousResearch/hermes-agent/pull/7082))
- Guard invalid command values ([#6417](https://github.com/NousResearch/hermes-agent/pull/6417))
### MCP
- **`hermes mcp add --env` and `--preset`** support ([#7970](https://github.com/NousResearch/hermes-agent/pull/7970))
- Combine `content` and `structuredContent` when both present ([#7118](https://github.com/NousResearch/hermes-agent/pull/7118))
- MCP tool name deconfliction fixes ([#7654](https://github.com/NousResearch/hermes-agent/pull/7654))
### Browser
- Browser hardening — dead code removal, caching, scroll perf, security, thread safety ([#7354](https://github.com/NousResearch/hermes-agent/pull/7354))
- `/browser connect` auto-launch uses dedicated Chrome profile dir ([#6821](https://github.com/NousResearch/hermes-agent/pull/6821))
- Reap orphaned browser sessions on startup ([#7931](https://github.com/NousResearch/hermes-agent/pull/7931))
### Voice & Vision
- **Voxtral TTS provider** (Mistral AI) ([#7653](https://github.com/NousResearch/hermes-agent/pull/7653))
- **TTS speed support** for Edge TTS, OpenAI TTS, MiniMax ([#8666](https://github.com/NousResearch/hermes-agent/pull/8666))
- **Vision auto-resize** for oversized images, raise limit to 20 MB, retry-on-failure ([#7883](https://github.com/NousResearch/hermes-agent/pull/7883), [#7902](https://github.com/NousResearch/hermes-agent/pull/7902))
- STT provider-model mismatch fix (whisper-1 vs faster-whisper) ([#7113](https://github.com/NousResearch/hermes-agent/pull/7113))
### Other Tools
- **`hermes dump`** command for setup summary ([#6550](https://github.com/NousResearch/hermes-agent/pull/6550))
- TODO store enforces ID uniqueness during replace operations ([#7986](https://github.com/NousResearch/hermes-agent/pull/7986))
- List all available toolsets in `delegate_task` schema description ([#8231](https://github.com/NousResearch/hermes-agent/pull/8231))
- API server: tool progress as custom SSE event to prevent model corruption ([#7500](https://github.com/NousResearch/hermes-agent/pull/7500))
- API server: share one Docker container across all conversations ([#7127](https://github.com/NousResearch/hermes-agent/pull/7127))
---
## 🧩 Skills Ecosystem
- **Centralized skills index + tree cache** — eliminates rate-limit failures on install ([#8575](https://github.com/NousResearch/hermes-agent/pull/8575))
- **More aggressive skill loading instructions** in system prompt (v3) ([#8209](https://github.com/NousResearch/hermes-agent/pull/8209), [#8286](https://github.com/NousResearch/hermes-agent/pull/8286))
- **Google Workspace skill** migrated to GWS CLI backend ([#6788](https://github.com/NousResearch/hermes-agent/pull/6788))
- **Creative divergence strategies** skill — @SHL0MS ([#6882](https://github.com/NousResearch/hermes-agent/pull/6882))
- **Creative ideation** — constraint-driven project generation — @SHL0MS ([#7555](https://github.com/NousResearch/hermes-agent/pull/7555))
- Parallelize skills browse/search to prevent hanging ([#7301](https://github.com/NousResearch/hermes-agent/pull/7301))
- Read name from SKILL.md frontmatter in skills_sync ([#7623](https://github.com/NousResearch/hermes-agent/pull/7623))
---
## 🔒 Security & Reliability
### Security Hardening
- **Twilio webhook signature validation** — SMS RCE fix ([#7933](https://github.com/NousResearch/hermes-agent/pull/7933))
- **Shell injection neutralization** in `_write_to_sandbox` via path quoting ([#7940](https://github.com/NousResearch/hermes-agent/pull/7940))
- **Git argument injection** and path traversal prevention in checkpoint manager ([#7944](https://github.com/NousResearch/hermes-agent/pull/7944))
- **SSRF redirect bypass** in Slack image uploads + base.py cache helpers ([#7151](https://github.com/NousResearch/hermes-agent/pull/7151))
- **Path traversal, credential gate, DANGEROUS_PATTERNS gaps** ([#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- **API bind guard** — enforce `API_SERVER_KEY` for non-loopback binding ([#7455](https://github.com/NousResearch/hermes-agent/pull/7455))
- **Approval button authorization** — require auth for session continuation — @Cafexss ([#6930](https://github.com/NousResearch/hermes-agent/pull/6930))
- Path boundary enforcement in skill manager operations ([#7156](https://github.com/NousResearch/hermes-agent/pull/7156))
- DingTalk/API webhook URL origin validation, header injection rejection ([#7455](https://github.com/NousResearch/hermes-agent/pull/7455))
### Reliability
- **Contextual error diagnostics** for invalid API responses ([#8565](https://github.com/NousResearch/hermes-agent/pull/8565))
- **Prevent 400 format errors** from triggering compression loop on Codex ([#6751](https://github.com/NousResearch/hermes-agent/pull/6751))
- **Don't halve context_length** on output-cap-too-large errors — @KUSH42 ([#6664](https://github.com/NousResearch/hermes-agent/pull/6664))
- **Recover primary client** on OpenAI transport errors ([#7108](https://github.com/NousResearch/hermes-agent/pull/7108))
- **Credential pool rotation** on billing-classified 400s ([#7112](https://github.com/NousResearch/hermes-agent/pull/7112))
- **Auto-increase stream read timeout** for local LLM providers ([#6967](https://github.com/NousResearch/hermes-agent/pull/6967))
- **Fall back to default certs** when CA bundle path doesn't exist ([#7352](https://github.com/NousResearch/hermes-agent/pull/7352))
- **Disambiguate usage-limit patterns** in error classifier — @sprmn24 ([#6836](https://github.com/NousResearch/hermes-agent/pull/6836))
- Harden cron script timeout and provider recovery ([#7079](https://github.com/NousResearch/hermes-agent/pull/7079))
- Gateway interrupt detection resilient to monitor task failures ([#8208](https://github.com/NousResearch/hermes-agent/pull/8208))
- Prevent unwanted session auto-reset after graceful gateway restarts ([#8299](https://github.com/NousResearch/hermes-agent/pull/8299))
- Prevent duplicate update prompt spam in gateway watcher ([#8343](https://github.com/NousResearch/hermes-agent/pull/8343))
- Deduplicate reasoning items in Responses API input ([#7946](https://github.com/NousResearch/hermes-agent/pull/7946))
### Infrastructure
- **Multi-arch Docker image** — amd64 + arm64 ([#6124](https://github.com/NousResearch/hermes-agent/pull/6124))
- **Docker runs as non-root user** with virtualenv — @benbarclay contributing ([#8226](https://github.com/NousResearch/hermes-agent/pull/8226))
- **Use `uv`** for Docker dependency resolution to fix resolution-too-deep ([#6965](https://github.com/NousResearch/hermes-agent/pull/6965))
- **Container-aware Nix CLI** — auto-route into managed container — @alt-glitch ([#7543](https://github.com/NousResearch/hermes-agent/pull/7543))
- **Nix shared-state permission model** for interactive CLI users — @alt-glitch ([#6796](https://github.com/NousResearch/hermes-agent/pull/6796))
- **Per-profile subprocess HOME isolation** ([#7357](https://github.com/NousResearch/hermes-agent/pull/7357))
- Profile paths fixed in Docker — profiles go to mounted volume ([#7170](https://github.com/NousResearch/hermes-agent/pull/7170))
- Docker container gateway pathway hardened ([#8614](https://github.com/NousResearch/hermes-agent/pull/8614))
- Enable unbuffered stdout for live Docker logs ([#6749](https://github.com/NousResearch/hermes-agent/pull/6749))
- Install procps in Docker image — @HiddenPuppy ([#7032](https://github.com/NousResearch/hermes-agent/pull/7032))
- Shallow git clone for faster installation — @sosyz ([#8396](https://github.com/NousResearch/hermes-agent/pull/8396))
- `hermes update` always reset on stash conflict ([#7010](https://github.com/NousResearch/hermes-agent/pull/7010))
- Write update exit code before gateway restart (cgroup kill race) ([#8288](https://github.com/NousResearch/hermes-agent/pull/8288))
- Nix: `setupSecrets` optional, tirith runtime dep — @devorun, @ethernet8023 ([#6261](https://github.com/NousResearch/hermes-agent/pull/6261), [#6721](https://github.com/NousResearch/hermes-agent/pull/6721))
- launchd stop uses `bootout` so `KeepAlive` doesn't respawn ([#7119](https://github.com/NousResearch/hermes-agent/pull/7119))
---
## 🐛 Notable Bug Fixes
- Fix: `/model` switch not persisting across gateway messages ([#7081](https://github.com/NousResearch/hermes-agent/pull/7081))
- Fix: session-scoped gateway model overrides ignored — @Hygaard ([#7662](https://github.com/NousResearch/hermes-agent/pull/7662))
- Fix: compaction model context length ignoring config — 3 related issues ([#8258](https://github.com/NousResearch/hermes-agent/pull/8258), [#8107](https://github.com/NousResearch/hermes-agent/pull/8107))
- Fix: OpenCode.ai context window resolved to 128K instead of 1M ([#6472](https://github.com/NousResearch/hermes-agent/pull/6472))
- Fix: Codex fallback auth-store lookup — @cherifya ([#6462](https://github.com/NousResearch/hermes-agent/pull/6462))
- Fix: duplicate completion notifications when process killed ([#7124](https://github.com/NousResearch/hermes-agent/pull/7124))
- Fix: agent daemon thread prevents orphan CLI processes on tab close ([#8557](https://github.com/NousResearch/hermes-agent/pull/8557))
- Fix: stale image attachment on text paste and voice input ([#7077](https://github.com/NousResearch/hermes-agent/pull/7077))
- Fix: DM thread session seeding causing cross-thread contamination ([#7084](https://github.com/NousResearch/hermes-agent/pull/7084))
- Fix: OpenClaw migration shows dry-run preview before executing ([#6769](https://github.com/NousResearch/hermes-agent/pull/6769))
- Fix: auth errors misclassified as retryable — @kuishou68 ([#7027](https://github.com/NousResearch/hermes-agent/pull/7027))
- Fix: Copilot-Integration-Id header missing ([#7083](https://github.com/NousResearch/hermes-agent/pull/7083))
- Fix: ACP session capabilities — @luyao618 ([#6985](https://github.com/NousResearch/hermes-agent/pull/6985))
- Fix: ACP PromptResponse usage from top-level fields ([#7086](https://github.com/NousResearch/hermes-agent/pull/7086))
- Fix: several failing/flaky tests on main — @dsocolobsky ([#6777](https://github.com/NousResearch/hermes-agent/pull/6777))
- Fix: backup marker filenames — @sprmn24 ([#8600](https://github.com/NousResearch/hermes-agent/pull/8600))
- Fix: `NoneType` in fast_mode check — @0xbyt4 ([#7350](https://github.com/NousResearch/hermes-agent/pull/7350))
- Fix: missing imports in uninstall.py — @JiayuuWang ([#7034](https://github.com/NousResearch/hermes-agent/pull/7034))
---
## 📚 Documentation
- Platform adapter developer guide + WeCom Callback docs ([#7969](https://github.com/NousResearch/hermes-agent/pull/7969))
- Cron troubleshooting guide ([#7122](https://github.com/NousResearch/hermes-agent/pull/7122))
- Streaming timeout auto-detection for local LLMs ([#6990](https://github.com/NousResearch/hermes-agent/pull/6990))
- Tool-use enforcement documentation expanded ([#7984](https://github.com/NousResearch/hermes-agent/pull/7984))
- BlueBubbles pairing instructions ([#6548](https://github.com/NousResearch/hermes-agent/pull/6548))
- Telegram proxy support section ([#6348](https://github.com/NousResearch/hermes-agent/pull/6348))
- `hermes dump` and `hermes logs` CLI reference ([#6552](https://github.com/NousResearch/hermes-agent/pull/6552))
- `tool_progress_overrides` configuration reference ([#6364](https://github.com/NousResearch/hermes-agent/pull/6364))
- Compression model context length warning docs ([#7879](https://github.com/NousResearch/hermes-agent/pull/7879))
---
## 👥 Contributors
**269 merged PRs** from **24 contributors** across **487 commits**.
### Community Contributors
- **@alt-glitch** (6 PRs) — Nix container-aware CLI, shared-state permissions, Matrix SQLite crypto store, bulk SSH/Modal file sync, Matrix mautrix compat
- **@SHL0MS** (2 PRs) — Creative divergence strategies skill, creative ideation skill
- **@sprmn24** (2 PRs) — Error classifier disambiguation, backup marker fix
- **@nicoloboschi** — Hindsight memory plugin feature parity
- **@Hygaard** — Session-scoped gateway model override fix
- **@jarvis-phw** — Discord allowed_channels whitelist
- **@Kathie-yu** — Honcho initOnSessionStart for tools mode
- **@hermes-agent-dhabibi** — Discord forum channel topic inheritance
- **@kira-ariaki** — Discord .log attachments and size limit
- **@cherifya** — Codex fallback auth-store lookup
- **@Cafexss** — Security: auth for session continuation
- **@KUSH42** — Compaction context_length fix
- **@kuishou68** — Auth error retryable classification fix
- **@luyao618** — ACP session capabilities
- **@ygd58** — HERMES_HOME_MODE env var override
- **@0xbyt4** — Fast mode NoneType fix
- **@JiayuuWang** — CLI uninstall import fix
- **@HiddenPuppy** — Docker procps installation
- **@dsocolobsky** — Test suite fixes
- **@benbarclay** — Docker image tag simplification
- **@sosyz** — Shallow git clone for faster install
- **@devorun** — Nix setupSecrets optional
- **@ethernet8023** — Nix tirith runtime dep
---
**Full Changelog**: [v2026.4.8...v2026.4.13](https://github.com/NousResearch/hermes-agent/compare/v2026.4.8...v2026.4.13)