Hermes Agent v0.21.0
Overview
v0.21.0 — The Pantheon Release. Released August 31, 2026. ~5,800 commits · ~2,475 merged PRs · ~5,680 files changed (+869,000 / −135,000) since v0.20.0, with ~2,100 issues closed and 760+ contributors.
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, turning your agents into a society of named faces with group chats, and hermes peer lets any agent message any other agent by handle, across profiles and gateways. 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, the agent can drive the desktop’s own browser, and the CLI picked up a fuzzy palette, richer status surfaces, and terminal pets.
This release also rolls up and fully documents the v0.20.1–v0.20.6 infrastructure patch tags (Aug 13–27), whose notes were deferred to this minor per the rollup-release policy.
Highlights
1. Bot Mode built in: your agents become a society
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. Attributed agent-to-agent message cards, sender-side delivery notices, paint-first hydration for instant wakes, editable group names and room pictures, and a Routines pane round out the surface (#87886, #88243, #89386, #96726, #85855, #85888, #89510, #89371, #88731).
2. hermes peer: bot-to-bot DMs across profiles and gateways
Any Hermes agent can now message any other by handle, across profiles and gateways, from the CLI or inside a conversation. hermes peer add <name> --url <base> --key <API_SERVER_KEY> registers a peer gateway; hermes peer dm <peer>[/<agent>] "<msg>" delivers into the remote agent’s canonical Bot Chat and prints the reply; hermes peer run starts long turns asynchronously with an idempotency key; hermes peer status / hermes peer stop manage them. Exit codes: 0 ok, 1 delivery/peer error, 2 usage error (#88725, #88178, #91487).
3. Cron jobs that remember
Scheduled jobs stopped being goldfish: cron agents 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 (hermes cron notepad <job_id> get|set|delete|list), 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 (#91447, #80774, #81139, #81138, #91487). Siblings: pre-dispatch config validation (#81140), acked failure signatures stop re-pinging (#95017), per-job reasoning-effort pinning (#91244), “Trigger now” executes immediately (#70638).
4. 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. Optional JSON-schema validation on child outputs, per-delegation cost surfaced in results, and raised defaults (250 iterations, 10 concurrent children) make delegation managed parallel work (#85232, #81144, #81142, #86506, #86745, #81141, #86641).
5. The MCP command center
MCP servers and the catalog merged into one coherent desktop page: drag-in “paste anything” import, background health checks that nudge you to re-auth before a tool call fails, a fleet cost/usage overlay (schema token estimates and 30-day usage per server), and hermes:// deep links that install an MCP server with explicit confirmation (#87525, #87572, #87576, #87579, #87581).
6. 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; 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 (managed with hermes pets; config under pet: — enabled, slug, render_mode auto|kitty|iterm|sixel|unicode|off, scale) (#90730, #90717, #90745, #98250, #98282, #97666, #80761, #81947).
7. 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 (#90197, #89366).
8. 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 (#88565, #88308, #97917, #97916, #97915, #79644). Catalogs picked up GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, and Nemotron 3.5 Lightning; model_overrides lets you patch any model’s context window or pricing yourself (#85560); data-training-tier warnings guard every picker surface (#85917); pip-installed model providers ship via entry points (#85504); Codex GPT defaults back to the verified 272K with explicit -900k variants (#92797).
9. Security hardening across the board
Protected agent-instruction files (AGENTS.md, skills, memory stores) now always require write approval (security.protected_instruction_files: true default, security.protected_instruction_extra_patterns for extras), so a prompt-injected agent can’t quietly rewrite its own standing orders (#81152). A deep redaction sweep closed secret-leak gaps across terminal errors, .env file reads, checkpoints, and ACP logs (#80965, #80964, #81675, #81686, #88232). The approval system learned Windows destructive commands (#84428), and macOS permission grants survive updates via a stable TCC signing identity — hermes desktop --setup-tcc-identity (#95091).
Core Agent & Architecture
- Agent loop: stalled-provider recovery (#87236); MoA hardening cluster (#90212); structured-output resilience for auxiliary calls incl. Anthropic
response_formattranslation (#89589); lean-tail compression + compaction recall eval harness (#87326); oversized tool results spill to cache instead of truncating (#89028); multi-questionclarify(#89467);hermes approvals testdry-run verdicts for commands (#81137). - Sessions & state: resumed transcripts never re-append (#92539); SessionDB context-manager protocol (#88048); instant session naming with sticky titles (#81985); session pin/unpin from the CLI (#80761).
- Messaging: Slack native live cards via chat.startStream with opt-in plan/task cards (#85476); Telegram inline picker bypassing the command-menu cap (#98317); relay matured with native plugin init (#77915), live cards (#85796), session-span segmentation (#85467), voice-note STT (#95274); gateway control socket (#92447, #95695); selective multiplex profile serving (#83400); loop-watchdog tuning knobs wired end-to-end (#92317); turn-reaper stack dumps (#86248).
Desktop App
- Bot Mode built in (see Highlights); in-app browser the agent can drive (#90197) with external-open + link context menus (#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, #90937, #95897).
- QoL wave: HUD snaps to cursor on ⌘⇧G (#83130), paste into the composer without focusing it (#84955), per-turn duration badges (#87245), readable macOS window translucency (#88744), Linux launcher entry (#76456), Linux keychain auto-detection (#84903), cron + blueprint recipes in the sidebar (#85162).
- Send Diagnostics uploads a redacted debug bundle (#92020); seq-stamped event replay gives lossless desktop reconnect over WebSocket (#94219); god-file decomposition (#89611).
CLI & TUI
- CLI power wave (see Highlights);
hermes approval-check→hermes approvals test+hermes approvals suggest(#81137); session titles in status bars (#81947); subagent model in the auxiliary-models picker (#80463); Ctrl+C fixed — no more Kitty keyboard-protocol interrupt breakage (#87074).
Tool System & MCP
- MCP command center (see Highlights); interrupted commands no longer poison cwd (#85654); Windows rename contention recovery (#84852); colon-bearing session IDs no longer break sandbox mounts (#93488); vision output uncapped for aux calls (#75253); delegate no longer deletes a child’s uncommitted work when git inspection fails (#88419).
Skills Ecosystem
- Productivity skill wave: 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 et al.).
- HAR-derived API clients — watch a site once, call its hidden API directly (#70823); publish-site (#72189); session-librarian (#84917); blocked-page-recovery (#84906); merge-reconciler (#83063); Box skill (#85767); ast-grep codemods (#80892); draw-your-font + simple-english (#80814, #80811); plan-interrogation (#97831).
- Advisory SKILL.md linter on create (#81896); skills-hub live-repo fallback (#82780);
skills.create_dirroutes agent-created skills to any directory (#100377, merged Sep 1).
Cron, Delegation & Multi-Agent
- Cron memory + continuity, monitor-mode jobs, durable notepads, pre-dispatch validation, acked failure signatures, reasoning-effort pinning, Trigger-now — see Highlight 3.
- Live subagent orchestration, structured-output schemas, batch-quality validation, truncation markers — see Highlight 4.
- Kanban hardening: collision-hotspot flagging (#83428), split-brain decision-ownership contract (#83424), memory-aware dispatch guard (#88115), notify/wake delivery modes (#85487).
Observability
- Model/provider usage reporting + bounded tool-metrics aggregation as an observability subsystem (#68881, #68882), with lifecycle ops bounded so a wedged pipeline can’t block the agent (#83514).
Infrastructure, CI & Packaging
- Real-OS CI: macOS and Windows lanes with tests gated by real host OS (#77992); work lanes on 32-core runners (#92009); review comments + image builds out of the hot CI path (#82668); bootstrap installer no longer waits on pipe EOF (#90941).
Notable Bug Fixes
- Desktop session races (Stop→edit/resend, submit ownership) fixed as a cluster (#86594); workspace-pane idle flicker (#97513); assistant-ui boundary recovery (#81232).
- Kanban schema re-creation when a cached DB path loses it (#83619); cron jobs no longer inherit a kanban worker’s dispatcher identity (#79657); relay-fronted Slack cron delivery (#85340).
- Docker sandbox MEDIA attachments no longer silently drop (#94509); desktop binary attachments delivered into sandbox backends (#81717).
- Session-hygiene compaction cooldown escalates on repeat failures (#79741); provider-injected parameter 400s retried instead of aborting the turn (#91643).
- …and roughly two thousand more closed issues’ worth — this window averaged ~85 merged PRs per day.
Reverted in this window (not shipping)
- Model Council mode (/council) — landed then reverted; not in this release.
- DCP context engine — landed then reverted; not in this release.
- WS-only gateway server (#94245) — merged then reverted (#96118); FastAPI remains on the desktop boot path. The seq-stamped event replay (#94219) DID ship.
- Electron rolled back to 40.10.2; TCC interpreter anchor removed (superseded by the signing-identity approach that shipped).
Upgrade
hermes update
After upgrading, run hermes doctor to verify the install and restart the gateway (hermes gateway) so platform changes take effect. To see what the next update will touch before running it: hermes update --plan.