Hermes Agent 0.20: voice, A2A, and the desktop shift

Nous Research released Hermes Agent 0.20 “Herald” on August 3, 2026. According to the team, it is the most ambitious release in the project’s history. Four pillars structure this delivery: real-time voice conversations, the A2A v1.0 protocol for agent interoperability, the desktop elevated to a full-fledged platform, and a CLI enriched with diagnostic commands. If you are new to the project, our April 2026 comparison with OpenClaw lays the groundwork; here, let’s focus on what changes.
| Feature | Category | Impact |
|---|---|---|
| Real-time voice with barge-in | Interface | Hands-free, full-duplex interaction |
| On-device wake words | Privacy | No audio sent before activation |
| A2A v1.0 (Agent-to-Agent) | Interoperability | Heterogeneous agents discover and talk to each other |
| Agent Card JSON-RPC 2.0 | Interoperability | Hermes exposed as a target for other agents |
| Outbound webhooks signed with HMAC-SHA256 | Security | Integrity of sent events |
| Search with verifiable citations | Reliability | Fact-checking anchored in sources |
| Artifacts with live preview | Desktop | Visual iteration without leaving the session |
| Plugin SDK + Kanban | Desktop | Native extension ecosystem |
| Multi-window + SSH remote | Desktop | Parallel sessions, remote control |
| Per-turn micro-compaction + /focus | Context | Continuously optimized context window |
Hermes Agent at a glance
Hermes Agent is developed by Nous Research under the MIT license. Its founding principle remains a closed learning loop: the agent creates skills from experience and refines them across sessions, with persistent memory. Everything below concerns v0.20 exclusively; for a project overview, see the April article.
Real-time voice conversations
v0.20 introduces a full voice mode, designed for natural interactions rather than classic dictation.
Streaming with barge-in
The microphone stays active during both generation and audio playback. You can interrupt the model mid-sentence: it is notified of the interruption and stops. TTS synthesis runs clause by clause, which reduces perceived latency compared to monolithic synthesis. This is full-duplex: both parties can speak at the same time, just like a phone conversation.
On-device wake words
Wake word detection (“hey hermes” by default) runs locally, with no audio stream leaving the machine until the wake word is detected. This is a notable privacy gain over cloud-based solutions. The configuration looks like this:
# config.yaml — voice excerpt
voice:
enabled: true
barge_in: true # user can interrupt the model
stop_phrases: # phrases that stop voice generation
- "arrête-toi"
- "silence"
- "stop"
wake_word: "hey hermes" # default wake word, detected locally
tts_engine: "kokoro" # local TTS engine, clause-by-clause
A2A v1.0: heterogeneous agents that talk to each other
The Agent-to-Agent (A2A) protocol is an open standard led by the Linux Foundation (a2a-protocol.org). It is compatible with LangChain, CrewAI, Google ADK, and any implementation built on the a2a-sdk.
Hermes is bidirectional in this protocol. On one hand, it can call other agents through three dedicated tools: a2a_discover (find a competent agent), a2a_call (send it a task), and a2a_orchestrate (chain multiple agents). On the other hand, it exposes itself: an Agent Card is served at /.well-known/agent-card.json in JSON-RPC 2.0 format, which allows any A2A client to reach it.
Security-wise, exchanges use bearer tokens, listening is limited to localhost by default, and rate limiting plus an anti-loop turn cap prevent an agent from spiraling into a circular conversation. A concrete example: a Hermes agent specialized in writing can delegate a fact-check to a Hermes agent specialized in research, with no human intervention.
Signed webhooks and grounded search
Signed outbound webhooks
Webhooks emitted by Hermes are now signed with HMAC-SHA256. The recommended version is V2, with the X-Webhook-Signature-V2 and X-Webhook-Timestamp headers. The digest is computed over "<timestamp>.<body>", and a ±300-second tolerance guards against replay attacks. Here is what server-side verification looks like:
import hmac, hashlib, time
def verify_webhook(payload: bytes, signature: str, timestamp: str, secret: str) -> bool:
# Reject if the timestamp is too old (replay protection)
if abs(time.time() - int(timestamp)) > 300:
return False
# Recompute the expected digest
message = f"{timestamp}.".encode() + payload
expected = hmac.new(secret.encode(), message, hashlib.sha256).hexdigest()
# Constant-time comparison to prevent timing attacks
return hmac.compare_digest(expected, signature)
Search with verifiable citations
The grounded-citations skill produces anchored responses: citations are matched against the actual text of the pages that were consulted. A fact-checking mode explicitly flags what is verified, what fails, and what cannot be checked. The release notes describe this feature at a high level; expect implementation details in upcoming versions.
The desktop becomes a platform
The desktop app goes beyond a graphical terminal.
Artifacts with live preview
Artifacts are versioned cards (code, rendering, data). A live preview appears in a sandboxed side panel, so you can iterate on HTML, SVG, or executable code without leaving the conversation.
Plugin SDK
A proper plugin SDK is emerging, with Kanban as the founding plugin. The API exposes ctx.download for fetching files and floating panels for the interface. Full SDK details are still being documented.
Multi-window
You can open parallel sessions in separate windows. A quick-entry window, accessible via a global shortcut, lets you ask a quick question without switching context. An SSH backend lets you drive a Hermes instance running on a remote machine, which is handy for a dev server or a GPU cluster.
CLI: shell mode and new commands
The CLI gains commands that avoid wasting model turns on trivial operations:
! ls -la src/ # run a shell command without consuming a model turn
/init # analyze the project and generate/update AGENTS.md
/diff # show changes (staged, session)
/context # detail what fills the context window
/focus # condensed view with retrieval of hidden lines
The ! prefix is especially useful: it runs a system command with zero token cost. Also note Ctrl+S for prompt stashing (save an in-progress prompt to resume later) and hermes import-agent, which migrates configurations from Claude Code or Codex CLI.
Smarter context compression
Context management improves with per-turn micro-compaction: instead of one giant pause, the cost is spread across every interaction. Proactive pruning of tool results frees space continuously. A guaranteed queue of recent user messages (compression.min_tail_user_messages) preserves the conversation thread, and per-model thresholds (compression.threshold_tokens) adapt compression to the model in use. [SKILL_PRUNED] markers flag when a skill has been trimmed, so it does not silently haunt the session. All of this remains transparent to the user.
Conclusion
With v0.20, Hermes Agent moves from terminal agent to full platform: voice, desktop, A2A interoperability. If you are looking for a local voice agent or want to orchestrate heterogeneous agents, this version is worth a try. The A2A protocol, backed by the Linux Foundation, could well become the de facto standard for the AI agent ecosystem — and Hermes is already positioned as a bidirectional node in that ecosystem.
Sources: GitHub release v2026.8.3, A2A docs, webhooks docs, voice-mode docs, a2a-protocol.org (consulted on 2026-08-10).