# Hermes Agent: features, protocols, quickstart

## TL;DR

Hermes Agent is Nous Research's MIT-licensed, self-hosted Python agent that runs in a terminal UI or behind a messaging gateway (Telegram, Discord, Slack and more). It keeps curated memory, writes its own skills and delegates work to parallel subagents. It suits users who want a persistent personal agent on their own server.

## Key facts

| Field | Value |
| --- | --- |
| Type | Harness |
| Languages / SDKs | Python |
| License | MIT |
| Pricing model | Open core |
| Orchestration pattern | Supervisor |
| GitHub stars | 250,238 (as of 2026-09-30) |
| GitHub forks | 53,433 |
| Last push | 2026-09-30 |
| Latest release | v2026.9.24 |
| Repository | [NousResearch/hermes-agent](https://github.com/NousResearch/hermes-agent) |
| Website | [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com) |
| Documentation | [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com/docs/) |
| Last verified | 2026-09-30 |

## Key features

- delegate_task spawns child agents with fresh context and their own terminal sessions; only each child's final summary returns to the parent, and batches run up to 10 children in parallel by default. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation))
- Nested delegation: children with role="orchestrator" can spawn their own workers once delegation.max_spawn_depth is raised above its default of 1. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation))
- Kanban board in a shared SQLite database lets several named Hermes profiles pick up, hand off and review tasks as separate OS processes. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban))
- Optional Codex app-server runtime hands OpenAI turns to the Codex CLI's own tool loop and sandbox while Hermes keeps sessions, memory and the gateway. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/codex-app-server-runtime))
- A2A plugin in the repository works both ways: Hermes can call remote A2A agents as tools and accept tasks from them over HTTP. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/messaging/a2a))
- MCP client for stdio and HTTP servers with per-server tool filtering, plus hermes mcp serve to expose connected messaging platforms to MCP clients. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp))
- Runs as an ACP server over stdio so ACP-capable editors can show its chat, tool activity, diffs and approval prompts. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/acp))
- Bounded memory in MEMORY.md and USER.md, injected at session start and edited by the agent through a memory tool. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/memory))

## Architecture and orchestration pattern

Pattern: Supervisor.

Every entry point (CLI/TUI, messaging gateway, ACP adapter, API server, batch runner) drives the same `AIAgent` loop, which builds the prompt, resolves the provider and dispatches tools from a registry. Sessions are stored in SQLite with FTS5 search, and tools run on one of several terminal backends (local, Docker, SSH, Modal, Daytona and others).

