← Back to blog

Hermes v0.20.0 - The Herald Release Brings Voice, A2A, and Self-Healing Tools

hermesreleasevoicea2atools
Hermes v0.20.0 - The Herald Release Brings Voice, A2A, and Self-Healing Tools

Hermes v0.20.0 shipped on August 3 as the largest release in the project's history: ~3,650 commits, ~1,400 merged PRs, ~5,200 files changed, ~559,000 insertions, and ~405,000 deletions across 650+ contributors. The release closed ~1,200 issues. X API discovery is unavailable - the platform returned 402 Payment Required on all search queries. All sourcing here comes from the GitHub release notes and the 88 feature/perf PRs merged in the past 48 hours.

Highlights

Streaming conversational voice with barge-in. Hermes now speaks clause-by-clause as the response streams instead of waiting for the full reply before playing one audio file. Users can interrupt mid-sentence by talking - the system stops playback, listens, and the model is told it was cut off. Busy-aware silence detection prevents talking over the user. This works across CLI voice mode, the desktop app, and all gateway adapters. On-device wake words support open-vocabulary phrases with multi-profile routing - different wake words reach different profiles. Saying "stop" ends voice chat hands-free on every surface. PRs #69511, #73862, #74223 by teknium1 and OutThisLife.

Agent-to-Agent protocol v1.0. A new bundled plugin implements the A2A protocol, so Hermes can discover, talk to, and be driven by other A2A-compatible agents. This closes issue #514 - one of the oldest open feature requests in the repository. For multi-agent systems with heterogeneous stacks, Hermes now has a standard wire protocol for joining them. PR #77109 by teknium1.

Tools that fix themselves. A sweep of self-recovery upgrades means the agent wastes fewer turns on tool friction. Truncated terminal output spills to a file the agent can read back. Patch detects already-applied edits and diagnoses whitespace mismatches. Search probes for near-misses on zero-match and recovers. write_file verifies content on disk. The default tool-calling iteration limit jumped from 90 to 500. PRs #77041, #76998, #77024, #77011, #77055 by teknium1.

Desktop becomes a platform. The desktop app now renders artifacts - versioned cards with sandboxed live preview in a right-rail viewer. A real plugin SDK shipped with Kanban as its founding plugin, ctx.download for file handoffs, floating pane placement, and multiple GUI windows. A global-hotkey quick-entry window captures a thought into any session from anywhere in the OS. PRs #72345, #61173, #74413 by OutThisLife and teknium1.

Grounded citations with fact-checking. The new grounded-citations skill makes Hermes produce research where every claim is backed by a verifiable source. Quotes are matched against actual page text rather than hallucinated, citations link to the exact evidence, and a fact-checking mode validates any document or claim. PRs #71698, #77104 by teknium1.

Other Notable Features

  • CLI power-user wave: !command runs shell commands without a model turn. /init scans projects and generates AGENTS.md. /diff, /context, and /focus give visibility into changes, context windows, and output modes. Mid-turn redirects let users correct the agent without stopping and restarting.
  • Outbound signed webhooks: Hermes pushes HMAC-signed lifecycle events to any HTTP endpoint - no polling needed.
  • Compression overhaul: Per-turn micro-compaction, guaranteed N-user-message tail, ghost-skill defense, and per-model threshold overrides.
  • Smart approvals: hermes approvals suggest mines approval history into allowlist proposals. A consecutive-denial circuit breaker stops misbehaving loops.
  • Cold-start speed: hermes -w dropped from ~14s to ~1.8s through GIL stall mitigation, batched turn flushes, and lazy SDK imports.
  • qwen3.8-max added to the Nous Portal and OpenRouter, replacing qwen3.7-max.

The full release notes, with all sections and linked PRs, are at the GitHub release page.

Termagotchi
_

Ryan Underdown

Autodidact. Rarely listens to advice.

Follow on X @catamarammed or GitHub @underdown