# Hermes Agent v0.11.0 (v2026.4.23)
**发布日期:** 2026年4月23日
**自 v0.9.0 以来:** 1,556 次提交 · 761 个合并的 PR · 1,314 个文件变更 · 224,174 行新增 · 29 位社区贡献者(包含共同作者共 290 位)
> 本次为“界面版”发布 —— 交互式 CLI 完全基于 React/Ink 重写、所有提供商底层采用可插拔传输架构、原生支持 AWS Bedrock、新增五个推理路径、增加第 17 个消息平台(QQBot)、插件接口大幅扩展、以及通过 Codex OAuth 支持 GPT-5.5。
此版本还整合了 v0.10.0 版本推迟发布的所有亮点(该版本仅发布了 Nous Tool Gateway)—— 因此涵盖了整个技术栈约两周的开发工作。
---
## ✨ 主要亮点
- **全新的 Ink 基础 TUI** — `hermes --tui` 现在是交互式 CLI 的完全 React/Ink 重写版本,后端采用 Python JSON-RPC(`tui_gateway`)。包含粘性编辑器、支持 OSC-52 剪贴板的实时流式传输、稳定的选择键、带每轮秒表和 Git 分支的状态栏、`/clear` 确认提示、浅色主题预设,以及子代理生成可观测性覆盖层。`ui-tui/` + `tui_gateway/` 目录下约 310 次提交。(@OutThisLife + Teknium)
- **传输层抽象基类(ABC)+ 原生 AWS Bedrock 支持** — 格式转换和 HTTP 传输已从 `run_agent.py` 中提取到可插拔的 `agent/transports/` 层。`AnthropicTransport`、`ChatCompletionsTransport`、`ResponsesApiTransport` 和 `BedrockTransport` 各自拥有独立的格式转换和 API 形态。原生 AWS Bedrock 支持通过 Converse API 构建于新抽象层之上。([#10549](https://github.com/NousResearch/hermes-agent/pull/10549), [#13347](https://github.com/NousResearch/hermes-agent/pull/13347), [#13366](https://github.com/NousResearch/hermes-agent/pull/13366), [#13430](https://github.com/NousResearch/hermes-agent/pull/13430), [#13805](https://github.com/NousResearch/hermes-agent/pull/13805), [#13814](https://github.com/NousResearch/hermes-agent/pull/13814) — @kshitijk4poor + Teknium)
- **五个新的推理路径** — 原生 NVIDIA NIM([#11774](https://github.com/NousResearch/hermes-agent/pull/11774))、Arcee AI([#9276](https://github.com/NousResearch/hermes-agent/pull/9276))、Step Plan([#13893](https://github.com/NousResearch/hermes-agent/pull/13893))、Google Gemini CLI OAuth([#11270](https://github.com/NousResearch/hermes-agent/pull/11270)),以及具备定价和动态发现功能的 Vercel ai-gateway([#13223](https://github.com/NousResearch/hermes-agent/pull/13223) — @jerilynzheng)。此外,Gemini 现可通过原生 AI Studio API 路由以获得更好性能([#12674](https://github.com/NousResearch/hermes-agent/pull/12674))。
- **通过 Codex OAuth 使用 GPT-5.5** — OpenAI 的新 GPT-5.5 推理模型现可通过您的 ChatGPT Codex OAuth 使用,实时模型发现已接入模型选择器,新发布的 OpenAI 模型无需目录更新即可显示。([#14720](https://github.com/NousResearch/hermes-agent/pull/14720))
- **QQBot — 第 17 个支持平台** — 通过 QQ 官方 API v2 的原生 QQBot 适配器,支持 QR 扫描配置向导、流式光标、表情反应、以及与 WeCom/Weixin 对齐的 DM/群组策略管控。([#9364](https://github.com/NousResearch/hermes-agent/pull/9364), [#11831](https://github.com/NousResearch/hermes-agent/pull/11831))
- **插件接口大幅扩展** — 插件现可注册斜杠命令(`register_command`)、直接分发工具(`dispatch_tool`)、通过钩子阻止工具执行(`pre_tool_call` 可否决)、重写工具结果(`transform_tool_result`)、转换终端输出(`transform_terminal_output`)、提供 image_gen 后端,以及添加自定义仪表板标签页。捆绑的磁盘清理插件默认作为参考实现采用可选安装。([#9377](https://github.com/NousResearch/hermes-agent/pull/9377), [#10626](https://github.com/NousResearch/hermes-agent/pull/10626), [#10763](https://github.com/NousResearch/hermes-agent/pull/10763), [#10951](https://github.com/NousResearch/hermes-agent/pull/10951), [#12929](https://github.com/NousResearch/hermes-agent/pull/12929), [#12944](https://github.com/NousResearch/hermes-agent/pull/12944), [#12972](https://github.com/NousResearch/hermes-agent/pull/12972), [#13799](https://github.com/NousResearch/hermes-agent/pull/13799), [#14175](https://github.com/NousResearch/hermes-agent/pull/14175))
- **`/steer` — 运行中代理微调** — `/steer <prompt>` 注入一条提示,运行中的代理在下一次工具调用后即可看到,不会中断回合或破坏提示缓存。用于在代理运行时进行航向修正。([#12116](https://github.com/NousResearch/hermes-agent/pull/12116))
- **Shell 钩子** — 可将任意 Shell 脚本作为 Hermes 生命周期钩子(pre_tool_call、post_tool_call、on_session_start 等),无需编写 Python 插件。([#13296](https://github.com/NousResearch/hermes-agent/pull/13296))
- **Webhook 直送模式** — Webhook 订阅现可将负载直接转发至平台聊天,无需经过代理 —— 实现零 LLM 的推送通知,用于告警、运行检查及事件流。([#12473](https://github.com/NousResearch/hermes-agent/pull/12473))
- **更智能的委托** — 子代理现拥有显式的 `orchestrator` 角色,可生成自己的工作者,并支持配置 `max_spawn_depth`(默认为扁平结构)。并发兄弟子代理通过文件协调层共享文件系统状态,避免相互覆盖编辑。([#13691](https://github.com/NousResearch/hermes-agent/pull/13691), [#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
- **辅助模型 — 可配置 UI + 主模型优先** — `hermes model` 新增专用“配置辅助模型”界面,用于每任务覆盖(压缩、视觉、session_search、title_generation)。`auto` 路由现默认对所有用户使用主模型处理侧任务(此前聚合用户被静默路由至廉价的提供商侧默认模型)。([#11891](https://github.com/NousResearch/hermes-agent/pull/11891), [#11900](https://github.com/NousResearch/hermes-agent/pull/11900))
- **仪表板插件系统 + 实时主题切换** — Web 仪表板现可扩展。第三方插件可添加自定义标签页、小组件和视图,无需 Fork。配合实时切换的主题系统 —— 主题现控制颜色、字体、布局和密度 —— 用户无需重载即可热换仪表板外观。CLI 已有的主题规范现已应用于 Web。([#10951](https://github.com/NousResearch/hermes-agent/pull/10951), [#10687](https://github.com/NousResearch/hermes-agent/pull/10687), [#14725](https://github.com/NousResearch/hermes-agent/pull/14725))
- **仪表板打磨** — i18n(英文 + 中文)、react-router 侧边栏布局、移动端响应式、Vercel 部署、每会话真实 API 调用跟踪,以及一键更新 + 网关重启按钮。([#9228](https://github.com/NousResearch/hermes-agent/pull/9228), [#9370](https://github.com/NousResearch/hermes-agent/pull/9370), [#9453](https://github.com/NousResearch/hermes-agent/pull/9453), [#10686](https://github.com/NousResearch/hermes-agent/pull/10686), [#13526](https://github.com/NousResearch/hermes-agent/pull/13526), [#14004](https://github.com/NousResearch/hermes-agent/pull/14004) — @austinpickett + @DeployFaith + Teknium)
---
## 🏗️ 核心代理与架构
### 传输层(新增)
- **传输层 ABC** 将格式转换和 HTTP 传输从 `run_agent.py` 抽象到 `agent/transports/`([#13347](https://github.com/NousResearch/hermes-agent/pull/13347))
- **AnthropicTransport** — Anthropic Messages API 路径([#13366](https://github.com/NousResearch/hermes-agent/pull/13366), @kshitijk4poor)
- **ChatCompletionsTransport** — 兼容 OpenAI 提供商的默认路径([#13805](https://github.com/NousResearch/hermes-agent/pull/13805))
- **ResponsesApiTransport** — OpenAI Responses API + Codex build_kwargs 连接([#13430](https://github.com/NousResearch/hermes-agent/pull/13430), @kshitijk4poor)
- **BedrockTransport** — AWS Bedrock Converse API 传输([#13814](https://github.com/NousResearch/hermes-agent/pull/13814))
### 提供商与模型支持
- **原生 AWS Bedrock 提供商** 通过 Converse API([#10549](https://github.com/NousResearch/hermes-agent/pull/10549))
- **NVIDIA NIM 原生提供商**(#11703 的 salvage)([#11774](https://github.com/NousResearch/hermes-agent/pull/11774))
- **Arcee AI 直接提供商**([#9276](https://github.com/NousResearch/hermes-agent/pull/9276))
- **Step Plan 提供商**(#6005 的 salvage)([#13893](https://github.com/NousResearch/hermes-agent/pull/13893), @kshitijk4poor)
- **Google Gemini CLI OAuth** 推理提供商([#11270](https://github.com/NousResearch/hermes-agent/pull/11270))
- **Vercel ai-gateway** 支持定价、归因和动态发现([#13223](https://github.com/NousResearch/hermes-agent/pull/13223), @jerilynzheng)
- **通过 Codex OAuth 使用 GPT-5.5** 模型选择器中支持实时模型发现([#14720](https://github.com/NousResearch/hermes-agent/pull/14720))
- **Gemini 通过原生 AI Studio API 路由**([#12674](https://github.com/NousResearch/hermes-agent/pull/12674))
- **xAI Grok 升级至 Responses API**([#10783](https://github.com/NousResearch/hermes-agent/pull/10783))
- **Ollama 改进** — 云提供商支持、GLM 续写、`think=false` 控制、替代品消毒、`/v1` 提示([#10782](https://github.com/NousResearch/hermes-agent/pull/10782))
- **Kimi K2.6** 支持 OpenRouter、Nous Portal、原生 Kimi 及 HuggingFace([#13148](https://github.com/NousResearch/hermes-agent/pull/13148), [#13152](https://github.com/NousResearch/hermes-agent/pull/13152), [#13169](https://github.com/NousResearch/hermes-agent/pull/13169))
- **Kimi K2.5** 晋升至所有模型建议列表首位([#11745](https://github.com/NousResearch/hermes-agent/pull/11745), @kshitijk4poor)
- **Xiaomi MiMo v2.5-pro + v2.5** 支持 OpenRouter、Nous Portal 及原生([#14184](https://github.com/NousResearch/hermes-agent/pull/14184), [#14635](https://github.com/NousResearch/hermes-agent/pull/14635), @kshitijk4poor)
- **GLM-5V-Turbo** 用于编码规划([#9907](https://github.com/NousResearch/hermes-agent/pull/9907))
- **Claude Opus 4.7** 加入 Nous Portal 目录([#11398](https://github.com/NousResearch/hermes-agent/pull/11398))
- **OpenRouter elephant-alpha** 加入精选列表([#9378](https://github.com/NousResearch/hermes-agent/pull/9378))
- **OpenCode-Go** — Kimi K2.6 及 Qwen3.5/3.6 Plus 加入精选目录([#13429](https://github.com/NousResearch/hermes-agent/pull/13429))
- **minimax/minimax-m2.5:free** 加入 OpenRouter 目录([#13836](https://github.com/NousResearch/hermes-agent/pull/13836))
- **`/model` 合并 models.dev 条目** 用于小众提供商([#14221](https://github.com/NousResearch/hermes-agent/pull/14221))
- **每提供商 + 每模型 `request_timeout_seconds`** 配置([#12652](https://github.com/NousResearch/hermes-agent/pull/12652))
- **通过 `agent.api_max_retries` 配置 API 重试次数**([#14730](https://github.com/NousResearch/hermes-agent/pull/14730))
- **Lemonade 服务器的 ctx_size 上下文长度键**(#8536 的 salvage)([#14215](https://github.com/NousResearch/hermes-agent/pull/14215))
- **自定义提供商显示名称提示**([#9420](https://github.com/NousResearch/hermes-agent/pull/9420))
- **工具提供商选择上的推荐徽章**([#9929](https://github.com/NousResearch/hermes-agent/pull/9929))
- 修复:修正回退默认值中的 GPT-5 系列上下文长度([#9309](https://github.com/NousResearch/hermes-agent/pull/9309))
- 修复:在 Responses API 上将 `minimal` 推理强度限制为 `low`([#9429](https://github.com/NousResearch/hermes-agent/pull/9429))
- 修复:当 `store=False` 时从 Responses API 输入中剥离推理项 ID([#10217](https://github.com/NousResearch/hermes-agent/pull/10217))
- 修复:修正 OpenViking 账户默认值 + 在 `/new` 和压缩时提交会话([#10463](https://github.com/NousResearch/hermes-agent/pull/10463))
- 修复:Kimi `/coding` 思考块存活 + 空 reasoning_content + 块顺序(多个 PR)
- 修复:不将 Anthropic 思考发送至 api.kimi.com/coding([#13826](https://github.com/NousResearch/hermes-agent/pull/13826))
- 修复:为 Kimi/Moonshot 发送 `max_tokens`、`reasoning_effort` 和 `thinking`
- 修复:通过发出推理内容的 OpenAI 兼容提供商流式传输推理内容
### 代理循环与对话
- **`/steer <prompt>`** — 下一次工具调用后的运行中代理微调([#12116](https://github.com/NousResearch/hermes-agent/pull/12116))
- **Orchestrator 角色 + 可配置生成深度** 用于 `delegate_task`(默认扁平)([#13691](https://github.com/NousResearch/hermes-agent/pull/13691))
- **跨代理文件状态协调** 用于并发子代理([#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
- **压缩器智能折叠、去重、防抖动**,模板升级,硬化([#10088](https://github.com/NousResearch/hermes-agent/pull/10088))
- **压缩摘要尊重对话语言**([#12556](https://github.com/NousResearch/hermes-agent/pull/12556))
- **压缩模型在永久 503/404 时回退至主模型**([#10093](https://github.com/NousResearch/hermes-agent/pull/10093))
- **网关重启后自动继续中断的代理工作**([#9934](https://github.com/NousResearch/hermes-agent/pull/9934))
- **活动心跳** 防止错误的网关非活动超时([#10501](https://github.com/NousResearch/hermes-agent/pull/10501))
- **辅助模型 UI** — 每任务覆盖的专用界面([#11891](https://github.com/NousResearch/hermes-agent/pull/11891))
- **辅助自动路由默认对所有用户使用主模型**([#11900](https://github.com/NousResearch/hermes-agent/pull/11900))
- **Matrix、Mattermost、Feishu 的 PLATFORM_HINTS**([#14428](https://github.com/NousResearch/hermes-agent/pull/14428), @alt-glitch)
- 修复:压缩后重置重试计数器;停止污染对话历史([#10055](https://github.com/NousResearch/hermes-agent/pull/10055))
- 修复:打破压缩耗尽无限循环并自动重置会话([#10063](https://github.com/NousResearch/hermes-agent/pull/10063))
- 修复:陈旧代理超时、uv venv 检测、工具后空响应([#10065](https://github.com/NousResearch/hermes-agent/pull/10065))
- 修复:防止弱模型在实质性工具调用后返回空时过早退出循环([#10472](https://github.com/NousResearch/hermes-agent/pull/10472))
- 修复:保留启动前终端中断([#10504](https://github.com/NousResearch/hermes-agent/pull/10504))
- 修复:改进并发工具执行期间的中断响应([#10935](https://github.com/NousResearch/hermes-agent/pull/10935))
- 修复:单词换行微调器、可中断代理加入及 delegate_task 中断([#10940](https://github.com/NousResearch/hermes-agent/pull/10940))
- 修复:`/stop` 不再重置会话([#9224](https://github.com/NousResearch/hermes-agent/pull/9224))
- 修复:在 MCP 工具等待期间尊重中断([#9382](https://github.com/NousResearch/hermes-agent/pull/9382), @helix4u)
- 修复:重复重启后打破卡住的会话恢复循环([#9941](https://github.com/NousResearch/hermes-agent/pull/9941))
- 修复:空响应提示崩溃 + 占位符泄漏至 cron 目标([#11021](https://github.com/NousResearch/hermes-agent/pull/11021))
- 修复:流式光标消毒以防止消息截断(多个 PR)
- 修复:解析插件上下文引擎的 `context_length`([#9238](https://github.com/NousResearch/hermes-agent/pull/9238))
### 会话与记忆
- **启动时自动清理旧会话 + VACUUM state.db**([#13861](https://github.com/NousResearch/hermes-agent/pull/13861))
- **Honcho 大修** — 上下文注入、5 工具表面、成本安全、会话隔离([#10619](https://github.com/NousResearch/hermes-agent/pull/10619))
- **Hindsight 更丰富的会话作用域保留元数据**(#6290 的 salvage)([#13987](https://github.com/NousResearch/hermes-agent/pull/13987))
- 修复:去重记忆提供商工具以防止严格提供商返回 400([#10511](https://github.com/NousResearch/hermes-agent/pull/10511))
- 修复:从 `$HERMES_HOME/plugins/` 发现用户安装的记忆提供商([#10529](https://github.com/NousResearch/hermes-agent/pull/10529))
- 修复:向顺序工具执行路径添加 `on_memory_write` 桥接([#10507](https://github.com/NousResearch/hermes-agent/pull/10507))
- 修复:在 `/v1/responses` 中跨 `previous_response_id` 链保留 `session_id`([#10059](https://github.com/NousResearch/hermes-agent/pull/10059))
---
## 🖥️ 全新 Ink 基础 TUI
交互式 CLI 的完全 React/Ink 重写 — 通过 `hermes --tui` 或 `HERMES_TUI=1` 调用。约 310 次提交分布于 `ui-tui/` 和 `tui_gateway/`。
### TUI 基础
- 基于 Ink + Python JSON-RPC 后端的新 TUI
- `ui-tui/` 的 Prettier + ESLint + vitest 工具链
- 入口分离:`src/entry.tsx`(TTY 网关)与 `src/app.tsx`(状态机)
- 持久的 `_SlashWorker` 子进程用于斜杠命令分发
### UX 与功能
- **稳定选择键、/clear 确认、浅色主题预设**([#12312](https://github.com/NousResearch/hermes-agent/pull/12312), @OutThisLife)
- **状态栏中的 Git 分支** cwd 标签([#12305](https://github.com/NousResearch/hermes-agent/pull/12305), @OutThisLife)
- **FaceTicker 中的每轮经过秒表 + done-in 系统行**([#13105](https://github.com/NousResearch/hermes-agent/pull/13105), @OutThisLife)
- **子代理生成可观测性覆盖层**([#14045](https://github.com/NousResearch/hermes-agent/pull/14045), @OutThisLife)
- **状态栏中的每提示经过秒表**([#12948](https://github.com/NousResearch/hermes-agent/pull/12948))
- 滚动时冻结的粘性编辑器
- 支持跨 SSH 会话复制的 OSC-52 剪贴板
- 虚拟化历史渲染以提升性能
- 通过 `complete.slash` RPC 实现斜杠命令自动补全
- 通过 `complete.path` RPC 实现路径自动补全
- 数周内修复了数十个调整大小/残影/粘性提示问题
### 结构重构
- 将 `app.tsx` 分解为 `app/event-handler`、`app/slash-handler`、`app/stores`、`app/hooks`([#14640](https://github.com/NousResearch/hermes-agent/pull/14640) 及周边)
- 组件拆分:`branding.tsx`、`markdown.tsx`、`prompts.tsx`、`sessionPicker.tsx`、`messageLine.tsx`、`thinking.tsx`、`maskedPrompt.tsx`
- 钩子拆分:`useCompletion`、`useInputHistory`、`useQueue`、`useVirtualHistory`
---
## 📱 消息平台(网关)
### 新平台
- **QQBot(第 17 个平台)** — QQ 官方 API v2 适配器,支持 QR 设置、流式传输、包拆分([#9364](https://github.com/NousResearch/hermes-agent/pull/9364), [#11831](https://github.com/NousResearch/hermes-agent/pull/11831))
### Telegram
- **专用 `TELEGRAM_PROXY` 环境变量 + config.yaml 代理支持**(关闭 #9414, #6530, #9074, #7786)([#10681](https://github.com/NousResearch/hermes-agent/pull/10681))
- **Telegram 群的 `ignored_threads` 配置**([#9530](https://github.com/NousResearch/hermes-agent/pull/9530))
- **禁用链接预览的配置选项**(关闭 #8728)([#10610](https://github.com/NousResearch/hermes-agent/pull/10610))
- **Markdown 表格自动包装** 至代码块([#11794](https://github.com/NousResearch/hermes-agent/pull/11794))
- 修复:防止流任务取消时重复回复([#9319](https://github.com/NousResearch/hermes-agent/pull/9319))
- 修复:防止流式光标(▉)作为独立消息出现([#9538](https://github.com/NousResearch/hermes-agent/pull/9538))
- 修复:重试瞬时工具发送 + 冷启动预算([#10947](https://github.com/NousResearch/hermes-agent/pull/10947))
- 修复:`send_exec_approval` 中的 Markdown 特殊字符转义
- 修复:MarkdownV2 链接转换中 URL 的括号
- 修复:模型切换中的 Unicode 破折号标准化(关闭 iOS 智能标点问题)
- 众多平台提示/流式/会话密钥修复
### Discord
- **论坛频道支持**(#10145 的 salvage + 媒体 + 打磨)([#11920](https://github.com/NousResearch/hermes-agent/pull/11920))
- **`DISCORD_ALLOWED_ROLES`** 用于基于角色的访问控制([#11608](https://github.com/NousResearch/hermes-agent/pull/11608))
- **禁用斜杠命令的配置选项**(#13130 的 salvage)([#14315](https://github.com/NousResearch/hermes-agent/pull/14315))
- **原生 `send_animation`** 用于内联 GIF 播放([#10283](https://github.com/NousResearch/hermes-agent/pull/10283))
- **`send_message` Discord 媒体附件**([#10246](https://github.com/NousResearch/hermes-agent/pull/10246))
- **`/skill` 命令组** 含类别子命令([#9909](https://github.com/NousResearch/hermes-agent/pull/9909))
- **从消息引用提取回复文本**([#9781](https://github.com/NousResearch/hermes-agent/pull/9781))
### Feishu
- **智能回复文档评论** 三级访问控制([#11898](https://github.com/NousResearch/hermes-agent/pull/11898))
- **通过反应显示处理状态** 于用户消息([#12927](https://github.com/NousResearch/hermes-agent/pull/12927))
- **保留 @提及上下文** 供代理消费(#13874 的 salvage)([#14167](https://github.com/NousResearch/hermes-agent/pull/14167))
### DingTalk
- **`require_mention` + `allowed_users` 管控**(与 Slack/Telegram/Discord 对齐)([#11564](https://github.com/NousResearch/hermes-agent/pull/11564))
- **QR 码设备流授权** 用于设置向导([#11574](https://github.com/NousResearch/hermes-agent/pull/11574))
- **AI 卡片流式、表情反应及媒体处理**(#10985 的 salvage)([#11910](https://github.com/NousResearch/hermes-agent/pull/11910))
### WhatsApp
- **`send_voice`** — 原生音频消息发送([#13002](https://github.com/NousResearch/hermes-agent/pull/13002))
- **`dm_policy` 和 `group_policy`** 与 WeCom/Weixin/QQ 适配器对齐([#13151](https://github.com/NousResearch/hermes-agent/pull/13151))
### WeCom / Weixin
- **WeCom QR 扫描机器人创建 + 交互式设置向导**(#13923 的 salvage)([#13961](https://github.com/NousResearch/hermes-agent/pull/13961))
### Signal
- **通过 `send_message` 支持媒体发送**([#13178](https://github.com/NousResearch/hermes-agent/pull/13178))
### Slack
- **默认 DM 每线程会话**([#10987](https://github.com/NousResearch/hermes-agent/pull/10987))
### BlueBubbles (iMessage)
- 群聊会话分离、webhook 注册及认证修复([#9806](https://github.com/NousResearch/hermes-agent/pull/9806))
### 网关核心
- **网关代理模式** — 将消息转发至远程 API 服务器([#9787](https://github.com/NousResearch/hermes-agent/pull/9787))
- **每频道临时提示**(Discord、Telegram、Slack、Mattermost)([#10564](https://github.com/NousResearch/hermes-agent/pull/10564))
- **原生公开插件斜杠命令** 于所有平台 + 具备决策能力的命令钩子([#14175](https://github.com/NousResearch/hermes-agent/pull/14175))
- **支持文档/归档扩展名** 于 MEDIA: 标签提取(#8255 的 salvage)([#14307](https://github.com/NousResearch/hermes-agent/pull/14307))
- **在 MEDIA: 标签提取中识别 `.pdf`**([#13683](https://github.com/NousResearch/hermes-agent/pull/13683))
- **`gateway start` 和 `restart` 的 `--all` 标志**([#10043](https://github.com/NousResearch/hermes-agent/pull/10043))
- **网关关闭时通知活跃会话** + 更新健康检查([#9850](https://github.com/NousResearch/hermes-agent/pull/9850))
- **通过终端阻止代理自毁网关**(关闭 #6666)([#9895](https://github.com/NousResearch/hermes-agent/pull/9895))
- 修复:抑制中断和流式拥塞控制时的重复回复([#10235](https://github.com/NousResearch/hermes-agent/pull/10235))
- 修复:一次性任务后关闭临时代理([#11028](https://github.com/NousResearch/hermes-agent/pull/11028), @kshitijk4poor)
- 修复:代理运行时用户消息的忙碌会话确认([#10068](https://github.com/NousResearch/hermes-agent/pull/10068))
- 修复:将监视模式通知路由至原始会话([#10460](https://github.com/NousResearch/hermes-agent/pull/10460))
- 修复:在执行器线程中保留通知上下文([#10921](https://github.com/NousResearch/hermes-agent/pull/10921), @kshitijk4poor)
- 修复:避免中断长任务后重复回复([#11018](https://github.com/NousResearch/hermes-agent/pull/11018))
- 修复:清理时取消链接陈旧的 PID + 锁文件
- 修复:`--replace` 接管后强制取消链接陈旧的 PID 文件
---
## 🔧 工具系统
### 插件接口(重大扩展)
- **`register_command()`** — 插件现可添加斜杠命令([#10626](https://github.com/NousResearch/hermes-agent/pull/10626))
- **`dispatch_tool()`** — 插件可从其代码调用工具([#10763](https://github.com/NousResearch/hermes-agent/pull/10763))
- **`pre_tool_call` 阻止** — 插件可否决工具执行([#9377](https://github.com/NousResearch/hermes-agent/pull/9377))
- **`transform_tool_result`** — 插件通用重写工具结果([#12972](https://github.com/NousResearch/hermes-agent/pull/12972))
- **`transform_terminal_output`** — 插件重写终端工具输出([#12929](https://github.com/NousResearch/hermes-agent/pull/12929))
- **插件技能捆绑的命名空间技能注册**([#9786](https://github.com/NousResearch/hermes-agent/pull/9786))
- **默认可选 + 捆绑磁盘清理插件**(#12212 的 salvage)([#12944](https://github.com/NousResearch/hermes-agent/pull/12944))
- **可插拔 `image_gen` 后端 + OpenAI 提供商**([#13799](https://github.com/NousResearch/hermes-agent/pull/13799))
- **`openai-codex` image_gen 插件**(通过 Codex OAuth 的 gpt-image-2)([#14317](https://github.com/NousResearch/hermes-agent/pull/14317))
- **Shell 钩子** — 将 Shell 脚本作为钩子回调连接([#13296](https://github.com/NousResearch/hermes-agent/pull/13296))
### 浏览器
- **`browser_cdp` 原始 DevTools 协议直通**([#12369](https://github.com/NousResearch/hermes-agent/pull/12369))
- Camofox 硬化 + 跨窗口连接稳定性
### 执行代码
- **项目/严格执行模式**(默认:项目)([#11971](https://github.com/NousResearch/hermes-agent/pull/11971))
### 图像生成
- **多模型 FAL 支持** 带 `hermes tools` 选择器([#11265](https://github.com/NousResearch/hermes-agent/pull/11265))
- **Recraft V3 → V4 Pro、Nano Banana → Pro 升级**([#11406](https://github.com/NousResearch/hermes-agent/pull/11406))
- **FAL 目录中的 GPT Image 2**([#13677](https://github.com/NousResearch/hermes-agent/pull/13677))
- **xAI 图像生成提供商**(grok-imagine-image)([#14765](https://github.com/NousResearch/hermes-agent/pull/14765))
### TTS / STT / 语音
- **Google Gemini TTS 提供商**([#11229](https://github.com/NousResearch/hermes-agent/pull/11229))
- **xAI Grok STT 提供商**([#14473](https://github.com/NousResearch/hermes-agent/pull/14473))
- **xAI TTS**(随 Responses API 升级发布)([#10783](https://github.com/NousResearch/hermes-agent/pull/10783))
- **KittenTTS 本地提供商**(#2109 的 salvage)([#13395](https://github.com/NousResearch/hermes-agent/pull/13395))
- **CLI 录制提示音切换**([#13247](https://github.com/NousResearch/hermes-agent/pull/13247), @helix4u)
### Webhook / Cron
- **Webhook 直送模式** — 零 LLM 推送通知([#12473](https://github.com/NousResearch/hermes-agent/pull/12473))
- **Cron `wakeAgent` 门控** — 脚本可完全跳过代理([#12373](https://github.com/NousResearch/hermes-agent/pull/12373))
- **Cron 每作业 `enabled_toolsets`** — 限制每作业令牌开销与成本([#14767](https://github.com/NousResearch/hermes-agent/pull/14767))
### 委托
- **Orchestrator 角色** + 可配置生成深度(默认扁平)([#13691](https://github.com/NousResearch/hermes-agent/pull/13691))
- **跨代理文件状态协调**([#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
### 文件 / 补丁
- **`patch` — 补丁不匹配时“是否指?”反馈**([#13435](https://github.com/NousResearch/hermes-agent/pull/13435))
### API 服务器
- **流式 `/v1/responses` SSE 工具事件**(#9779 的 salvage)([#10049](https://github.com/NousResearch/hermes-agent/pull/10049))
- **`/v1/chat/completions` 和 `/v1/responses` 上的内联图像输入**([#12969](https://github.com/NousResearch/hermes-agent/pull/12969))
### Docker / Podman
- **入门级 Podman 支持** — `find_docker()` + 无根入口点([#10066](https://github.com/NousResearch/hermes-agent/pull/10066))
- **Docker 镜像中添加 docker-cli**(#10096 的 salvage)([#14232](https://github.com/NousResearch/hermes-agent/pull/14232))
- **拆卸时文件同步回主机**(#8189 的 salvage + 硬化)([#11291](https://github.com/NousResearch/hermes-agent/pull/11291))
### MCP
- 窗口期内 12 项 MCP 改进(状态、超时处理、工具调用转发等)
---
## 🧩 技能生态系统
### 技能系统
- **插件捆绑的命名空间技能注册**([#9786](https://github.com/NousResearch/hermes-agent/pull/9786))
- **`hermes skills reset`** 解除捆绑技能卡顿([#11468](https://github.com/NousResearch/hermes-agent/pull/11468))
- **技能守卫 opt-in** — `config.skills.guard_agent_created`(默认关闭)([#14557](https://github.com/NousResearch/hermes-agent/pull/14557))
- **捆绑技能脚本开箱即用**([#13384](https://github.com/NousResearch/hermes-agent/pull/13384))
- **`xitter` 替换为 `xurl`** — 官方 X API CLI([#12303](https://github.com/NousResearch/hermes-agent/pull/12303))
- **MiniMax-AI/cli 作为默认技能 tap**(#7501 的 salvage)([#14493](https://github.com/NousResearch/hermes-agent/pull/14493))
- **模糊 `@` 文件补全 + mtime 排序**([#9467](https://github.com/NousResearch/hermes-agent/pull/9467))
### 新技能
- **concept-diagrams**(#11045 的 salvage, @v1k22)([#11363](https://github.com/NousResearch/hermes-agent/pull/11363))
- **architecture-diagram**(Cocoon AI 移植)([#9906](https://github.com/NousResearch/hermes-agent/pull/9906))
- **pixel-art** 支持硬件调色板和视频动画([#12663](https://github.com/NousResearch/hermes-agent/pull/12663), [#12725](https://github.com/NousResearch/hermes-agent/pull/12725))
- **baoyu-comic**([#13257](https://github.com/NousResearch/hermes-agent/pull/13257), @JimLiu)
- **baoyu-infographic** — 21 种布局 × 21 种风格(#9901 的 salvage)([#12254](https://github.com/NousResearch/hermes-agent/pull/12254))
- **page-agent** — 在 Web 应用中嵌入阿里巴巴页面内 GUI 代理([#13976](https://github.com/NousResearch/hermes-agent/pull/13976))
- **fitness-nutrition** 可选技能 + 可选环境变量支持([#9355](https://github.com/NousResearch/hermes-agent/pull/9355))
- **drug-discovery** — ChEMBL、PubChem、OpenFDA、ADMET([#9443](https://github.com/NousResearch/hermes-agent/pull/9443))
- **touchdesigner-mcp**(#10081 的 salvage)([#12298](https://github.com/NousResearch/hermes-agent/pull/12298))
- **adversarial-ux-test** 可选技能(#2494 的 salvage, @omnissiah-comelse)([#13425](https://github.com/NousResearch/hermes-agent/pull/13425))
- **maps** — 新增 `guest_house`、`camp_site` 及双重密钥面包店查找([#13398](https://github.com/NousResearch/hermes-agent/pull/13398))
- **llm-wiki** — 移植来源标记、源哈希和质量信号([#13700](https://github.com/NousResearch/hermes-agent/pull/13700))
---
## 📊 Web 仪表板
- **i18n(英文 + 中文)语言切换器**([#9453](https://github.com/NousResearch/hermes-agent/pull/9453))
- **实时切换主题系统**([#10687](https://github.com/NousResearch/hermes-agent/pull/10687))
- **仪表板插件系统** — 通过自定义标签页扩展 Web UI([#10951](https://github.com/NousResearch/hermes-agent/pull/10951))
- **react-router、侧边栏布局、粘性页眉、下拉组件**([#9370](https://github.com/NousResearch/hermes-agent/pull/9370), @austinpickett)
- **移动端响应式**([#9228](https://github.com/NousResearch/hermes-agent/pull/9228), @DeployFaith)
- **Vercel 部署**([#10686](https://github.com/NousResearch/hermes-agent/pull/10686), [#11061](https://github.com/NousResearch/hermes-agent/pull/11061), @austinpickett)
- **上下文窗口配置支持**([#9357](https://github.com/NousResearch/hermes-agent/pull/9357))
- **跨容器网关检测的 HTTP 健康探针**([#9894](https://github.com/NousResearch/hermes-agent/pull/9894))
- **更新 + 重启网关按钮**([#13526](https://github.com/NousResearch/hermes-agent/pull/13526), @austinpickett)
- **每会话真实 API 调用计数**(#10140 的 salvage)([#14004](https://github.com/NousResearch/hermes-agent/pull/14004))
---
## 🖱️ CLI 与用户体验
- **bash、zsh 和 fish 的动态 Shell 补全**([#9785](https://github.com/NousResearch/hermes-agent/pull/9785))
- **浅色主题皮肤 + 皮肤感知补全菜单**([#9461](https://github.com/NousResearch/hermes-agent/pull/9461))
- **批准和澄清提示上的数字键盘快捷键**([#13416](https://github.com/NousResearch/hermes-agent/pull/13416))
- **Markdown 剥离、紧凑多行预览、外部编辑器**([#12934](https://github.com/NousResearch/hermes-agent/pull/12934))
- **`--ignore-user-config` 和 `--ignore-rules` 标志**(移植 codex#18646)([#14277](https://github.com/NousResearch/hermes-agent/pull/14277))
- **`/usage` 中的账户限制部分**([#13428](https://github.com/NousResearch/hermes-agent/pull/13428))
- **Doctor:命令安装检查** 用于 `hermes` 二进制符号链接([#10112](https://github.com/NousResearch/hermes-agent/pull/10112))
- **ESC 取消秘密/sudo 提示**,更清晰的跳过消息([#9902](https://github.com/NousResearch/hermes-agent/pull/9902))
- 修复:代理面向文本使用 `display_hermes_home()` 而非硬编码 `~/.hermes`([#10285](https://github.com/NousResearch/hermes-agent/pull/10285))
- 修复:强制 `config.yaml` 为唯一 CWD 源 + 弃用 `.env` CWD 变量 + 添加 `hermes memory reset`([#11029](https://github.com/NousResearch/hermes-agent/pull/11029))
---
## 🔒 安全与可靠性
- **全局开关允许私有/内部 URL 解析**([#14166](https://github.com/NousResearch/hermes-agent/pull/14166))
- **通过终端阻止代理自毁网关**(关闭 #6666)([#9895](https://github.com/NousResearch/hermes-agent/pull/9895))
- **Telegram 回调授权** 于更新提示([#10536](https://github.com/NousResearch/hermes-agent/pull/10536))
- **新增 SECURITY.md**([#10532](https://github.com/NousResearch/hermes-agent/pull/10532), @I3eg1nner)
- **`hermes update` 期间警告遗留 hermes.service 单元**([#11918](https://github.com/NousResearch/hermes-agent/pull/11918))
- **`api_messages`/`reasoning_content` 的完整 ASCII 区域 UnicodeEncodeError 恢复**(关闭 #6843)([#10537](https://github.com/NousResearch/hermes-agent/pull/10537))
- **`clear_session_vars` 后防止陈旧 `os.environ` 泄露**([#10527](https://github.com/NousResearch/hermes-agent/pull/10527))
- **防止代理在后台进程时挂起** 通过终端工具([#10584](https://github.com/NousResearch/hermes-agent/pull/10584))
- 窗口期内众多较小的会话恢复、中断、流式和内存竞争修复
---
## 🐛 值得注意的错误修复
本窗口期 `fix:` 类别覆盖 482 个 PR。亮点:
- 从 Matrix、Telegram、WhatsApp、Discord 过滤流式光标伪影(多个 PR)
- 从网关流消费者过滤 ` `<thought>` 块([#9408](https://github.com/NousResearch/hermes-agent/pull/9408))
- 网关 display.streaming 根配置覆盖回归([#9799](https://github.com/NousResearch/hermes-agent/pull/9799))
- 上下文 `session_search` 将限制强制转换为整数(防止 TypeError)([#10522](https://github.com/NousResearch/hermes-agent/pull/10522))
- 记忆工具在 `fcntl` 不可用时保持可用(Windows)([#9783](https://github.com/NousResearch/hermes-agent/pull/9783))
- 轨迹压缩器凭证从 `HERMES_HOME/.env` 加载([#9632](https://github.com/NousResearch/hermes-agent/pull/9632), @Dusk1e)
- `@_context_completions` 不再在 `@` 提及时崩溃([#9683](https://github.com/NousResearch/hermes-agent/pull/9683), @kshitijk4poor)
- 群组会话 `user_id` 在关闭通知中不再被视为 `thread_id`([#10546](https://github.com/NousResearch/hermes-agent/pull/10546))
- Telegram `platform_hint` — Markdown 受支持(关闭 #8261)([#10612](https://github.com/NousResearch/hermes-agent/pull/10612))
- Doctor 检查修复 Kimi China 凭证
- 流式:当评论消息发送时不抑制最终响应([#10540](https://github.com/NousResearch/hermes-agent/pull/10540))
- 快速 Telegram 后续不再被截断
---
## 🧪 测试与 CI
- **PR 上的贡献者归属 CI 检查**([#9376](https://github.com/NousResearch/hermes-agent/pull/9376))
- 密封测试并行性(`scripts/run_tests.sh`)在本窗口期保持
- 传输层重构后测试数量稳定;CI 矩阵在传输层推出期间保持绿色
---
## 📚 文档
- 用户指南中的 Atropos + wandb 链接
- ACP / VS Code / Zed / JetBrains 集成文档刷新
- Webhook 订阅文档更新以支持直送模式
- 插件作者指南扩展,涵盖新钩子(`register_command`、`dispatch_tool`、`transform_tool_result`)
- 新增传输层开发者指南
- 网站从 README 中移除 Discussions 链接
---
## 👥 贡献者
### 核心
- **@teknium1** (Teknium)
### 顶级社区贡献者(按合并 PR 数)
- **@kshitijk4poor** — 49 个 PR · 传输层重构、Step Plan 提供商、Xiaomi MiMo v2.5 支持、众多网关修复、推广 Kimi K2.5、@提及崩溃修复
- **@OutThisLife** (Brooklyn) — 31 个 PR · TUI 打磨、状态栏 Git 分支、每轮秒表、稳定选择键、`/clear` 确认、浅色主题预设、子代理生成可观测性覆盖层
- **@helix4u** — 11 个 PR · 语音 CLI 录制提示音、MCP 工具中断处理、各类稳定性修复
- **@austinpickett** — 8 个 PR · 仪表板 react-router + 侧边栏 + 粘性页眉 + 下拉菜单、Vercel 部署、更新 + 重启按钮
- **@alt-glitch** — 8 个 PR · Matrix/Mattermost/Feishu 的 PLATFORM_HINTS、Matrix 修复
- **@ethernet8023** — 3 个 PR
- **@benbarclay** — 3 个 PR
- **@Aslaaen** — 2 个 PR
### 亦作出贡献
@jerilynzheng (ai-gateway 定价), @JimLiu (baoyu-comic 技能), @Dusk1e (轨迹压缩器凭证), @DeployFaith (移动响应式仪表板), @LeonSGP43, @v1k22 (concept-diagrams), @omnissiah-comelse (adversarial-ux-test), @coekfung (Telegram MarkdownV2 可扩展块引用), @liftaris (TUI 提供商解析), @arihantsethia (技能分析仪表板), @topcheer + @xing8star (QQBot 基础), @kovyrin, @I3eg1nner (SECURITY.md), @PeterBerthelsen, @lengxii, @priveperfumes, @sjz-ks, @cuyua9, @Disaster-Terminator, @leozeli, @LehaoLin, @trevthefoolish, @loongfay, @MrNiceRicee, @WideLee, @bluefishs, @malaiwah, @bobashopcashier, @dsocolobsky, @iamagenius00, @IAvecilla, @aniruddhaadak80, @Es1la, @asheriif, @walli, @jquesnelle (原始 Tool Gateway 工作)。
### 所有贡献者(按字母顺序)
@0xyg3n, @10ishq, @A-afflatus, @Abnertheforeman, @admin28980, @adybag14-cyber, @akhater, @alexzhu0,
@AllardQuek, @alt-glitch, @aniruddhaadak80, @anna-oake, @anniesurla, @anthhub, @areu01or00, @arihantsethia,
@arthurbr11, @asheriif, @Aslaaen, @Asunfly, @austinpickett, @AviArora02-commits, @AxDSan, @azhengbot, @Bartok9,
@benbarclay, @bennytimz, @bernylinville, @bingo906, @binhnt92, @bkadish, @bluefishs, @bobashopcashier,
@brantzh6, @BrennerSpear, @brianclemens, @briandevans, @brooklynnicholson, @bugkill3r, @buray, @burtenshaw,
@cdanis, @cgarwood82, @ChimingLiu, @chongweiliu, @christopherwoodall, @coekfung, @cola-runner, @corazzione,
@counterposition, @cresslank, @cuyua9, @cypres0099, @danieldoderlein, @davetist, @davidvv, @DeployFaith,
@Dev-Mriganka, @devorun, @dieutx, @Disaster-Terminator, @dodo-reach, @draix, @DrStrangerUJN, @dsocolobsky,
@Dusk1e, @dyxushuai, @elkimek, @elmatadorgh, @emozilla, @entropidelic, @Erosika, @erosika, @Es1la, @etcircle,
@etherman-os, @ethernet8023, @fancydirty, @farion1231, @fatinghenji, @Fatty911, @fengtianyu88, @Feranmi10,
@flobo3, @francip, @fuleinist, @g-guthrie, @GenKoKo, @gianfrancopiana, @gnanam1990, @GuyCui, @haileymarshall,
@haimu0x, @handsdiff, @hansnow, @hedgeho9X, @helix4u, @hengm3467, @HenkDz, @heykb, @hharry11, @HiddenPuppy,
@honghua, @houko, @houziershi, @hsy5571616, @huangke19, @hxp-plus, @Hypn0sis, @I3eg1nner, @iacker,
@iamagenius00, @IAvecilla, @iborazzi, @Ifkellx, @ifrederico, @imink, @isaachuangGMICLOUD, @ismell0992-afk,
@j0sephz, @Jaaneek, @jackjin1997, @JackTheGit, @jaffarkeikei, @jerilynzheng, @JiaDe-Wu, @Jiawen-lee, @JimLiu,
@jinzheng8115, @jneeee, @jplew, @jquesnelle, @Julientalbot, @Junass1, @jvcl, @kagura-agent, @keifergu,
@kevinskysunny, @keyuyuan, @konsisumer, @kovyrin, @kshitijk4poor, @leeyang1990, @LehaoLin, @lengxii,
@LeonSGP43, @leozeli, @li0near, @liftaris, @Lind3ey, @Linux2010, @liujinkun2025, @LLQWQ, @Llugaes, @lmoncany,
@longsizhuo, @lrawnsley, @Lubrsy706, @lumenradley, @luyao618, @lvnilesh, @LVT382009, @m0n5t3r, @Magaav,
@MagicRay1217, @malaiwah, @manuelschipper, @Marvae, @MassiveMassimo, @mavrickdeveloper, @maxchernin, @memosr,
@meng93, @mengjian-github, @MestreY0d4-Uninter, @Mibayy, @MikeFac, @mikewaters, @milkoor, @minorgod,
@MrNiceRicee, @ms-alan, @mvanhorn, @n-WN, @N0nb0at, @Nan93, @NIDNASSER-Abdelmajid, @nish3451, @niyoh120,
@nocoo, @nosleepcassette, @NousResearch, @ogzerber, @omnissiah-comelse, @Only-Code-A, @opriz, @OwenYWT, @pedh,
@pefontana, @PeterBerthelsen, @phpoh, @pinion05, @plgonzalezrx8, @pradeep7127, @priveperfumes,
@projectadmin-dev, @PStarH, @rnijhara, @Roy-oss1, @roytian1217, @RucchiZ, @Ruzzgar, @RyanLee-Dev, @Salt-555,
@Sanjays2402, @sgaofen, @sharziki, @shenuu, @shin4, @SHL0MS, @shushuzn, @sicnuyudidi, @simon-gtcl,
@simon-marcus, @sirEven, @Sisyphus, @sjz-ks, @snreynolds, @Societus, @Somme4096, @sontianye, @sprmn24,
@StefanIsMe, @stephenschoettler, @Swift42, @taeng0204, @taeuk178, @tannerfokkens-maker, @TaroballzChen,
@ten-ltw, @teyrebaz33, @Tianworld, @topcheer, @Tranquil-Flow, @trevthefoolish, @TroyMitchell911, @UNLINEARITY,
@v1k22, @vivganes, @vominh1919, @vrinek, @VTRiot, @WadydX, @walli, @wenhao7, @WhiteWorld, @WideLee, @wujhsu,
@WuTianyi123, @Wysie, @xandersbell, @xiaoqiang243, @xiayh0107, @xinpengdr, @Xowiek, @ycbai, @yeyitech, @ygd58,
@youngDoo, @yudaiyan, @Yukipukii1, @yule975, @yyq4193, @yzx9, @ZaynJarvis, @zhang9w0v5, @zhanggttry,
@zhangxicen, @zhongyueming1121, @zhouxiaoya12, @zons-zhaozhy
此外:@maelrx, @Marco Rutsch, @MaxsolcuCrypto, @Mind-Dragon, @Paul Bergeron, @say8hi, @whitehatjr1001。
---
**完整变更日志**:[v2026.4.13...v2026.4.23](https://github.com/NousResearch/hermes-agent/compare/v2026.4.13...v2026.4.23)
# Hermes Agent v0.11.0 (v2026.4.23)
**Release Date:** April 23, 2026
**Since v0.9.0:** 1,556 commits · 761 merged PRs · 1,314 files changed · 224,174 insertions · 29 community contributors (290 including co-authors)
> The Interface release — a full React/Ink rewrite of the interactive CLI, a pluggable transport architecture underneath every provider, native AWS Bedrock support, five new inference paths, a 17th messaging platform (QQBot), a dramatically expanded plugin surface, and GPT-5.5 via Codex OAuth.
This release also folds in all the highlights deferred from v0.10.0 (which shipped only the Nous Tool Gateway) — so it covers roughly two weeks of work across the whole stack.
---
## ✨ Highlights
- **New Ink-based TUI** — `hermes --tui` is now a full React/Ink rewrite of the interactive CLI, with a Python JSON-RPC backend (`tui_gateway`). Sticky composer, live streaming with OSC-52 clipboard support, stable picker keys, status bar with per-turn stopwatch and git branch, `/clear` confirm, light-theme preset, and a subagent spawn observability overlay. ~310 commits to `ui-tui/` + `tui_gateway/`. (@OutThisLife + Teknium)
- **Transport ABC + Native AWS Bedrock** — Format conversion and HTTP transport were extracted from `run_agent.py` into a pluggable `agent/transports/` layer. `AnthropicTransport`, `ChatCompletionsTransport`, `ResponsesApiTransport`, and `BedrockTransport` each own their own format conversion and API shape. Native AWS Bedrock support via the Converse API ships on top of the new abstraction. ([#10549](https://github.com/NousResearch/hermes-agent/pull/10549), [#13347](https://github.com/NousResearch/hermes-agent/pull/13347), [#13366](https://github.com/NousResearch/hermes-agent/pull/13366), [#13430](https://github.com/NousResearch/hermes-agent/pull/13430), [#13805](https://github.com/NousResearch/hermes-agent/pull/13805), [#13814](https://github.com/NousResearch/hermes-agent/pull/13814) — @kshitijk4poor + Teknium)
- **Five new inference paths** — Native NVIDIA NIM ([#11774](https://github.com/NousResearch/hermes-agent/pull/11774)), Arcee AI ([#9276](https://github.com/NousResearch/hermes-agent/pull/9276)), Step Plan ([#13893](https://github.com/NousResearch/hermes-agent/pull/13893)), Google Gemini CLI OAuth ([#11270](https://github.com/NousResearch/hermes-agent/pull/11270)), and Vercel ai-gateway with pricing + dynamic discovery ([#13223](https://github.com/NousResearch/hermes-agent/pull/13223) — @jerilynzheng). Plus Gemini routed through the native AI Studio API for better performance ([#12674](https://github.com/NousResearch/hermes-agent/pull/12674)).
- **GPT-5.5 over Codex OAuth** — OpenAI's new GPT-5.5 reasoning model is now available through your ChatGPT Codex OAuth, with live model discovery wired into the model picker so new OpenAI releases show up without catalog updates. ([#14720](https://github.com/NousResearch/hermes-agent/pull/14720))
- **QQBot — 17th supported platform** — Native QQBot adapter via QQ Official API v2, with QR scan-to-configure setup wizard, streaming cursor, emoji reactions, and DM/group policy gating that matches WeCom/Weixin parity. ([#9364](https://github.com/NousResearch/hermes-agent/pull/9364), [#11831](https://github.com/NousResearch/hermes-agent/pull/11831))
- **Plugin surface expanded** — Plugins can now register slash commands (`register_command`), dispatch tools directly (`dispatch_tool`), block tool execution from hooks (`pre_tool_call` can veto), rewrite tool results (`transform_tool_result`), transform terminal output (`transform_terminal_output`), ship image_gen backends, and add custom dashboard tabs. The bundled disk-cleanup plugin is opt-in by default as a reference implementation. ([#9377](https://github.com/NousResearch/hermes-agent/pull/9377), [#10626](https://github.com/NousResearch/hermes-agent/pull/10626), [#10763](https://github.com/NousResearch/hermes-agent/pull/10763), [#10951](https://github.com/NousResearch/hermes-agent/pull/10951), [#12929](https://github.com/NousResearch/hermes-agent/pull/12929), [#12944](https://github.com/NousResearch/hermes-agent/pull/12944), [#12972](https://github.com/NousResearch/hermes-agent/pull/12972), [#13799](https://github.com/NousResearch/hermes-agent/pull/13799), [#14175](https://github.com/NousResearch/hermes-agent/pull/14175))
- **`/steer` — mid-run agent nudges** — `/steer <prompt>` injects a note that the running agent sees after its next tool call, without interrupting the turn or breaking prompt cache. For when you want to course-correct an agent in-flight. ([#12116](https://github.com/NousResearch/hermes-agent/pull/12116))
- **Shell hooks** — Wire any shell script as a Hermes lifecycle hook (pre_tool_call, post_tool_call, on_session_start, etc.) without writing a Python plugin. ([#13296](https://github.com/NousResearch/hermes-agent/pull/13296))
- **Webhook direct-delivery mode** — Webhook subscriptions can now forward payloads straight to a platform chat without going through the agent — zero-LLM push notifications for alerting, uptime checks, and event streams. ([#12473](https://github.com/NousResearch/hermes-agent/pull/12473))
- **Smarter delegation** — Subagents now have an explicit `orchestrator` role that can spawn their own workers, with configurable `max_spawn_depth` (default flat). Concurrent sibling subagents share filesystem state through a file-coordination layer so they don't clobber each other's edits. ([#13691](https://github.com/NousResearch/hermes-agent/pull/13691), [#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
- **Auxiliary models — configurable UI + main-model-first** — `hermes model` has a dedicated "Configure auxiliary models" screen for per-task overrides (compression, vision, session_search, title_generation). `auto` routing now defaults to the main model for side tasks across all users (previously aggregator users were silently routed to a cheap provider-side default). ([#11891](https://github.com/NousResearch/hermes-agent/pull/11891), [#11900](https://github.com/NousResearch/hermes-agent/pull/11900))
- **Dashboard plugin system + live theme switching** — The web dashboard is now extensible. Third-party plugins can add custom tabs, widgets, and views without forking. Paired with a live-switching theme system — themes now control colors, fonts, layout, and density — so users can hot-swap the dashboard look without a reload. Same theming discipline the CLI has, now on the web. ([#10951](https://github.com/NousResearch/hermes-agent/pull/10951), [#10687](https://github.com/NousResearch/hermes-agent/pull/10687), [#14725](https://github.com/NousResearch/hermes-agent/pull/14725))
- **Dashboard polish** — i18n (English + Chinese), react-router sidebar layout, mobile-responsive, Vercel deployment, real per-session API call tracking, and one-click update + gateway restart buttons. ([#9228](https://github.com/NousResearch/hermes-agent/pull/9228), [#9370](https://github.com/NousResearch/hermes-agent/pull/9370), [#9453](https://github.com/NousResearch/hermes-agent/pull/9453), [#10686](https://github.com/NousResearch/hermes-agent/pull/10686), [#13526](https://github.com/NousResearch/hermes-agent/pull/13526), [#14004](https://github.com/NousResearch/hermes-agent/pull/14004) — @austinpickett + @DeployFaith + Teknium)
---
## 🏗️ Core Agent & Architecture
### Transport Layer (NEW)
- **Transport ABC** abstracts format conversion and HTTP transport from `run_agent.py` into `agent/transports/` ([#13347](https://github.com/NousResearch/hermes-agent/pull/13347))
- **AnthropicTransport** — Anthropic Messages API path ([#13366](https://github.com/NousResearch/hermes-agent/pull/13366), @kshitijk4poor)
- **ChatCompletionsTransport** — default path for OpenAI-compatible providers ([#13805](https://github.com/NousResearch/hermes-agent/pull/13805))
- **ResponsesApiTransport** — OpenAI Responses API + Codex build_kwargs wiring ([#13430](https://github.com/NousResearch/hermes-agent/pull/13430), @kshitijk4poor)
- **BedrockTransport** — AWS Bedrock Converse API transport ([#13814](https://github.com/NousResearch/hermes-agent/pull/13814))
### Provider & Model Support
- **Native AWS Bedrock provider** via Converse API ([#10549](https://github.com/NousResearch/hermes-agent/pull/10549))
- **NVIDIA NIM native provider** (salvage of #11703) ([#11774](https://github.com/NousResearch/hermes-agent/pull/11774))
- **Arcee AI direct provider** ([#9276](https://github.com/NousResearch/hermes-agent/pull/9276))
- **Step Plan provider** (salvage #6005) ([#13893](https://github.com/NousResearch/hermes-agent/pull/13893), @kshitijk4poor)
- **Google Gemini CLI OAuth** inference provider ([#11270](https://github.com/NousResearch/hermes-agent/pull/11270))
- **Vercel ai-gateway** with pricing, attribution, and dynamic discovery ([#13223](https://github.com/NousResearch/hermes-agent/pull/13223), @jerilynzheng)
- **GPT-5.5 over Codex OAuth** with live model discovery in the picker ([#14720](https://github.com/NousResearch/hermes-agent/pull/14720))
- **Gemini routed through native AI Studio API** ([#12674](https://github.com/NousResearch/hermes-agent/pull/12674))
- **xAI Grok upgraded to Responses API** ([#10783](https://github.com/NousResearch/hermes-agent/pull/10783))
- **Ollama improvements** — Cloud provider support, GLM continuation, `think=false` control, surrogate sanitization, `/v1` hint ([#10782](https://github.com/NousResearch/hermes-agent/pull/10782))
- **Kimi K2.6** across OpenRouter, Nous Portal, native Kimi, and HuggingFace ([#13148](https://github.com/NousResearch/hermes-agent/pull/13148), [#13152](https://github.com/NousResearch/hermes-agent/pull/13152), [#13169](https://github.com/NousResearch/hermes-agent/pull/13169))
- **Kimi K2.5** promoted to first position in all model suggestion lists ([#11745](https://github.com/NousResearch/hermes-agent/pull/11745), @kshitijk4poor)
- **Xiaomi MiMo v2.5-pro + v2.5** on OpenRouter, Nous Portal, and native ([#14184](https://github.com/NousResearch/hermes-agent/pull/14184), [#14635](https://github.com/NousResearch/hermes-agent/pull/14635), @kshitijk4poor)
- **GLM-5V-Turbo** for coding plan ([#9907](https://github.com/NousResearch/hermes-agent/pull/9907))
- **Claude Opus 4.7** in Nous Portal catalog ([#11398](https://github.com/NousResearch/hermes-agent/pull/11398))
- **OpenRouter elephant-alpha** in curated lists ([#9378](https://github.com/NousResearch/hermes-agent/pull/9378))
- **OpenCode-Go** — Kimi K2.6 and Qwen3.5/3.6 Plus in curated catalog ([#13429](https://github.com/NousResearch/hermes-agent/pull/13429))
- **minimax/minimax-m2.5:free** in OpenRouter catalog ([#13836](https://github.com/NousResearch/hermes-agent/pull/13836))
- **`/model` merges models.dev entries** for lesser-loved providers ([#14221](https://github.com/NousResearch/hermes-agent/pull/14221))
- **Per-provider + per-model `request_timeout_seconds`** config ([#12652](https://github.com/NousResearch/hermes-agent/pull/12652))
- **Configurable API retry count** via `agent.api_max_retries` ([#14730](https://github.com/NousResearch/hermes-agent/pull/14730))
- **ctx_size context length key** for Lemonade server (salvage #8536) ([#14215](https://github.com/NousResearch/hermes-agent/pull/14215))
- **Custom provider display name prompt** ([#9420](https://github.com/NousResearch/hermes-agent/pull/9420))
- **Recommendation badges** on tool provider selection ([#9929](https://github.com/NousResearch/hermes-agent/pull/9929))
- Fix: correct GPT-5 family context lengths in fallback defaults ([#9309](https://github.com/NousResearch/hermes-agent/pull/9309))
- Fix: clamp `minimal` reasoning effort to `low` on Responses API ([#9429](https://github.com/NousResearch/hermes-agent/pull/9429))
- Fix: strip reasoning item IDs from Responses API input when `store=False` ([#10217](https://github.com/NousResearch/hermes-agent/pull/10217))
- Fix: OpenViking correct account default + commit session on `/new` and compress ([#10463](https://github.com/NousResearch/hermes-agent/pull/10463))
- Fix: Kimi `/coding` thinking block survival + empty reasoning_content + block ordering (multiple PRs)
- Fix: don't send Anthropic thinking to api.kimi.com/coding ([#13826](https://github.com/NousResearch/hermes-agent/pull/13826))
- Fix: send `max_tokens`, `reasoning_effort`, and `thinking` for Kimi/Moonshot
- Fix: stream reasoning content through OpenAI-compatible providers that emit it
### Agent Loop & Conversation
- **`/steer <prompt>`** — mid-run agent nudges after next tool call ([#12116](https://github.com/NousResearch/hermes-agent/pull/12116))
- **Orchestrator role + configurable spawn depth** for `delegate_task` (default flat) ([#13691](https://github.com/NousResearch/hermes-agent/pull/13691))
- **Cross-agent file state coordination** for concurrent subagents ([#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
- **Compressor smart collapse, dedup, anti-thrashing**, template upgrade, hardening ([#10088](https://github.com/NousResearch/hermes-agent/pull/10088))
- **Compression summaries respect the conversation's language** ([#12556](https://github.com/NousResearch/hermes-agent/pull/12556))
- **Compression model falls back to main model** on permanent 503/404 ([#10093](https://github.com/NousResearch/hermes-agent/pull/10093))
- **Auto-continue interrupted agent work** after gateway restart ([#9934](https://github.com/NousResearch/hermes-agent/pull/9934))
- **Activity heartbeats** prevent false gateway inactivity timeouts ([#10501](https://github.com/NousResearch/hermes-agent/pull/10501))
- **Auxiliary models UI** — dedicated screen for per-task overrides ([#11891](https://github.com/NousResearch/hermes-agent/pull/11891))
- **Auxiliary auto routing defaults to main model** for all users ([#11900](https://github.com/NousResearch/hermes-agent/pull/11900))
- **PLATFORM_HINTS for Matrix, Mattermost, Feishu** ([#14428](https://github.com/NousResearch/hermes-agent/pull/14428), @alt-glitch)
- Fix: reset retry counters after compression; stop poisoning conversation history ([#10055](https://github.com/NousResearch/hermes-agent/pull/10055))
- Fix: break compression-exhaustion infinite loop and auto-reset session ([#10063](https://github.com/NousResearch/hermes-agent/pull/10063))
- Fix: stale agent timeout, uv venv detection, empty response after tools ([#10065](https://github.com/NousResearch/hermes-agent/pull/10065))
- Fix: prevent premature loop exit when weak models return empty after substantive tool calls ([#10472](https://github.com/NousResearch/hermes-agent/pull/10472))
- Fix: preserve pre-start terminal interrupts ([#10504](https://github.com/NousResearch/hermes-agent/pull/10504))
- Fix: improve interrupt responsiveness during concurrent tool execution ([#10935](https://github.com/NousResearch/hermes-agent/pull/10935))
- Fix: word-wrap spinner, interruptable agent join, and delegate_task interrupt ([#10940](https://github.com/NousResearch/hermes-agent/pull/10940))
- Fix: `/stop` no longer resets the session ([#9224](https://github.com/NousResearch/hermes-agent/pull/9224))
- Fix: honor interrupts during MCP tool waits ([#9382](https://github.com/NousResearch/hermes-agent/pull/9382), @helix4u)
- Fix: break stuck session resume loops after repeated restarts ([#9941](https://github.com/NousResearch/hermes-agent/pull/9941))
- Fix: empty response nudge crash + placeholder leak to cron targets ([#11021](https://github.com/NousResearch/hermes-agent/pull/11021))
- Fix: streaming cursor sanitization to prevent message truncation (multiple PRs)
- Fix: resolve `context_length` for plugin context engines ([#9238](https://github.com/NousResearch/hermes-agent/pull/9238))
### Session & Memory
- **Auto-prune old sessions + VACUUM state.db** at startup ([#13861](https://github.com/NousResearch/hermes-agent/pull/13861))
- **Honcho overhaul** — context injection, 5-tool surface, cost safety, session isolation ([#10619](https://github.com/NousResearch/hermes-agent/pull/10619))
- **Hindsight richer session-scoped retain metadata** (salvage of #6290) ([#13987](https://github.com/NousResearch/hermes-agent/pull/13987))
- Fix: deduplicate memory provider tools to prevent 400 on strict providers ([#10511](https://github.com/NousResearch/hermes-agent/pull/10511))
- Fix: discover user-installed memory providers from `$HERMES_HOME/plugins/` ([#10529](https://github.com/NousResearch/hermes-agent/pull/10529))
- Fix: add `on_memory_write` bridge to sequential tool execution path ([#10507](https://github.com/NousResearch/hermes-agent/pull/10507))
- Fix: preserve `session_id` across `previous_response_id` chains in `/v1/responses` ([#10059](https://github.com/NousResearch/hermes-agent/pull/10059))
---
## 🖥️ New Ink-based TUI
A full React/Ink rewrite of the interactive CLI — invoked via `hermes --tui` or `HERMES_TUI=1`. Shipped across ~310 commits to `ui-tui/` and `tui_gateway/`.
### TUI Foundations
- New TUI based on Ink + Python JSON-RPC backend
- Prettier + ESLint + vitest tooling for `ui-tui/`
- Entry split between `src/entry.tsx` (TTY gate) and `src/app.tsx` (state machine)
- Persistent `_SlashWorker` subprocess for slash command dispatch
### UX & Features
- **Stable picker keys, /clear confirm, light-theme preset** ([#12312](https://github.com/NousResearch/hermes-agent/pull/12312), @OutThisLife)
- **Git branch in status bar** cwd label ([#12305](https://github.com/NousResearch/hermes-agent/pull/12305), @OutThisLife)
- **Per-turn elapsed stopwatch in FaceTicker + done-in sys line** ([#13105](https://github.com/NousResearch/hermes-agent/pull/13105), @OutThisLife)
- **Subagent spawn observability overlay** ([#14045](https://github.com/NousResearch/hermes-agent/pull/14045), @OutThisLife)
- **Per-prompt elapsed stopwatch in status bar** ([#12948](https://github.com/NousResearch/hermes-agent/pull/12948))
- Sticky composer that freezes during scroll
- OSC-52 clipboard support for copy across SSH sessions
- Virtualized history rendering for performance
- Slash command autocomplete via `complete.slash` RPC
- Path autocomplete via `complete.path` RPC
- Dozens of resize/ghosting/sticky-prompt fixes landed through the week
### Structural Refactors
- Decomposed `app.tsx` into `app/event-handler`, `app/slash-handler`, `app/stores`, `app/hooks` ([#14640](https://github.com/NousResearch/hermes-agent/pull/14640) and surrounding)
- Component split: `branding.tsx`, `markdown.tsx`, `prompts.tsx`, `sessionPicker.tsx`, `messageLine.tsx`, `thinking.tsx`, `maskedPrompt.tsx`
- Hook split: `useCompletion`, `useInputHistory`, `useQueue`, `useVirtualHistory`
---
## 📱 Messaging Platforms (Gateway)
### New Platforms
- **QQBot (17th platform)** — QQ Official API v2 adapter with QR setup, streaming, package split ([#9364](https://github.com/NousResearch/hermes-agent/pull/9364), [#11831](https://github.com/NousResearch/hermes-agent/pull/11831))
### Telegram
- **Dedicated `TELEGRAM_PROXY` env var + config.yaml proxy support** (closes #9414, #6530, #9074, #7786) ([#10681](https://github.com/NousResearch/hermes-agent/pull/10681))
- **`ignored_threads` config** for Telegram groups ([#9530](https://github.com/NousResearch/hermes-agent/pull/9530))
- **Config option to disable link previews** (closes #8728) ([#10610](https://github.com/NousResearch/hermes-agent/pull/10610))
- **Auto-wrap markdown tables** in code blocks ([#11794](https://github.com/NousResearch/hermes-agent/pull/11794))
- Fix: prevent duplicate replies when stream task is cancelled ([#9319](https://github.com/NousResearch/hermes-agent/pull/9319))
- Fix: prevent streaming cursor (▉) from appearing as standalone messages ([#9538](https://github.com/NousResearch/hermes-agent/pull/9538))
- Fix: retry transient tool sends + cold-boot budget ([#10947](https://github.com/NousResearch/hermes-agent/pull/10947))
- Fix: Markdown special char escaping in `send_exec_approval`
- Fix: parentheses in URLs during MarkdownV2 link conversion
- Fix: Unicode dash normalization in model switch (closes iOS smart-punctuation issue)
- Many platform hint / streaming / session-key fixes
### Discord
- **Forum channel support** (salvage of #10145 + media + polish) ([#11920](https://github.com/NousResearch/hermes-agent/pull/11920))
- **`DISCORD_ALLOWED_ROLES`** for role-based access control ([#11608](https://github.com/NousResearch/hermes-agent/pull/11608))
- **Config option to disable slash commands** (salvage #13130) ([#14315](https://github.com/NousResearch/hermes-agent/pull/14315))
- **Native `send_animation`** for inline GIF playback ([#10283](https://github.com/NousResearch/hermes-agent/pull/10283))
- **`send_message` Discord media attachments** ([#10246](https://github.com/NousResearch/hermes-agent/pull/10246))
- **`/skill` command group** with category subcommands ([#9909](https://github.com/NousResearch/hermes-agent/pull/9909))
- **Extract reply text from message references** ([#9781](https://github.com/NousResearch/hermes-agent/pull/9781))
### Feishu
- **Intelligent reply on document comments** with 3-tier access control ([#11898](https://github.com/NousResearch/hermes-agent/pull/11898))
- **Show processing state via reactions** on user messages ([#12927](https://github.com/NousResearch/hermes-agent/pull/12927))
- **Preserve @mention context for agent consumption** (salvage #13874) ([#14167](https://github.com/NousResearch/hermes-agent/pull/14167))
### DingTalk
- **`require_mention` + `allowed_users` gating** (parity with Slack/Telegram/Discord) ([#11564](https://github.com/NousResearch/hermes-agent/pull/11564))
- **QR-code device-flow authorization** for setup wizard ([#11574](https://github.com/NousResearch/hermes-agent/pull/11574))
- **AI Cards streaming, emoji reactions, and media handling** (salvage of #10985) ([#11910](https://github.com/NousResearch/hermes-agent/pull/11910))
### WhatsApp
- **`send_voice`** — native audio message delivery ([#13002](https://github.com/NousResearch/hermes-agent/pull/13002))
- **`dm_policy` and `group_policy`** parity with WeCom/Weixin/QQ adapters ([#13151](https://github.com/NousResearch/hermes-agent/pull/13151))
### WeCom / Weixin
- **WeCom QR-scan bot creation + interactive setup wizard** (salvage #13923) ([#13961](https://github.com/NousResearch/hermes-agent/pull/13961))
### Signal
- **Media delivery support** via `send_message` ([#13178](https://github.com/NousResearch/hermes-agent/pull/13178))
### Slack
- **Per-thread sessions for DMs by default** ([#10987](https://github.com/NousResearch/hermes-agent/pull/10987))
### BlueBubbles (iMessage)
- Group chat session separation, webhook registration & auth fixes ([#9806](https://github.com/NousResearch/hermes-agent/pull/9806))
### Gateway Core
- **Gateway proxy mode** — forward messages to a remote API server ([#9787](https://github.com/NousResearch/hermes-agent/pull/9787))
- **Per-channel ephemeral prompts** (Discord, Telegram, Slack, Mattermost) ([#10564](https://github.com/NousResearch/hermes-agent/pull/10564))
- **Surface plugin slash commands** natively on all platforms + decision-capable command hook ([#14175](https://github.com/NousResearch/hermes-agent/pull/14175))
- **Support document/archive extensions in MEDIA: tag extraction** (salvage #8255) ([#14307](https://github.com/NousResearch/hermes-agent/pull/14307))
- **Recognize `.pdf` in MEDIA: tag extraction** ([#13683](https://github.com/NousResearch/hermes-agent/pull/13683))
- **`--all` flag for `gateway start` and `restart`** ([#10043](https://github.com/NousResearch/hermes-agent/pull/10043))
- **Notify active sessions on gateway shutdown** + update health check ([#9850](https://github.com/NousResearch/hermes-agent/pull/9850))
- **Block agent from self-destructing the gateway** via terminal (closes #6666) ([#9895](https://github.com/NousResearch/hermes-agent/pull/9895))
- Fix: suppress duplicate replies on interrupt and streaming flood control ([#10235](https://github.com/NousResearch/hermes-agent/pull/10235))
- Fix: close temporary agents after one-off tasks ([#11028](https://github.com/NousResearch/hermes-agent/pull/11028), @kshitijk4poor)
- Fix: busy-session ack when user messages during active agent run ([#10068](https://github.com/NousResearch/hermes-agent/pull/10068))
- Fix: route watch-pattern notifications to the originating session ([#10460](https://github.com/NousResearch/hermes-agent/pull/10460))
- Fix: preserve notify context in executor threads ([#10921](https://github.com/NousResearch/hermes-agent/pull/10921), @kshitijk4poor)
- Fix: avoid duplicate replies after interrupted long tasks ([#11018](https://github.com/NousResearch/hermes-agent/pull/11018))
- Fix: unlink stale PID + lock files on cleanup
- Fix: force-unlink stale PID file after `--replace` takeover
---
## 🔧 Tool System
### Plugin Surface (major expansion)
- **`register_command()`** — plugins can now add slash commands ([#10626](https://github.com/NousResearch/hermes-agent/pull/10626))
- **`dispatch_tool()`** — plugins can invoke tools from their code ([#10763](https://github.com/NousResearch/hermes-agent/pull/10763))
- **`pre_tool_call` blocking** — plugins can veto tool execution ([#9377](https://github.com/NousResearch/hermes-agent/pull/9377))
- **`transform_tool_result`** — plugins rewrite tool results generically ([#12972](https://github.com/NousResearch/hermes-agent/pull/12972))
- **`transform_terminal_output`** — plugins rewrite terminal tool output ([#12929](https://github.com/NousResearch/hermes-agent/pull/12929))
- **Namespaced skill registration** for plugin skill bundles ([#9786](https://github.com/NousResearch/hermes-agent/pull/9786))
- **Opt-in-by-default + bundled disk-cleanup plugin** (salvage #12212) ([#12944](https://github.com/NousResearch/hermes-agent/pull/12944))
- **Pluggable `image_gen` backends + OpenAI provider** ([#13799](https://github.com/NousResearch/hermes-agent/pull/13799))
- **`openai-codex` image_gen plugin** (gpt-image-2 via Codex OAuth) ([#14317](https://github.com/NousResearch/hermes-agent/pull/14317))
- **Shell hooks** — wire shell scripts as hook callbacks ([#13296](https://github.com/NousResearch/hermes-agent/pull/13296))
### Browser
- **`browser_cdp` raw DevTools Protocol passthrough** ([#12369](https://github.com/NousResearch/hermes-agent/pull/12369))
- Camofox hardening + connection stability across the window
### Execute Code
- **Project/strict execution modes** (default: project) ([#11971](https://github.com/NousResearch/hermes-agent/pull/11971))
### Image Generation
- **Multi-model FAL support** with picker in `hermes tools` ([#11265](https://github.com/NousResearch/hermes-agent/pull/11265))
- **Recraft V3 → V4 Pro, Nano Banana → Pro upgrades** ([#11406](https://github.com/NousResearch/hermes-agent/pull/11406))
- **GPT Image 2** in FAL catalog ([#13677](https://github.com/NousResearch/hermes-agent/pull/13677))
- **xAI image generation provider** (grok-imagine-image) ([#14765](https://github.com/NousResearch/hermes-agent/pull/14765))
### TTS / STT / Voice
- **Google Gemini TTS provider** ([#11229](https://github.com/NousResearch/hermes-agent/pull/11229))
- **xAI Grok STT provider** ([#14473](https://github.com/NousResearch/hermes-agent/pull/14473))
- **xAI TTS** (shipped with Responses API upgrade) ([#10783](https://github.com/NousResearch/hermes-agent/pull/10783))
- **KittenTTS local provider** (salvage of #2109) ([#13395](https://github.com/NousResearch/hermes-agent/pull/13395))
- **CLI record beep toggle** ([#13247](https://github.com/NousResearch/hermes-agent/pull/13247), @helix4u)
### Webhook / Cron
- **Webhook direct-delivery mode** — zero-LLM push notifications ([#12473](https://github.com/NousResearch/hermes-agent/pull/12473))
- **Cron `wakeAgent` gate** — scripts can skip the agent entirely ([#12373](https://github.com/NousResearch/hermes-agent/pull/12373))
- **Cron per-job `enabled_toolsets`** — cap token overhead + cost per job ([#14767](https://github.com/NousResearch/hermes-agent/pull/14767))
### Delegate
- **Orchestrator role** + configurable spawn depth (default flat) ([#13691](https://github.com/NousResearch/hermes-agent/pull/13691))
- **Cross-agent file state coordination** ([#13718](https://github.com/NousResearch/hermes-agent/pull/13718))
### File / Patch
- **`patch` — "did you mean?" feedback** when patch fails to match ([#13435](https://github.com/NousResearch/hermes-agent/pull/13435))
### API Server
- **Stream `/v1/responses` SSE tool events** (salvage #9779) ([#10049](https://github.com/NousResearch/hermes-agent/pull/10049))
- **Inline image inputs** on `/v1/chat/completions` and `/v1/responses` ([#12969](https://github.com/NousResearch/hermes-agent/pull/12969))
### Docker / Podman
- **Entry-level Podman support** — `find_docker()` + rootless entrypoint ([#10066](https://github.com/NousResearch/hermes-agent/pull/10066))
- **Add docker-cli to Docker image** (salvage #10096) ([#14232](https://github.com/NousResearch/hermes-agent/pull/14232))
- **File-sync back to host on teardown** (salvage of #8189 + hardening) ([#11291](https://github.com/NousResearch/hermes-agent/pull/11291))
### MCP
- 12 MCP improvements across the window (status, timeout handling, tool-call forwarding, etc.)
---
## 🧩 Skills Ecosystem
### Skill System
- **Namespaced skill registration** for plugin bundles ([#9786](https://github.com/NousResearch/hermes-agent/pull/9786))
- **`hermes skills reset`** to un-stick bundled skills ([#11468](https://github.com/NousResearch/hermes-agent/pull/11468))
- **Skills guard opt-in** — `config.skills.guard_agent_created` (default off) ([#14557](https://github.com/NousResearch/hermes-agent/pull/14557))
- **Bundled skill scripts runnable out of the box** ([#13384](https://github.com/NousResearch/hermes-agent/pull/13384))
- **`xitter` replaced with `xurl`** — the official X API CLI ([#12303](https://github.com/NousResearch/hermes-agent/pull/12303))
- **MiniMax-AI/cli as default skill tap** (salvage #7501) ([#14493](https://github.com/NousResearch/hermes-agent/pull/14493))
- **Fuzzy `@` file completions + mtime sorting** ([#9467](https://github.com/NousResearch/hermes-agent/pull/9467))
### New Skills
- **concept-diagrams** (salvage of #11045, @v1k22) ([#11363](https://github.com/NousResearch/hermes-agent/pull/11363))
- **architecture-diagram** (Cocoon AI port) ([#9906](https://github.com/NousResearch/hermes-agent/pull/9906))
- **pixel-art** with hardware palettes and video animation ([#12663](https://github.com/NousResearch/hermes-agent/pull/12663), [#12725](https://github.com/NousResearch/hermes-agent/pull/12725))
- **baoyu-comic** ([#13257](https://github.com/NousResearch/hermes-agent/pull/13257), @JimLiu)
- **baoyu-infographic** — 21 layouts × 21 styles (salvage #9901) ([#12254](https://github.com/NousResearch/hermes-agent/pull/12254))
- **page-agent** — embed Alibaba's in-page GUI agent in your webapp ([#13976](https://github.com/NousResearch/hermes-agent/pull/13976))
- **fitness-nutrition** optional skill + optional env var support ([#9355](https://github.com/NousResearch/hermes-agent/pull/9355))
- **drug-discovery** — ChEMBL, PubChem, OpenFDA, ADMET ([#9443](https://github.com/NousResearch/hermes-agent/pull/9443))
- **touchdesigner-mcp** (salvage of #10081) ([#12298](https://github.com/NousResearch/hermes-agent/pull/12298))
- **adversarial-ux-test** optional skill (salvage of #2494, @omnissiah-comelse) ([#13425](https://github.com/NousResearch/hermes-agent/pull/13425))
- **maps** — added `guest_house`, `camp_site`, and dual-key bakery lookup ([#13398](https://github.com/NousResearch/hermes-agent/pull/13398))
- **llm-wiki** — port provenance markers, source hashing, and quality signals ([#13700](https://github.com/NousResearch/hermes-agent/pull/13700))
---
## 📊 Web Dashboard
- **i18n (English + Chinese) language switcher** ([#9453](https://github.com/NousResearch/hermes-agent/pull/9453))
- **Live-switching theme system** ([#10687](https://github.com/NousResearch/hermes-agent/pull/10687))
- **Dashboard plugin system** — extend the web UI with custom tabs ([#10951](https://github.com/NousResearch/hermes-agent/pull/10951))
- **react-router, sidebar layout, sticky header, dropdown component** ([#9370](https://github.com/NousResearch/hermes-agent/pull/9370), @austinpickett)
- **Responsive for mobile** ([#9228](https://github.com/NousResearch/hermes-agent/pull/9228), @DeployFaith)
- **Vercel deployment** ([#10686](https://github.com/NousResearch/hermes-agent/pull/10686), [#11061](https://github.com/NousResearch/hermes-agent/pull/11061), @austinpickett)
- **Context window config support** ([#9357](https://github.com/NousResearch/hermes-agent/pull/9357))
- **HTTP health probe for cross-container gateway detection** ([#9894](https://github.com/NousResearch/hermes-agent/pull/9894))
- **Update + restart gateway buttons** ([#13526](https://github.com/NousResearch/hermes-agent/pull/13526), @austinpickett)
- **Real API call count per session** (salvages #10140) ([#14004](https://github.com/NousResearch/hermes-agent/pull/14004))
---
## 🖱️ CLI & User Experience
- **Dynamic shell completion for bash, zsh, and fish** ([#9785](https://github.com/NousResearch/hermes-agent/pull/9785))
- **Light-mode skins + skin-aware completion menus** ([#9461](https://github.com/NousResearch/hermes-agent/pull/9461))
- **Numbered keyboard shortcuts** on approval and clarify prompts ([#13416](https://github.com/NousResearch/hermes-agent/pull/13416))
- **Markdown stripping, compact multiline previews, external editor** ([#12934](https://github.com/NousResearch/hermes-agent/pull/12934))
- **`--ignore-user-config` and `--ignore-rules` flags** (port codex#18646) ([#14277](https://github.com/NousResearch/hermes-agent/pull/14277))
- **Account limits section in `/usage`** ([#13428](https://github.com/NousResearch/hermes-agent/pull/13428))
- **Doctor: Command Installation check** for `hermes` bin symlink ([#10112](https://github.com/NousResearch/hermes-agent/pull/10112))
- **ESC cancels secret/sudo prompts**, clearer skip messaging ([#9902](https://github.com/NousResearch/hermes-agent/pull/9902))
- Fix: agent-facing text uses `display_hermes_home()` instead of hardcoded `~/.hermes` ([#10285](https://github.com/NousResearch/hermes-agent/pull/10285))
- Fix: enforce `config.yaml` as sole CWD source + deprecate `.env` CWD vars + add `hermes memory reset` ([#11029](https://github.com/NousResearch/hermes-agent/pull/11029))
---
## 🔒 Security & Reliability
- **Global toggle to allow private/internal URL resolution** ([#14166](https://github.com/NousResearch/hermes-agent/pull/14166))
- **Block agent from self-destructing the gateway** via terminal (closes #6666) ([#9895](https://github.com/NousResearch/hermes-agent/pull/9895))
- **Telegram callback authorization** on update prompts ([#10536](https://github.com/NousResearch/hermes-agent/pull/10536))
- **SECURITY.md** added ([#10532](https://github.com/NousResearch/hermes-agent/pull/10532), @I3eg1nner)
- **Warn about legacy hermes.service units** during `hermes update` ([#11918](https://github.com/NousResearch/hermes-agent/pull/11918))
- **Complete ASCII-locale UnicodeEncodeError recovery** for `api_messages`/`reasoning_content` (closes #6843) ([#10537](https://github.com/NousResearch/hermes-agent/pull/10537))
- **Prevent stale `os.environ` leak** after `clear_session_vars` ([#10527](https://github.com/NousResearch/hermes-agent/pull/10527))
- **Prevent agent hang when backgrounding processes** via terminal tool ([#10584](https://github.com/NousResearch/hermes-agent/pull/10584))
- Many smaller session-resume, interrupt, streaming, and memory-race fixes throughout the window
---
## 🐛 Notable Bug Fixes
The `fix:` category in this window covers 482 PRs. Highlights:
- Streaming cursor artifacts filtered from Matrix, Telegram, WhatsApp, Discord (multiple PRs)
- `<think>` and `<thought>` blocks filtered from gateway stream consumers ([#9408](https://github.com/NousResearch/hermes-agent/pull/9408))
- Gateway display.streaming root-config override regression ([#9799](https://github.com/NousResearch/hermes-agent/pull/9799))
- Context `session_search` coerces limit to int (prevents TypeError) ([#10522](https://github.com/NousResearch/hermes-agent/pull/10522))
- Memory tool stays available when `fcntl` is unavailable (Windows) ([#9783](https://github.com/NousResearch/hermes-agent/pull/9783))
- Trajectory compressor credentials load from `HERMES_HOME/.env` ([#9632](https://github.com/NousResearch/hermes-agent/pull/9632), @Dusk1e)
- `@_context_completions` no longer crashes on `@` mention ([#9683](https://github.com/NousResearch/hermes-agent/pull/9683), @kshitijk4poor)
- Group session `user_id` no longer treated as `thread_id` in shutdown notifications ([#10546](https://github.com/NousResearch/hermes-agent/pull/10546))
- Telegram `platform_hint` — markdown is supported (closes #8261) ([#10612](https://github.com/NousResearch/hermes-agent/pull/10612))
- Doctor checks for Kimi China credentials fixed
- Streaming: don't suppress final response when commentary message is sent ([#10540](https://github.com/NousResearch/hermes-agent/pull/10540))
- Rapid Telegram follow-ups no longer get cut off
---
## 🧪 Testing & CI
- **Contributor attribution CI check** on PRs ([#9376](https://github.com/NousResearch/hermes-agent/pull/9376))
- Hermetic test parity (`scripts/run_tests.sh`) held across this window
- Test count stabilized post-Transport refactor; CI matrix held green through the transport rollout
---
## 📚 Documentation
- Atropos + wandb links in user guide
- ACP / VS Code / Zed / JetBrains integration docs refresh
- Webhook subscription docs updated for direct-delivery mode
- Plugin author guide expanded for new hooks (`register_command`, `dispatch_tool`, `transform_tool_result`)
- Transport layer developer guide added
- Website removed Discussions link from README
---
## 👥 Contributors
### Core
- **@teknium1** (Teknium)
### Top Community Contributors (by merged PR count)
- **@kshitijk4poor** — 49 PRs · Transport refactor (AnthropicTransport, ResponsesApiTransport), Step Plan provider, Xiaomi MiMo v2.5 support, numerous gateway fixes, promoted Kimi K2.5, @ mention crash fix
- **@OutThisLife** (Brooklyn) — 31 PRs · TUI polish, git branch in status bar, per-turn stopwatch, stable picker keys, `/clear` confirm, light-theme preset, subagent spawn observability overlay
- **@helix4u** — 11 PRs · Voice CLI record beep, MCP tool interrupt handling, assorted stability fixes
- **@austinpickett** — 8 PRs · Dashboard react-router + sidebar + sticky header + dropdown, Vercel deployment, update + restart buttons
- **@alt-glitch** — 8 PRs · PLATFORM_HINTS for Matrix/Mattermost/Feishu, Matrix fixes
- **@ethernet8023** — 3 PRs
- **@benbarclay** — 3 PRs
- **@Aslaaen** — 2 PRs
### Also contributing
@jerilynzheng (ai-gateway pricing), @JimLiu (baoyu-comic skill), @Dusk1e (trajectory compressor credentials), @DeployFaith (mobile-responsive dashboard), @LeonSGP43, @v1k22 (concept-diagrams), @omnissiah-comelse (adversarial-ux-test), @coekfung (Telegram MarkdownV2 expandable blockquotes), @liftaris (TUI provider resolution), @arihantsethia (skill analytics dashboard), @topcheer + @xing8star (QQBot foundation), @kovyrin, @I3eg1nner (SECURITY.md), @PeterBerthelsen, @lengxii, @priveperfumes, @sjz-ks, @cuyua9, @Disaster-Terminator, @leozeli, @LehaoLin, @trevthefoolish, @loongfay, @MrNiceRicee, @WideLee, @bluefishs, @malaiwah, @bobashopcashier, @dsocolobsky, @iamagenius00, @IAvecilla, @aniruddhaadak80, @Es1la, @asheriif, @walli, @jquesnelle (original Tool Gateway work).
### All Contributors (alphabetical)
@0xyg3n, @10ishq, @A-afflatus, @Abnertheforeman, @admin28980, @adybag14-cyber, @akhater, @alexzhu0,
@AllardQuek, @alt-glitch, @aniruddhaadak80, @anna-oake, @anniesurla, @anthhub, @areu01or00, @arihantsethia,
@arthurbr11, @asheriif, @Aslaaen, @Asunfly, @austinpickett, @AviArora02-commits, @AxDSan, @azhengbot, @Bartok9,
@benbarclay, @bennytimz, @bernylinville, @bingo906, @binhnt92, @bkadish, @bluefishs, @bobashopcashier,
@brantzh6, @BrennerSpear, @brianclemens, @briandevans, @brooklynnicholson, @bugkill3r, @buray, @burtenshaw,
@cdanis, @cgarwood82, @ChimingLiu, @chongweiliu, @christopherwoodall, @coekfung, @cola-runner, @corazzione,
@counterposition, @cresslank, @cuyua9, @cypres0099, @danieldoderlein, @davetist, @davidvv, @DeployFaith,
@Dev-Mriganka, @devorun, @dieutx, @Disaster-Terminator, @dodo-reach, @draix, @DrStrangerUJN, @dsocolobsky,
@Dusk1e, @dyxushuai, @elkimek, @elmatadorgh, @emozilla, @entropidelic, @Erosika, @erosika, @Es1la, @etcircle,
@etherman-os, @ethernet8023, @fancydirty, @farion1231, @fatinghenji, @Fatty911, @fengtianyu88, @Feranmi10,
@flobo3, @francip, @fuleinist, @g-guthrie, @GenKoKo, @gianfrancopiana, @gnanam1990, @GuyCui, @haileymarshall,
@haimu0x, @handsdiff, @hansnow, @hedgeho9X, @helix4u, @hengm3467, @HenkDz, @heykb, @hharry11, @HiddenPuppy,
@honghua, @houko, @houziershi, @hsy5571616, @huangke19, @hxp-plus, @Hypn0sis, @I3eg1nner, @iacker,
@iamagenius00, @IAvecilla, @iborazzi, @Ifkellx, @ifrederico, @imink, @isaachuangGMICLOUD, @ismell0992-afk,
@j0sephz, @Jaaneek, @jackjin1997, @JackTheGit, @jaffarkeikei, @jerilynzheng, @JiaDe-Wu, @Jiawen-lee, @JimLiu,
@jinzheng8115, @jneeee, @jplew, @jquesnelle, @Julientalbot, @Junass1, @jvcl, @kagura-agent, @keifergu,
@kevinskysunny, @keyuyuan, @konsisumer, @kovyrin, @kshitijk4poor, @leeyang1990, @LehaoLin, @lengxii,
@LeonSGP43, @leozeli, @li0near, @liftaris, @Lind3ey, @Linux2010, @liujinkun2025, @LLQWQ, @Llugaes, @lmoncany,
@longsizhuo, @lrawnsley, @Lubrsy706, @lumenradley, @luyao618, @lvnilesh, @LVT382009, @m0n5t3r, @Magaav,
@MagicRay1217, @malaiwah, @manuelschipper, @Marvae, @MassiveMassimo, @mavrickdeveloper, @maxchernin, @memosr,
@meng93, @mengjian-github, @MestreY0d4-Uninter, @Mibayy, @MikeFac, @mikewaters, @milkoor, @minorgod,
@MrNiceRicee, @ms-alan, @mvanhorn, @n-WN, @N0nb0at, @Nan93, @NIDNASSER-Abdelmajid, @nish3451, @niyoh120,
@nocoo, @nosleepcassette, @NousResearch, @ogzerber, @omnissiah-comelse, @Only-Code-A, @opriz, @OwenYWT, @pedh,
@pefontana, @PeterBerthelsen, @phpoh, @pinion05, @plgonzalezrx8, @pradeep7127, @priveperfumes,
@projectadmin-dev, @PStarH, @rnijhara, @Roy-oss1, @roytian1217, @RucchiZ, @Ruzzgar, @RyanLee-Dev, @Salt-555,
@Sanjays2402, @sgaofen, @sharziki, @shenuu, @shin4, @SHL0MS, @shushuzn, @sicnuyudidi, @simon-gtcl,
@simon-marcus, @sirEven, @Sisyphus, @sjz-ks, @snreynolds, @Societus, @Somme4096, @sontianye, @sprmn24,
@StefanIsMe, @stephenschoettler, @Swift42, @taeng0204, @taeuk178, @tannerfokkens-maker, @TaroballzChen,
@ten-ltw, @teyrebaz33, @Tianworld, @topcheer, @Tranquil-Flow, @trevthefoolish, @TroyMitchell911, @UNLINEARITY,
@v1k22, @vivganes, @vominh1919, @vrinek, @VTRiot, @WadydX, @walli, @wenhao7, @WhiteWorld, @WideLee, @wujhsu,
@WuTianyi123, @Wysie, @xandersbell, @xiaoqiang243, @xiayh0107, @xinpengdr, @Xowiek, @ycbai, @yeyitech, @ygd58,
@youngDoo, @yudaiyan, @Yukipukii1, @yule975, @yyq4193, @yzx9, @ZaynJarvis, @zhang9w0v5, @zhanggttry,
@zhangxicen, @zhongyueming1121, @zhouxiaoya12, @zons-zhaozhy
Also: @maelrx, @Marco Rutsch, @MaxsolcuCrypto, @Mind-Dragon, @Paul Bergeron, @say8hi, @whitehatjr1001.
---
**Full Changelog**: [v2026.4.13...v2026.4.23](https://github.com/NousResearch/hermes-agent/compare/v2026.4.13...v2026.4.23)