In-process multi-agent work is supervisor-style. The model calls `delegate_task` with a goal and context; each child starts with a fresh conversation (plus the workspace's AGENTS.md/CLAUDE.md context files), inherits the parent's toolsets, and returns only a summary. Top-level delegation runs in the background and posts results back as a new message; children are leaf workers by default, and orchestrator children can delegate further only when `delegation.max_spawn_depth` is raised.

For longer-lived collaboration, the Kanban board stores tasks and handoffs in `~/.hermes/kanban.db`, and a dispatcher starts each worker as a full OS process under its own profile. Across machines or frameworks, the A2A plugin connects independent agents. Memory is two capped Markdown files (MEMORY.md and USER.md) per profile, loaded as a frozen snapshot at session start, with optional external memory providers.

### Human in the loop

Dangerous shell commands go through `approvals.mode`: `smart` (default; an auxiliary LLM auto-approves low-risk commands, denies clearly dangerous ones and escalates the rest), `manual` (always prompt) or `off`. In the CLI the prompt offers once, session, always or deny; on messaging platforms the user replies yes or no in chat. `/yolo` or `--yolo` bypasses prompts for a session. `/stop` ends a run and its background subagents, and the CLI, TUI and Desktop show live subagents that can be steered or stopped individually. Subagents cannot use the `clarify` tool, so they never ask the user directly. Unknown messaging users must be approved with `hermes pairing approve`.

### Harnesses it can drive

- Codex ([evidence](https://hermes-agent.nousresearch.com/docs/user-guide/features/codex-app-server-runtime))
- Claude Code ([evidence](https://hermes-agent.nousresearch.com/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-claude-code))
- OpenCode ([evidence](https://hermes-agent.nousresearch.com/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-opencode))

## Protocols

| Protocol | Support | Evidence | Note |
| --- | --- | --- | --- |
| MCP | Yes (checked 2026-09-30) | [link](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp) | Client for stdio and HTTP MCP servers configured under mcp_servers, and a stdio MCP server via hermes mcp serve that exposes connected messaging platforms. |
| A2A | Yes (checked 2026-09-30) | [link](https://hermes-agent.nousresearch.com/docs/user-guide/messaging/a2a) | A2A v1.0 plugin shipped in the repo (plugins/platforms/a2a): inbound server over HTTP plus an outbound a2a toolset for calling peers; the outbound toolset is off by default. |
| AG-UI | Unknown (checked 2026-09-30) | — | No AG-UI mention in the README, docs llms.txt or docs sitemap; GitHub code search for ag-ui and agui in NousResearch/hermes-agent returned no results; not in the AG-UI README integration list. |

## Best for

- A personal agent on a VPS or home server that you reach from Telegram, Discord, Slack or the terminal. ([shortlist](https://multiagentguide.top/best/self-hosted-local.md))
- Research tasks split across parallel subagents with structured (JSON Schema) results. ([shortlist](https://multiagentguide.top/best/research-agents.md))
- Coding work where Hermes runs Codex as its runtime or hands tasks to Claude Code or OpenCode through bundled skills. ([shortlist](https://multiagentguide.top/best/coding-agents.md))
- Recurring or multi-profile work queues coordinated through the Kanban board and cron scheduler.

## Not for

- Embedding an agent inside your own application as a library; Hermes is a standalone agent and gateway.
- Setups where two agent processes would share one Hermes home directory; the docs warn their memory writes collide.
- Browser front ends expecting an AG-UI event stream; no AG-UI support is documented.

## Quickstart

```sh
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
```

Install not yet verified by this site.

```bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc          # or ~/.zshrc

hermes setup              # provider, tools, optional messaging gateway
hermes model              # pick provider and model

# allow one level of orchestrator subagents and cap parallel children
hermes config set delegation.max_spawn_depth 2
hermes config set delegation.max_concurrent_children 4

# let CLI sessions call remote A2A agents (toolset is off by default)
hermes tools enable a2a --platform cli

hermes                    # then ask it to research two topics in parallel
```

### Common pitfalls

- The POSIX installer needs Git, curl, tar and SHA-256 utilities; first-party installs run on Python 3.14 and the installer pins its own uv.
- On Android/Termux use the signed APT repository, not the install script. On native Windows use the PowerShell one-liner; some antivirus tools flag the bundled `uv.exe` as a false positive.
- Subagents start with no knowledge of the parent conversation; everything they need must go in `goal` and `context`.
- Raising `delegation.max_spawn_depth` multiplies concurrent agents and cost (depth 3 with 3 children each can reach 27 leaf agents).
- Do not run two agent processes against the same Hermes home directory; memory writes from both end up in each other's prompts.

Official quickstart: https://hermes-agent.nousresearch.com/docs/getting-started/installation

## Pros

- MIT-licensed and model-agnostic: works with OpenRouter, OpenAI, custom endpoints and Nous Portal, switched with hermes model. ([source](https://github.com/NousResearch/hermes-agent))
- Delegation supports background batches, JSON Schema output contracts, per-child steering and stop without affecting siblings. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation))
- Speaks MCP (client and server), A2A (both directions) and ACP (server), so it can sit next to editors, tools and other agent frameworks. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/messaging/a2a))
- Three approval modes, a hardline blocklist and user deny rules gate dangerous shell commands. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/security))
- Frequent tagged releases: four between 2026-09-11 and 2026-09-24. ([source](https://github.com/NousResearch/hermes-agent/releases))

## Cons

- The default approval mode (smart) lets an auxiliary LLM auto-approve commands it rates low-risk, and approvals can be switched off entirely with --yolo. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/security))
- Memory is capped at 2,200 characters for MEMORY.md and 1,375 for USER.md and does not auto-compact; the agent must prune entries itself. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/memory))
- Delegation is flat by default, subagents cannot ask the user questions, and deeper trees multiply cost with no hard ceiling. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation))
- The Tool Gateway (managed web search, image generation, TTS and browser) needs a paid Nous Portal subscription; without it each tool needs its own account and key. ([source](https://hermes-agent.nousresearch.com/docs/user-guide/features/tool-gateway))
- Open bug: a /goal waiting on a stalled delegated subagent can stay parked until another user turn arrives. ([source](https://github.com/NousResearch/hermes-agent/issues/120381))

## Alternatives

- [OpenClaw](https://multiagentguide.top/tools/openclaw.md) ([Hermes Agent vs OpenClaw](https://multiagentguide.top/compare/openclaw-vs-hermes-agent.md))
- [nanobot](https://multiagentguide.top/tools/nanobot.md)
- [OpenHands](https://multiagentguide.top/tools/openhands.md)
- [AnythingLLM](https://multiagentguide.top/tools/anything-llm.md)
- [Claude Code](https://multiagentguide.top/tools/claude-code.md)

## FAQ

### Does Hermes Agent support MCP and A2A?

Yes. It connects to MCP servers as a client and can run as an MCP server with hermes mcp serve. Its A2A plugin both serves tasks to other agents and calls remote A2A agents. AG-UI support is not documented.

### Is Hermes Agent free?

The code is MIT-licensed and works with your own provider keys. Nous Research also sells Nous Portal subscriptions, which bundle model access and a managed Tool Gateway for Hermes; they are optional.

### How does Hermes run multiple agents?

Three ways: delegate_task subagents inside one process, a Kanban board that coordinates several Hermes profiles as separate processes, and A2A for agents on other machines or frameworks.

### Can I move from OpenClaw to Hermes Agent?

The README documents hermes claw migrate, and hermes setup offers to import settings, memories, skills and API keys when it finds ~/.openclaw.

### What language is Hermes Agent written in?

Python; first-party installs run on Python 3.14, which the installer provisions.

## Sources

- [NousResearch/hermes-agent repository (README)](https://github.com/NousResearch/hermes-agent)
- [Releases](https://github.com/NousResearch/hermes-agent/releases)
- [A2A plugin source](https://github.com/NousResearch/hermes-agent/tree/main/plugins/platforms/a2a)
- [Issue #120381: /goal can remain parked after a stalled subagent wait](https://github.com/NousResearch/hermes-agent/issues/120381)
- [Hermes Agent homepage](https://hermes-agent.nousresearch.com)
- [Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs/)
- [Installation](https://hermes-agent.nousresearch.com/docs/getting-started/installation)
- [Quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart)
- [Architecture](https://hermes-agent.nousresearch.com/docs/developer-guide/architecture)
- [Subagent delegation](https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation)
- [Kanban (multi-agent board)](https://hermes-agent.nousresearch.com/docs/user-guide/features/kanban)
- [Codex app-server runtime](https://hermes-agent.nousresearch.com/docs/user-guide/features/codex-app-server-runtime)
- [Bundled skill: Claude Code](https://hermes-agent.nousresearch.com/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-claude-code)
- [Bundled skill: OpenCode](https://hermes-agent.nousresearch.com/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-opencode)
- [MCP](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp)
- [A2A](https://hermes-agent.nousresearch.com/docs/user-guide/messaging/a2a)
- [ACP host integration](https://hermes-agent.nousresearch.com/docs/user-guide/features/acp)
- [Security (approvals, pairing)](https://hermes-agent.nousresearch.com/docs/user-guide/security)
- [Persistent memory](https://hermes-agent.nousresearch.com/docs/user-guide/features/memory)
- [Nous Portal integration](https://hermes-agent.nousresearch.com/docs/integrations/nous-portal)
- [Tool Gateway](https://hermes-agent.nousresearch.com/docs/user-guide/features/tool-gateway)
- [AG-UI README integration list](https://github.com/ag-ui-protocol/ag-ui)

## Unknown fields

pricing_url: Nous Portal plans are managed at portal.nousresearch.com/manage-subscription, which the Hermes docs link to, but the page returned a Vercel browser checkpoint (HTTP 429) to curl and WebFetch, so no pricing page could be confirmed; pricing_model is open-core because the docs present the paid Nous Portal subscription and its Tool Gateway as the recommended way to run Hermes (https://hermes-agent.nousresearch.com/docs/integrations/nous-portal). protocols.agui: searched the README, docs llms.txt, docs sitemap, GitHub code search (ag-ui, agui) and the AG-UI README integration list; nothing found.

Corrections or removal requests: support@multiagentguide.top

---

Data as of 2026-09-30. Not affiliated with listed projects. HTML version: https://multiagentguide.top/tools/hermes-agent
