# Hermes Agent
Hermes Agent is [[Nous Research]]'s open-source, model-agnostic [[AI Agent Harness|agent harness]]; distinct from the [[Hermes]] LLM line that shares the name. Where Hermes (the model) is a fine-tuned base, Hermes Agent is the surrounding scaffolding that turns any LLM into a long-running personal assistant with skills, memory, and cross-platform reach.
The differentiator versus [[Claude Code]], [[Codex CLI]], and [[Gemini CLI]] is the **built-in learning loop**. Hermes Agent does not stop at executing tasks; it autonomously creates skills from successful trajectories, refines them in use, persists facts about the user across sessions, and searches its own past conversations. The whole stack is positioned closer to a personal-assistant harness than to a coding-only CLI.
## What it actually does
- **Skills system**; autonomous skill creation after complex tasks; skills self-improve during use; compatible with the open `agentskills.io` standard, which means skills are portable across other harnesses.
- **Persistent memory**; agent-curated facts with periodic "nudges" that prompt the agent to record what it learned. Backed by FTS5 full-text search over session history with LLM summarization for cross-session recall.
- **User modeling**; uses Honcho (an external dialectic user-modeling library) to build an evolving model of who the user is and what they care about.
- **Multi-platform reach**; ships a single gateway that bridges 15+ platforms — Telegram, Discord, Slack, WhatsApp, Signal, Email, and more; voice memos transcribed in. The agent is reachable from anywhere, not just the terminal.
- **Voice mode**; real-time interaction across the CLI and chat surfaces; voice in, voice out, no separate app.
- **Cron scheduler**; built-in unattended automations.
- **Subagents**; isolated subagent spawning for parallel workstreams (the "Hermes Agent Kanban" pattern from Nous Research's announcements).
- **Tool ecosystem**; 40+ built-in tools; Python script integration via RPC for custom tool calls.
- **Multi-backend execution**; six terminal backends; **local**, **Docker**, **SSH**, **Daytona**, **Singularity**, **Modal**. Daytona and Modal support hibernation, keeping idle costs minimal on serverless.
## Model agnosticism
Hermes Agent does not lock to Nous's own models. Switch via `hermes model` without code changes:
- Nous Portal (first-party).
- OpenRouter (200+ models).
- NVIDIA NIM, Xiaomi MiMo, [[Zhipu AI (Z.ai)|z.ai]] / GLM, [[Kimi]] / Moonshot, MiniMax.
- Hugging Face, [[OpenAI]], custom endpoints.
- **[[xAI]] Grok via OAuth** (May 2026); sign in with a Grok / SuperGrok subscription, no API key. First subscription-OAuth provider on the list; exposes [[Grok 4.3]] for text/reasoning, Grok TTS for voice, and Grok Imagine for image/video. Available on every Grok tier. Pick via `hermes model` → "xAI Grok OAuth (SuperGrok Subscription)". Docs; https://hermes-agent.nousresearch.com/docs/guides/xai-grok-oauth ; announcement; https://x.ai/news/grok-hermes
That makes it one of the most genuinely provider-agnostic harnesses on the map; closer to [[OpenCode]] in philosophy than to first-party CLIs. The Grok OAuth path is structurally novel; it is the first time a frontier closed-weight provider lets a *consumer subscription* act as an agent backend, bypassing the usual API-key-and-billing-account flow.
## Installation
Linux, macOS, WSL2, Android via Termux. Single installer:
```sh
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
```
Common entry points:
- `hermes` — interactive CLI.
- `hermes model` — pick provider and model.
- `hermes tools` — enable / disable tools.
- `hermes gateway` — start the messaging gateway.
- `hermes setup` — full configuration wizard.
- `hermes claw migrate` — automatic import from [[OpenClaw]] (settings, memories, skills, API keys); supports dry-run and selective presets.
The OpenClaw migration path is notable; Nous explicitly absorbed the OpenClaw user base by making the upgrade frictionless.
## Slash commands
Same commands work in the CLI and across messaging surfaces:
- `/new`, `/reset` — fresh conversation.
- `/model [provider:model]` — change LLM mid-session.
- `/personality [name]` — switch persona.
- `/retry`, `/undo` — reverse the last action.
- `/compress`, `/usage` — context management.
- `/skills` — browse procedural memory.
## Self-evolution
The companion `hermes-agent-self-evolution` project applies DSPy + GEPA to automatically optimize skills, tool descriptions, system prompts, and code. It reads execution traces, proposes targeted variants via API calls (no GPU training required), evaluates them against held-out traces, and gates results behind tests, size limits, and human review before raising a PR. Synthetic data or real session history (including from [[Claude Code]]) can drive the evaluation set.
This is one of the few harnesses where the harness itself ships with a documented improvement loop, not just a tool registry.
## Orchestrating other harnesses
Hermes ships first-party skills under `official/autonomous-ai-agents/` that let it drive other coding harnesses as sub-agents — [[Claude Code]], [[Codex CLI]], [[OpenCode]], Hermes itself, and (May 2026, announced by [[Teknium]]) [[OpenHands]]. Install with `hermes update && hermes skills install official/autonomous-ai-agents/<name>`. Once installed, Hermes auto-discovers them when asked to delegate, or force-load with `/<agent-name> <prompt>`. Cleanest path today to compose multiple agent harnesses without writing glue.
## Buzz integration
[[Buzz]] is Block's self-hosted Nostr-based workspace where humans and agents share channels. Hermes plugs into it three ways, in increasing depth:
1. **Desktop runtime** — Buzz Desktop launches Hermes locally as a managed component. Zero config; Hermes just appears in Settings once installed. The way to try it.
2. **Relay bridge** — a hosted Hermes identity joins Buzz channels via `buzz-acp`, bridging the relay over [[Agent Client Protocol (ACP)|ACP]]. Buzz owns the transport and the agent identity. For relay operators.
3. **Native gateway** — Buzz becomes just another Hermes messaging platform alongside Telegram, Discord and the rest: channels, DMs, mention gating, threaded replies, reactions, images, cron delivery. Keeps every Hermes feature including approvals and memory. Uses a dedicated Nostr keypair so identities don't collide.
Mode 3 is the right one if you already run Hermes; the other two exist so Buzz users can get an agent without adopting Hermes first.
## Credential firewall for Docker sandboxes (July 2026)
Announced 2026-07-24, and the most important thing Hermes has shipped for anyone running agents against real accounts.
**Your real keys never enter the sandbox.** The agent runs on stand-in tokens, and a local proxy swaps in the real credentials at the network boundary. Tokens lifted from a compromised sandbox are useless anywhere else.
```sh
hermes egress setup
```
### Why this is the right shape
Sandboxing an agent has always had a hole in the middle. You isolate the filesystem, you isolate the process, and then you hand the sandbox a live API key because otherwise it can't do anything useful. The container is contained; the credential isn't. Prompt injection, a malicious dependency, or a bad tool description and the key walks out.
Moving substitution to the **egress boundary** fixes the actual failure mode. What lives inside the sandbox is a placeholder with no value outside it. Exfiltration stops being interesting, because there's nothing to exfiltrate.
**This is the same mechanism as [[varlock]]'s credential proxy**, arrived at independently and in the same month. Two projects with different starting points converging on: *give the agent a stand-in, inject the real value at a verified boundary*. When that happens, it usually means the pattern is correct rather than clever. Worth treating as the default design for agent credential handling rather than a Hermes feature.
It also pairs directly with what [[DrSkill]] scans for. Secrets sitting in committable config files are the static version of this problem; a credential firewall is the runtime version. Both are about never letting the real value reach a place you don't control.
## Where it sits among harnesses
- vs **[[Claude Code]]** / **[[Codex CLI]]**; coding-focused; Hermes Agent is broader (personal assistant, messaging, automations).
- vs **[[OpenClaw]]**; same niche; Hermes Agent is the more actively developed successor with first-class migration tooling.
- vs **[[Aider]]** / **[[OpenCode]]**; similar provider-agnosticism; Hermes Agent adds learning loop, gateway, scheduler.
- vs **[[Claude Managed Agents]]**; Hermes runs on your hardware, including a $5 VPS, with no managed-service dependency.
## The Herald release and Bot Mode (August 2026)
Two back-to-back drops pushed the harness further toward "personal assistant OS":
**Herald release** (v0.20.0): voice-activated chats (pitched as a Google Home / Alexa replacement), plugins and Kanban in the desktop GUI, [[Agent2Agent Protocol (A2A)|Agent2Agent protocol]] support, outbound webhooks, large token-efficiency and performance gains, [[Buzz]] integration, office/productivity skills, a grounded-research skill, more reliable local and open models, and a secrets lockdown built on Ironproxy (the credential-firewall line continued).
**Bot Mode** (v0.20.3, default-on in Hermes Desktop): agent profiles become a roster of **named bots**, each with its own role, model, memory, skills, and profile picture. Bots message each other through a persistent Agent Inbox and hand work off by @mention — multi-agent teams as a first-class desktop UI rather than an orchestration script. It started as a one-day public beta plugin from Teknium before shipping bundled.
Bot Mode is the notable design move: it maps multi-agent orchestration onto a group-chat mental model regular users already have, instead of exposing DAGs or config files.
## Trade-offs
- **Surface sprawl**; messaging gateways, schedulers, subagents and learning loops are powerful but raise operational complexity. A coding-focused user is better served by a focused CLI.
- **Self-improvement risks**; an agent that mutates its own skills is an agent whose behavior drifts. Treat the self-evolution loop as opt-in, not a default.
- **Discovery cost**; 40+ tools, multiple backends, and a skills hub mean a real onboarding curve. Worth it for a daily-driver harness; expensive for a one-off.
## License
MIT.
## References
- Repository: https://github.com/NousResearch/hermes-agent
- Self-evolution variant: https://github.com/NousResearch/hermes-agent-self-evolution
- Documentation: https://hermes-agent.nousresearch.com/docs/
- LLM-readable docs: https://hermes-agent.nousresearch.com/llms.txt and https://hermes-agent.nousresearch.com/llms-full.txt
- Function calling utilities: https://github.com/NousResearch/Hermes-Function-Calling
- Paperclip adapter: https://github.com/NousResearch/hermes-paperclip-adapter
- Announcement (Hermes Agent Kanban): https://x.com/NousResearch/status/2050997692977844324
- Credential firewall for Docker sandboxes (2026-07-24): https://x.com/NousResearch/status/2080728699100406042
- Buzz integration docs: https://hermes-agent.nousresearch.com/docs/integrations/buzz
- Herald release thread (Teknium): https://x.com/Teknium/status/2084344999513383195
- Bot Mode follow-up (Teknium): https://x.com/Teknium/status/2085156837561893117
- Bot Mode coverage: https://www.marktechpost.com/2026/08/17/nous-research-hermes-bot-mode/
## Related
- [[Nous Research]]
- [[Hermes]]
- [[AI Agent Harness]]
- [[AI Agent Harnesses (MoC)]]
- [[OpenClaw]]
- [[qm (Y Combinator)]] — YC's org-scale harness, positioned as "customizable like Hermes or OpenClaw, but for a whole company"
- [[Atropos]]
- [[Buzz]] — Block's human+agent workspace; Hermes integrates three ways
- [[varlock]] — same credential-proxy pattern, arrived at independently
- [[DrSkill]] — scans for the static version of the same problem
- [[Docker]]
- [[AI Agent Skills]]
- [[Claude Code]]
- [[Codex CLI]]
- [[OpenCode]]
- [[OpenHands]]
- [[Aider]]