Agent Breaking Changes_

← Hermes Agent

Hermes Agent Hermes Agent v0.21.0 (v2026.8.31)

securitymodelpricing

2026-08-31 · official notes

Summary

Full notes

# Hermes Agent v0.21.0 (v2026.8.31)

**Release Date:** August 31, 2026
**Since v0.20.0:** ~5,800 commits · ~2,475 merged PRs · ~5,680 files changed · ~869,000 insertions · ~135,000 deletions · **~2,100 issues closed** · 760+ contributors

> **The Pantheon Release.** v0.20.0 made Hermes the herald — he spoke, and he carried word to other agents. In v0.21.0 the gods assemble. Bot Mode ships built into the desktop app: a society of named agents with their own faces and group chats, where your bots talk to each other — and to you — like a team, not a toolbox. Around that spine: cron jobs gained memory and continuity so scheduled agents actually learn between runs, subagents can be steered live mid-flight, the MCP surface became a real command center, and the agent can now drive the desktop's own browser. This release rolls up everything from the v0.20.1–v0.20.6 infrastructure patch tags — those windows are fully documented here.

---

## ✨ Highlights

- **Bot Mode — your agents become a society, built in** — Bot Mode is now a bundled, default-on part of the desktop app: every agent profile gets a name, a deterministic avatar face (with randomize/lock controls), and a place in a shared roster. Create Discord-style group chats where multiple bots and you talk in one room, @-mention any bot from the composer, and give rooms names and pictures. Before, "multi-agent" meant plumbing; now it looks like a chat app full of coworkers. ([#87886](https://github.com/NousResearch/hermes-agent/pull/87886), [#88243](https://github.com/NousResearch/hermes-agent/pull/88243), [#89386](https://github.com/NousResearch/hermes-agent/pull/89386), [#96726](https://github.com/NousResearch/hermes-agent/pull/96726) — @teknium1, @OutThisLife, @dokterdok)

- **`hermes peer` — bot-to-bot DMs between your agents** — Any Hermes agent can now message any other by handle, across profiles and gateways, from the CLI or from inside a conversation. Ask your research bot to hand findings to your coding bot and get the reply back where you can read it. Replies land in each agent's canonical Bot Chat, so conversations between agents are durable and inspectable, not fire-and-forget. ([#88725](https://github.com/NousResearch/hermes-agent/pull/88725), [#88178](https://github.com/NousResearch/hermes-agent/pull/88178), [#91487](https://github.com/NousResearch/hermes-agent/pull/91487) — @teknium1)

- **Cron jobs that remember** — Scheduled jobs stopped being goldfish. Cron agents now load and update persistent memory like every other agent, `continuity=true` carries each run's output into the next (so a monitor can dedupe against what it already reported), every job gets a durable notepad scratchpad, monitor-mode jobs skip the LLM entirely when nothing changed, and cron output can land in a bot's canonical Bot Chat — where the bot actually responds. Your 9am briefing job now knows what it told you yesterday. ([#91447](https://github.com/NousResearch/hermes-agent/pull/91447), [#80774](https://github.com/NousResearch/hermes-agent/pull/80774), [#81139](https://github.com/NousResearch/hermes-agent/pull/81139), [#81138](https://github.com/NousResearch/hermes-agent/pull/81138), [#91487](https://github.com/NousResearch/hermes-agent/pull/91487) — @teknium1, @smwbev)

- **Steer your subagents while they run** — `delegate_task` gained live orchestration: list running children, steer one mid-flight with a course correction, or stop it early and keep the partial result. Add optional JSON-schema validation on child outputs, per-delegation cost surfaced in results, and raised defaults (250 iterations, 10 concurrent children) — delegation went from fire-and-pray to actually managed parallel work. ([#85232](https://github.com/NousResearch/hermes-agent/pull/85232), [#81144](https://github.com/NousResearch/hermes-agent/pull/81144), [#81142](https://github.com/NousResearch/hermes-agent/pull/81142), [#86506](https://github.com/NousResearch/hermes-agent/pull/86506), [#86745](https://github.com/NousResearch/hermes-agent/pull/86745) — @teknium1)

- **The MCP command center** — MCP servers and the catalog merged into one coherent desktop page with drag-in "paste anything" import, background health checks that nudge you to re-auth before a tool call fails, a fleet cost/usage overlay showing schema token estimates and 30-day usage per server, and `hermes://` deep links that install an MCP server with explicit confirmation. Managing twenty MCP servers used to be config-file archaeology; now it's a dashboard. ([#87525](https://github.com/NousResearch/hermes-agent/pull/87525), [#87572](https://github.com/NousResearch/hermes-agent/pull/87572), [#87576](https://github.com/NousResearch/hermes-agent/pull/87576), [#87579](https://github.com/NousResearch/hermes-agent/pull/87579), [#87581](https://github.com/NousResearch/hermes-agent/pull/87581) — @teknium1)

- **A CLI power wave** — Ctrl+P opens a fuzzy command palette, the `/model` picker filters as you type, `/status` shows reasoning mode, pending approvals, and context usage, and the status bar can display live cache-hit %, latency, and tokens/sec with per-field toggles. Plus: a global emergency stop, session pin/unpin, rotating task-oriented composer placeholders — and Ghostty-level **terminal pets**, because a companion should have a companion. ([#90730](https://github.com/NousResearch/hermes-agent/pull/90730), [#90717](https://github.com/NousResearch/hermes-agent/pull/90717), [#90745](https://github.com/NousResearch/hermes-agent/pull/90745), [#98250](https://github.com/NousResearch/hermes-agent/pull/98250), [#98282](https://github.com/NousResearch/hermes-agent/pull/98282), [#97666](https://github.com/NousResearch/hermes-agent/pull/97666) — @teknium1, and salvaged community work)

- **The agent drives the desktop's browser** — The in-app browser stopped being a window the agent could only look at: Hermes now navigates, clicks, and reads it directly, and pages can be popped out to your system browser with full link context menus. Ask it to walk a docs site or debug a web app and watch it happen inside your own app. ([#90197](https://github.com/NousResearch/hermes-agent/pull/90197), [#89366](https://github.com/NousResearch/hermes-agent/pull/89366) — @OutThisLife, @ethernet8023)

- **Six new providers and a model catalog wave** — Meta Model API (Muse Spark) arrives as a built-in provider, alongside CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router, and Actual Computer. The catalogs picked up GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, and Nemotron 3.5 Lightning — and `model_overrides` lets you patch any model's context window or pricing yourself without waiting on a release. ([#88565](https://github.com/NousResearch/hermes-agent/pull/88565), [#88308](https://github.com/NousResearch/hermes-agent/pull/88308), [#97917](https://github.com/NousResearch/hermes-agent/pull/97917), [#97916](https://github.com/NousResearch/hermes-agent/pull/97916), [#97915](https://github.com/NousResearch/hermes-agent/pull/97915), [#85560](https://github.com/NousResearch/hermes-agent/pull/85560) — @teknium1 and community)

- **Security hardening across the board** — Protected agent-instruction files (AGENTS.md, skills, memory stores) now always require write approval so a prompt-injected agent can't quietly rewrite its own standing orders. A deep redaction sweep closed secret-leak gaps across terminal errors, `.env` file reads, checkpoints, and ACP logs; the approval system learned Windows destructive commands; and macOS permission grants finally survive updates via a stable TCC signing identity. ([#81152](https://github.com/NousResearch/hermes-agent/pull/81152), [#80965](https://github.com/NousResearch/hermes-agent/pull/80965), [#84428](https://github.com/NousResearch/hermes-agent/pull/84428), [#95091](https://github.com/NousResearch/hermes-agent/pull/95091) — @teknium1 and community)

---

## 🏗️ Core Agent & Architecture

### Providers & Models
- **New providers:** Actual Computer inference ([#79644](https://github.com/NousResearch/hermes-agent/pull/79644), salvage of #26491), CommandCode with GOAT/Pro/Max plans ([#88308](https://github.com/NousResearch/hermes-agent/pull/88308), salvage of #32909), Meta Model API (Muse Spark) as a built-in provider plugin ([#88565](https://github.com/NousResearch/hermes-agent/pull/88565)), Tencent TokenPlan ([#97917](https://github.com/NousResearch/hermes-agent/pull/97917)), Nebius Token Factory ([#97916](https://github.com/NousResearch/hermes-agent/pull/97916)), and Ramp Router ([#97915](https://github.com/NousResearch/hermes-agent/pull/97915)).
- **Model catalog wave:** qwen3.8-max and qwen3.8-flash ([#78024](https://github.com/NousResearch/hermes-agent/pull/78024), [#96979](https://github.com/NousResearch/hermes-agent/pull/96979)), Gemini 3.7 Flash ([#85526](https://github.com/NousResearch/hermes-agent/pull/85526)), GLM-5.3-Flash across OpenRouter/Nous/z.ai/OpenCode ([#95621](https://github.com/NousResearch/hermes-agent/pull/95621), [#96293](https://github.com/NousResearch/hermes-agent/pull/96293)), MiniMax M3 + Inkling free SKUs ([#96264](https://github.com/NousResearch/hermes-agent/pull/96264)), Nemotron 3.5 Lightning ([#84645](https://github.com/NousResearch/hermes-agent/pull/84645)), Meta Muse Spark 1.2 ([#88600](https://github.com/NousResearch/hermes-agent/pull/88600)).
- **Per-model metadata overrides** via `model_overrides` config — patch context windows, pricing, or capabilities for any model without waiting on a release ([#85560](https://github.com/NousResearch/hermes-agent/pull/85560)).
- **Data-training-tier warnings** — a unified selection-guard registry warns you across every picker surface when a model trains on your data ([#85917](https://github.com/NousResearch/hermes-agent/pull/85917)).
- **Pip-installed model providers** discovered via entry points — third parties can ship providers as packages ([#85504](https://github.com/NousResearch/hermes-agent/pull/85504), salvage #81419).
- **Prompt caching engaged for LiteLLM Claude** on the OpenAI wire ([#87517](https://github.com/NousResearch/hermes-agent/pull/87517) — @kshitijk4poor) and api.meta.ai routed through the Responses API for caching ([#88601](https://github.com/NousResearch/hermes-agent/pull/88601)).
- **Codex GPT context defaults** back to the verified 272K, with explicit -900k picker variants for the large window ([#92797](https://github.com/NousResearch/hermes-agent/pull/92797)).

### Agent Loop & Reliability
- **Stalled-provider recovery** — a stalled stream no longer leaves Desktop silent or burns the retry budget ([#87236](https://github.com/NousResearch/hermes-agent/pull/87236) — @fangliquanflq).
- **MoA hardening cluster** — the Mixture-of-Agents facade now survives client rebuilds, stream retries, provider rotation, and fallback/restore without leaking prepared requests to native clients ([#90212](https://github.com/NousResearch/hermes-agent/pull/90212) and siblings).
- **Structured-output resilience** — auxiliary calls translate `response_format` for Anthropic wires and retry when a provider rejects structured output ([#89589](https://github.com/NousResearch/hermes-agent/pull/89589) — @ethernet8023).
- **Compression: lean tail mode** + a compaction recall eval harness to measure what compression actually preserves ([#87326](https://github.com/NousResearch/hermes-agent/pull/87326)).
- **Oversized tool results spill to cache** instead of being truncated in sandbox-less sessions ([#89028](https://github.com/NousResearch/hermes-agent/pull/89028)).
- **`clarify` asks multiple independent questions in one call** — one form instead of a chain of round-trips ([#89467](https://github.com/NousResearch/hermes-agent/pull/89467) — @ethernet8023).
- **Verify subsystem** (port from superagent-ai/grok-cli): run-recipe detection + environment manifest so "it works" claims are backed by detected build/test commands ([#80686](https://github.com/NousResearch/hermes-agent/pull/80686)).

### Sessions & State
- **Resumed transcripts never re-append** — `_db_persisted` stamped at row load time ([#92539](https://github.com/NousResearch/hermes-agent/pull/92539) — @kshitijk4poor).
- **SessionDB context-manager protocol** for leak-free DB lifecycles ([#88048](https://github.com/NousResearch/hermes-agent/pull/88048) — @jackulau).
- **Instant session naming** from the opening message, with sticky titles across resume ([#81985](https://github.com/NousResearch/hermes-agent/pull/81985) — @OutThisLife).
- **Session pin/unpin from the CLI** — durable keep flags ([#80761](https://github.com/NousResearch/hermes-agent/pull/80761)).

## 📱 Messaging Platforms (Gateway)

- **Slack native live cards** — real streaming replies via chat.startStream plus opt-in plan/task cards for tool progress ([#85476](https://github.com/NousResearch/hermes-agent/pull/85476)); outbound link-preview suppression across native and relay planes ([#95142](https://github.com/NousResearch/hermes-agent/pull/95142) — @benbarclay).
- **Telegram inline picker** — every command and skill searchable via @botname, bypassing Telegram's command-menu cap ([#98317](https://github.com/NousResearch/hermes-agent/pull/98317)).
- **Relay matured** — native static/dynamic plugin initialization ([#77915](https://github.com/NousResearch/hermes-agent/pull/77915) — @bbednarski9), live-card ops with draft streaming + task cards ([#85796](https://github.com/NousResearch/hermes-agent/pull/85796) — @victor-kyriazakos), session-span segmentation ([#85467](https://github.com/NousResearch/hermes-agent/pull/85467)), voice-note STT restored over the relay lane ([#95274](https://github.com/NousResearch/hermes-agent/pull/95274) — @benbarclay), transport dedupe/fail-fast fixes ([#89584](https://github.com/NousResearch/hermes-agent/pull/89584)).
- **Gateway control socket** — fleet consumers query the gateway itself (identify/status), and updaters pause gateways gracefully instead of tree-killing them ([#92447](https://github.com/NousResearch/hermes-agent/pull/92447), [#95695](https://github.com/NousResearch/hermes-agent/pull/95695)).
- **Selective multiplex profile serving** ([#83400](https://github.com/NousResearch/hermes-agent/pull/83400)), per-profile MCP lifecycle RPCs ([#86473](https://github.com/NousResearch/hermes-agent/pull/86473)), roster previews showing the latest message ([#85905](https://github.com/NousResearch/hermes-agent/pull/85905)), concise background-process notifications by default ([#85877](https://github.com/NousResearch/hermes-agent/pull/85877)).
- **Turn-reaper stack dumps** — when the watchdog fires, wedged worker stacks are captured for diagnosis ([#86248](https://github.com/NousResearch/hermes-agent/pull/86248)), with loop-watchdog tuning knobs wired end-to-end ([#92317](https://github.com/NousResearch/hermes-agent/pull/92317)).
- **Split-delivery bug class closed** — swallowed finals and split deliveries fixed as a class ([#79669](https://github.com/NousResearch/hermes-agent/pull/79669) — @kshitijk4poor, salvages #78558).

## 🖥️ Desktop App

- **Bot Mode built in** — see Highlights. Full sub-catalog: attributed agent-to-agent message cards ([#85855](https://github.com/NousResearch/hermes-agent/pull/85855)), sender-side delivery notices ([#85888](https://github.com/NousResearch/hermes-agent/pull/85888)), paint-first hydration for instant wakes ([#89510](https://github.com/NousResearch/hermes-agent/pull/89510)), editable group names and room pictures ([#89371](https://github.com/NousResearch/hermes-agent/pull/89371)), Routines pane ([#88731](https://github.com/NousResearch/hermes-agent/pull/88731)), rebuilt on the app design system ([#96726](https://github.com/NousResearch/hermes-agent/pull/96726) — @OutThisLife).
- **In-app browser the agent can drive** — the agent uses the desktop's browser tab, not just looks at it ([#90197](https://github.com/NousResearch/hermes-agent/pull/90197) — @OutThisLife), with external-open + link context menus ([#89366](https://github.com/NousResearch/hermes-agent/pull/89366)).
- **Detached update hand-off on every OS** — quit → update → reopen with a single shim window; Windows desktop updates no longer park on "Updating Hermes" ([#83634](https://github.com/NousResearch/hermes-agent/pull/83634), [#90937](https://github.com/NousResearch/hermes-agent/pull/90937), [#95897](https://github.com/NousResearch/hermes-agent/pull/95897)).
- **Quality-of-life wave** — HUD snaps to cursor on ⌘⇧G ([#83130](https://github.com/NousResearch/hermes-agent/pull/83130)), paste into the composer without focusing it ([#84955](https://github.com/NousResearch/hermes-agent/pull/84955)), per-turn duration badges ([#87245](https://github.com/NousResearch/hermes-agent/pull/87245)), readable macOS window translucency ([#88744](https://github.com/NousResearch/hermes-agent/pull/88744)), Linux launcher entry ([#76456](https://github.com/NousResearch/hermes-agent/pull/76456)), Linux keychain auto-detection ([#84903](https://github.com/NousResearch/hermes-agent/pull/84903)), cron + blueprint recipes in the sidebar ([#85162](https://github.com/NousResearch/hermes-agent/pull/85162)).
- **Send Diagnostics** — error cards can upload a redacted debug bundle with a support handoff ([#92020](https://github.com/NousResearch/hermes-agent/pull/92020)).
- **Seq-stamped event replay** — lossless desktop reconnect over WebSocket ([#94219](https://github.com/NousResearch/hermes-agent/pull/94219) — @kshitijk4poor).
- **God-file decomposition** — the desktop codebase refactored into atomic modules ([#89611](https://github.com/NousResearch/hermes-agent/pull/89611) — @OutThisLife).

## 🖥️ CLI & TUI

- See Highlights for the power wave (command palette, fuzzy /model, richer /status, live status-bar metrics, pets).
- **`hermes approval-check`** — dry-run approval verdicts for a command without running it ([#81137](https://github.com/NousResearch/hermes-agent/pull/81137)).
- **Session titles in status bars** ([#81947](https://github.com/NousResearch/hermes-agent/pull/81947)); subagent model exposed in the auxiliary-models picker ([#80463](https://github.com/NousResearch/hermes-agent/pull/80463)).
- **Ctrl+C fixed** — stopped pushing the Kitty keyboard protocol that broke interrupts ([#87074](https://github.com/NousResearch/hermes-agent/pull/87074)).

## 🔧 Tool System & MCP

- **MCP command center** — see Highlights ([#87525](https://github.com/NousResearch/hermes-agent/pull/87525) et al.).
- **Interrupted commands no longer poison cwd** — the terminal won't adopt a stale working directory after an interrupt ([#85654](https://github.com/NousResearch/hermes-agent/pull/85654) — @ethernet8023).
- **Windows rename contention recovery** ([#84852](https://github.com/NousResearch/hermes-agent/pull/84852) — @OutThisLife); colon-bearing session IDs no longer break sandbox mounts ([#93488](https://github.com/NousResearch/hermes-agent/pull/93488), consolidated 6 PRs).
- **Vision output uncapped** — aux vision calls stop clamping max_tokens ([#75253](https://github.com/NousResearch/hermes-agent/pull/75253) — @adikpb).
- **Subagent work protected** — delegate no longer deletes a child's uncommitted work when git inspection fails ([#88419](https://github.com/NousResearch/hermes-agent/pull/88419) — @kshitijk4poor).

## 🧩 Skills Ecosystem

- **Productivity skill wave** (salvaged from @community proposals): document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar ([#81185](https://github.com/NousResearch/hermes-agent/pull/81185), [#81749](https://github.com/NousResearch/hermes-agent/pull/81749), [#81672](https://github.com/NousResearch/hermes-agent/pull/81672), [#81708](https://github.com/NousResearch/hermes-agent/pull/81708), [#81936](https://github.com/NousResearch/hermes-agent/pull/81936), [#81945](https://github.com/NousResearch/hermes-agent/pull/81945), [#81906](https://github.com/NousResearc
Weekly digest: every breaking change, retirement and price change across 20+ coding agents, one email.

Form not loading? Subscribe here.