Hermes Agent v0.15.0 Adds Built-in MCP Catalog and Skill Bundles

Hermes Agent v0.15.0 shipped on May 28 with 747 merged PRs from 321 contributors across 1,302 commits[^1]. The headliners are a built-in MCP Catalog with an interactive picker and Skill Bundles that collapse multiple skill loads into a single slash command. Under the hood, the agent's core loop was restructured, session search was rebuilt to run without an LLM, and Kanban grew into a multi-agent platform.
[^1]: NousResearch. "Hermes Agent v0.15.0 (v2026.5.28) — The Velocity Release." GitHub. May 28, 2026.
MCP Catalog: discover and install from inside Hermes
Before v0.15.0, connecting an MCP server to Hermes meant finding a compatible server on GitHub, editing config.yaml by hand, sourcing API keys, and restarting the agent. The new MCP Catalog replaces all of that with a single command.
Run hermes mcp and an interactive curses picker lists every Nous-vetted MCP server entry. Select one, press Enter, and the installer clones the repo, creates a virtual environment, prompts for the required API key, and writes an entry to ~/.hermes/.env. No config edits, no restart, no hunting for manifests on GitHub.
The catalog ships with a v1 manifest schema that each entry must follow:
manifest_version: 1
name: n8n
description: Local workflow automation
source: https://github.com/CyberSamuraiX/hermes-n8n-mcp
transport:
type: stdio
command: "${INSTALL_DIR}/.venv/bin/python"
args: ["${INSTALL_DIR}/server.py"]
install:
type: git
url: https://github.com/CyberSamuraiX/hermes-n8n-mcp
ref: main
bootstrap: ["python3 -m venv .venv", ".venv/bin/pip install -r requirements.txt"]
auth:
type: api_key
env:
- {name: N8N_API_KEY, prompt: "API key", secret: true, required: true}
The bootstrap array runs automatically during install. Ref pins are explicit and never float. Auth entries declare what credentials are needed and the installer prompts for them interactively.
"The MCP (Model Communication Protocol) Catalog in Hermes Agent currently includes two preconfigured, Nous-approved entries: n8n for local workflow automation, and Linear for remote project management."
— @grok, May 27, 2026
The directory lives at optional-mcps/<name>/manifest.yaml. Only entries vetted by Nous Research are included. There is no community tier or unlisted install path - every entry in the picker has been reviewed.
Skill Bundles: one slash command, multiple skills
Skill Bundles are minimal YAML files that group several skills under one slash command. Instead of typing /github-code-review then /test-driven-development then /github-pr-workflow in sequence, a single /backend-dev loads all three as a combined message.
The schema is straightforward:
name: backend-dev
description: Backend feature work.
skills:
- github-code-review
- test-driven-development
- github-pr-workflow
instruction: |
Optional extra guidance prepended to the loaded skills.
Bundles live in ~/.hermes/skill-bundles/<slug>.yaml. The name field defaults to the filename stem. description and instruction are optional. skills is required and must be non-empty.
The key architectural decision: bundles generate a fresh user message at invocation time, matching how individual skills work. There is no system-prompt mutation. The LLM receives the combined skill content as part of the conversation, which means the prompt cache stays intact across bundle loads.
Bundles take precedence over individual skills when slugs collide. Naming a bundle research means /research invokes the bundle, not the skill. Missing skills are skipped with a note in the bundle message rather than halting execution.
Bundle support is wired into every surface - CLI, TUI, dashboard, and all gateway platforms (Discord, Telegram, Slack, WhatsApp). The CLI autocomplete provider shows bundles with a ▣ marker and lists how many skills each one loads.
Performance: the quiet story
Beyond the user-visible features, v0.15.0 continued the cold-start optimization wave that began in v0.14.0.
The most significant restructuring: run_agent.py was reduced from 16,083 lines to 3,821, with the extracted code redistributed across 14 cohesive modules under agent/. The file that previously took 90 seconds to open in an editor now loads instantly. External callers are unaffected. Every extraction preserves a thin forwarder on AIAgent.
Cold-start benchmarks across three optimization rounds:
| Metric | Before | After | Change |
|---|---|---|---|
| Termux cold start | 2.9s | 0.8s | -72% |
| hermes --version cold | 701ms | 258ms | -63% |
| Per-turn function calls (31-turn chat) | 399k | 213k | -47% |
| session_search | ~90s + $0.30/call | ~20ms, free | ~4,500x |
| run_agent.py size | 16,083 lines | 3,821 lines | -76% |
The session_search rebuild deserves attention. The old implementation used a separate LLM call to summarize search results, costing roughly $0.30 per invocation and taking approximately 90 seconds for three sessions. The new implementation uses three modes (discovery, scroll, browse) inferred from the arguments passed, with no LLM involved and no configuration required. Discovery completes in roughly 20 milliseconds.
Kanban as a multi-agent platform
Kanban received 104 PRs in this release, transforming from a task board into a full orchestration layer. The headline feature is swarm topology: hermes kanban swarm creates a complete multi-agent graph in one command with a root task, parallel workers, a gated verifier, a gated synthesizer, and a shared blackboard for inter-agent communication.
Additional capabilities: per-task model overrides allow assigning cheaper models to boilerplate tasks and reserving expensive ones for hard sub-tasks. Board-level default workdirs, per-task worktree paths, configurable claim TTLs, retry fingerprinting, stale-task detection, and respawn guards make the platform practical for continuous operation. Workers expose their status through /workers/active, /runs/{id}, and /inspect endpoints.
"Hermes Agent v0.15.0 is out now! 747 PRs by 321 Contributors - thank you all for the work on this release! Some Highlights: NFTY Platform added to gateway channels, Skill Bundles and MCP Catalog, Krea 2, Opus 4.8, Qwen 3.7 and more models supported, Deep xAI integrations."
— @Teknium, May 28, 2026
The release also added the OpenHands orchestration skill as a drop-in worker for kanban swarms alongside Claude Code, Codex, and OpenCode - notable because OpenHands is model-agnostic, accepting any LiteLLM-supported provider rather than being locked to a single vendor.
A same-day hotfix (v0.15.1) followed with 21 merged PRs addressing a dashboard 401 reload loop in loopback mode, kanban worker SIGTERM handling, and Docker --insecure opt-in. The full release addressed 560+ issues: 15 P0, 65 P1, and 19 security-tagged.