Hermes Agent v0.6.0 — The Multi-Instance Release
Overview
v0.6.0 — The Multi-Instance Release. Released March 30, 2026. 95 pull requests · 16 resolved issues · shipped in just 2 days.
This is the release that transformed Hermes Agent from a single-session assistant into a scalable, multi-instance infrastructure component. The headline feature — Profiles — lets you run multiple fully isolated Hermes instances from a single installation, each with its own config, memory, sessions, skills, and gateway service. Paired with the new MCP Server Mode, Docker container support, and ordered fallback provider chains, v0.6.0 is the first version of Hermes ready for production workloads.
The release also marks Hermes’s entry into the Chinese enterprise market with native Feishu/Lark and WeCom (Enterprise WeChat) adapters, alongside major upgrades to Telegram (webhook mode), Slack (multi-workspace OAuth), and six other messaging platforms.
As The NextGen Tech Insider noted, this version “transforms the agent from a single-session assistant into a scalable infrastructure component capable of running isolated workloads with distinct memory states on shared hardware.”
Major Features
1. Profiles — Multi-Instance Hermes
Run multiple isolated Hermes instances from the same installation. Each profile gets its own config, memory, sessions, skills, and gateway service — completely isolated with zero crossover.
# Create a new profile
hermes profile create my-work-agent
# List all profiles
hermes profile list
# Switch to a profile
hermes -p my-work-agent
# Export a profile for sharing/backup
hermes profile export my-work-agent > my-work-agent.tar.gz
# Import on another machine
hermes profile import my-work-agent.tar.gz
Key properties:
- Token-lock isolation — prevents two profiles from using the same bot credential, with clear error messages about which profile owns each credential
- Tab completion for profile names in all CLI commands
- Profile-aware display paths — all user-facing
~/.hermespaths show the correct profile directory - Lazy imports prevent
ImportErrorduringhermes updatewhen modules cache stale bytecode
This architecture is what makes Hermes a production-ready infrastructure tool: run a customer-support agent, a code-review agent, and a research agent simultaneously from one installation, each with completely separate memory and credentials. No more choosing between use cases.
2. MCP Server Mode
Expose Hermes conversations, sessions, and attachments to any MCP-compatible client — Claude Desktop, Cursor, VS Code, and more.
# Start MCP server via stdio (for Claude Desktop, etc.)
hermes mcp serve
# Start MCP server via Streamable HTTP (for network clients)
hermes mcp serve --transport streamable-http --port 3000
What MCP clients can do with Hermes:
- Browse conversation history and read individual messages
- Search across sessions for specific topics or code snippets
- Manage attachments (upload, download, list)
- Access the full context engine that Hermes builds over time
As MurmurCast summarized: “MCP server mode allows Hermes conversations and history to become accessible from other AI tools through a standardized protocol.” This is bidirectional MCP integration — Hermes can both consume MCP tools from external servers and serve its own context to external MCP clients.
3. Docker Container
Official Dockerfile for running Hermes Agent in containerized environments. Supports both CLI and gateway modes.
# Build the container
docker build -t hermes-agent .
# Run in CLI mode with volume-mounted config
docker run -it -v ~/.hermes:/root/.hermes hermes-agent
# Run in gateway mode
docker run -d -v ~/.hermes:/root/.hermes -p 8080:8080 hermes-agent hermes serve
Closes #850 — one of the earliest and most-requested community features.
4. Ordered Fallback Provider Chain
Configure multiple inference providers with automatic failover. When your primary provider returns errors or is unreachable, Hermes automatically tries the next provider in the chain.
# hermes.config.yaml
provider:
name: openai
model: gpt-5
fallback_providers:
- name: anthropic
model: claude-sonnet-4-20250514
- name: openrouter
model: google/gemini-2.5-pro
What this changes: Before v0.6.0, a provider outage meant your agent went silent. Now, Hermes degrades gracefully — the user may not even notice the failover happened. This, combined with the provider-switch api_mode fix (no more stale api_mode causing 404s after switching providers), makes provider management production-grade.
Additional provider improvements:
- Stop silent OpenRouter fallback — when no provider is configured, Hermes now raises a clear error instead of silently routing to OpenRouter
- Gemini 3.1 preview models added to OpenRouter and Nous Portal catalogs
- User-friendly 429 rate limit messages with Retry-After countdown
- Curated model lists preferred over live API probe when the probe returns fewer models
5. Feishu/Lark & WeCom — Chinese Enterprise Messaging
Two new first-class messaging platform adapters:
Feishu/Lark (飞书):
- Event subscriptions, message cards, group chat
- Image and file attachment support
- Interactive card callbacks
- Full gateway adapter parity with existing platforms
WeCom / Enterprise WeChat (企业微信):
- Text, image, and voice message support
- Group chat with callback verification
- Full message lifecycle management
# hermes.config.yaml — Feishu example
gateway:
platforms:
- platform: feishu
app_id: cli_xxxxx
app_secret: xxxxx
encrypt_key: xxxxx
verification_token: xxxxx
Closes #1788.
6. Slack Multi-Workspace OAuth
Connect a single Hermes gateway to multiple Slack workspaces via an OAuth token file. Each workspace gets its own bot token, resolved dynamically per incoming event.
# slack_oauth_tokens.json — one file, multiple workspaces
{
"workspaces": {
"T01ABCDEF": "xoxb-...",
"T02GHIJKL": "xoxb-..."
}
}
No more running separate gateway instances per workspace — one gateway handles them all.
7. Telegram Webhook Mode & Group Controls
Webhook mode — an alternative to long-polling for production deployments:
# Run Telegram adapter in webhook mode
# Faster response times, better behind reverse proxies
hermes serve --telegram-webhook-url https://your-domain.com/telegram/webhook
Group mention gating — configure exactly when the bot responds in groups:
gateway:
platforms:
- platform: telegram
group_mention_policy: mentioned # 'always' | 'mentioned' | regex pattern
Also: gracefully handle deleted reply targets — no more crashes when the message being replied to was deleted (#3229).
8. Exa Search Backend
Add Exa as an alternative web search and content extraction backend alongside Firecrawl and DuckDuckGo.
# Set your Exa API key
export EXA_API_KEY=your-key-here
# hermes.config.yaml
tools:
web_search:
preferred_backend: exa # or 'firecrawl', 'duckduckgo'
Exa offers semantic search capabilities that complement the existing backends, particularly useful for research-intensive agent workflows.
9. Skills & Credentials on Remote Backends
Mount skill directories and credential files into Modal and Docker containers, so remote terminal sessions have access to the same skills and secrets as local execution.
# hermes.config.yaml
terminal:
remote_backend: modal # or 'docker'
mount_skills: true
mount_credentials: true
New Built-in Tools & Skills
| Tool / Skill | Description |
|---|---|
| Exa Search | Semantic web search and content extraction backend |
| MCP Dynamic Tool Discovery | Respond to notifications/tools/list_changed — pick up new tools from MCP servers without reconnecting |
| memento-flashcards | Spaced repetition flashcard system (new skill) |
| songwriting-and-ai-music | Songwriting craft and AI music generation prompts (new skill) |
| SiYuan Note | Integration with SiYuan note-taking app (new skill) |
| Scrapling | Web scraping skill using Scrapling library (new skill) |
| one-three-one-rule | Communication framework skill (new skill) |
| Boot-md hook | Example built-in hook to run a BOOT.md file on gateway startup |
And the Plugin System gained:
hermes plugins enable/disable <name>— manage plugin state without removing themctx.inject_message()— plugins can now inject messages into the conversation stream on behalf of the user- Honcho self-hosted support — local Honcho instances without requiring an API key
Messaging Platform Updates
Discord
- Message processing reactions — adds a reaction emoji while processing, removes it when done (visual feedback in channels)
- DISCORD_IGNORE_NO_MENTION — skip messages that @mention other users/bots but not Hermes
- Clean up deferred “thinking…” — properly removes the “thinking…” indicator after slash commands complete
- Persistent aiohttp session — reuse HTTP connections across requests
- LID-phone alias resolution — correctly match Linked ID and phone number formats in allowlists
- Skip reply prefix in bot mode — cleaner message formatting
Matrix
- Native voice messages via MSC3245 — send voice messages as proper Matrix voice events instead of file attachments
Mattermost
- Configurable mention behavior — respond to messages without requiring @mention
Signal
- URL-encode phone numbers and correct attachment RPC parameter — fixes delivery failures with certain phone number formats
- Close SMTP/IMAP connections on failure — prevents connection leaks during error scenarios
Gateway Core Improvements
- Atomic config writes — prevent data loss during gateway crashes
- Home channel env overrides — environment variable overrides applied consistently for home channels
- Replace print() with logger — BasePlatformAdapter now uses proper logging instead of print statements
- Cron delivery labels — resolve human-friendly delivery labels via channel directory
- Cron [SILENT] tightening — prevent agents from prefixing reports with [SILENT] to suppress delivery
- Background task media delivery and vision download timeout fixes
CLI & UX Improvements
- Configurable tool preview length — show full file paths by default instead of truncating
- Tool token context display —
hermes toolschecklist now shows estimated token cost per toolset - Session export stdout support — export sessions to stdout with
-for piping - Configurable approval timeouts — set how long dangerous command approval prompts wait before auto-denying
- Clear pycache during update — prevents stale bytecode ImportError after
hermes update - Auto-install matrix-nio during
hermes setupwhen Matrix is selected - Lazy-initialized tools show yellow in banner instead of red — reducing false alarm about “missing” tools
- Various TTY and status bar fixes for smoother terminal experience
Security & Reliability
Security Hardening
- Hardened dangerous command detection — expanded pattern matching for risky shell commands and sensitive path guards (
/etc/,/boot/,docker.sock) - Sensitive path write checks in approval system — catch writes to system config files through file tools
- Secret redaction expansion — now covers ElevenLabs, Tavily, and Exa API keys
- Vision file rejection — reject non-image files passed to vision analysis to prevent information disclosure
- Category path traversal blocking — prevent
../attacks in skill category names
Reliability
- Atomic config.yaml writes — prevent data loss during gateway crashes
- Clear pycache on update — prevent stale bytecode ImportError
- Terminal timeout preserves partial output — no more lost command output on timeout
- Restore terminalbench2 from patch corruption — recovered file damaged by patch tool’s secret redaction
Notable Bug Fixes
- api_mode stale on provider switch — switching providers via
hermes modelnow correctly clears staleapi_mode, fixing 404s for providers with Anthropic-compatible endpoints (#3685) - Telegram deleted reply targets — gracefully handle replies to deleted messages instead of crashing (#3229)
- Discord “thinking…” persistence — properly cleans up deferred response indicators (#3595)
- WhatsApp LID-phone aliases — fixes allowlist matching failures with Linked ID format
- Signal URL-encoded phone numbers — fixes delivery failures with certain formats
- Email connection leaks — properly close SMTP/IMAP connections on error
- Tool schema KeyError ‘name’ — ensure name field always present in tool definitions (#3729)
- _safe_print ValueError — no more gateway thread crashes on closed stdout (#3534)
Upgrade
hermes update
For new installations, visit the install guide.
← Hermes Agent Changelog