Hermes Agent Guide
Hermes Agent Skills
Hermes Agent extends its AI capabilities through a Skills system — the official upstream term for installable and built-in extensions. This guide covers the public Skills Hub, the built-in tool categories, MCP server support, and how to add your own skills via the CLI or auto-generation.
The Hermes Skills System
Hermes uses Skills as its primary term for agent extensions. Skills live locally in ~/.hermes/skills/. You can also point Hermes at additional directories via the external_dirs setting in config.yaml, which lets teams share skill libraries without pushing to the Hub.
Hermes has a public Skills Hub with 652 skills across 4 registries: 72 built-in, 59 optional, and 521 community skills — see hermes-agent.nousresearch.com/docs/skills/. The Hub includes categories you might not expect from an agent framework: media generation (ascii-video, manim-video, heartmula music, audiocraft-audio-generation), productivity integrations (linear, notion, github-pr-workflow, youtube-content), and AI tooling (claude-code, architecture-diagram, segment-anything-model).
Installing Skills from the Hub
The hermes skills CLI manages the full skill lifecycle:
hermes skills browse— explore the Hubhermes skills install official/security/1password— install by registry pathhermes skills publish— share a skill to the Hubhermes skills audit— review skill permissionshermes skills configure— set skill-level config
Auto-Generated Skills
Hermes can generate new skills automatically. After a complex task that involved 5 or more tool calls, the agent's skill_manage tool captures the successful pattern and writes it as a reusable skill into ~/.hermes/skills/. This means your local skill library grows over time as Hermes learns workflows specific to your environment.
Built-in Tool Categories
Every Hermes deployment ships with a set of core built-in tools. These are available out of the box and do not require a Hub install — only the relevant API keys or configuration to activate them.
1. Web Search
Hermes supports four first-class search providers, each wired in tools/web_tools.py:
- Tavily — AI-optimized search with structured results. Requires
TAVILY_API_KEY. - Exa — Semantic search with content extraction. Requires
EXA_API_KEY. - Parallel — Concurrent multi-source search. Requires
PARALLEL_API_KEY. - Firecrawl — Web crawl and content scraping. Requires
FIRECRAWL_API_KEYor a self-hostedFIRECRAWL_API_URL.
Hermes auto-selects the provider based on which API key is set in the environment. If none of the above keys are present, Hermes falls back to an optional DuckDuckGo skill (no API key required).
2. Image Generation
Image generation uses the FAL.ai platform and supports nine FAL models including FLUX 2 Klein 9B (the default), FLUX 2 Pro, GPT Image 1.5, Ideogram V3, and Recraft V4 Pro. Configure it with the FAL_KEY and optional FAL_IMAGE_MODEL environment variables.
Additional media generation skills are available on the Hub — including video and music generation — installable via hermes skills install.
3. Shell Execution
The shell execution tool lets Hermes run commands on local, Docker, Modal, SSH, Singularity, or Daytona execution environments in both foreground and background modes. Because shell exec can run arbitrary commands, Hermes wraps it in an approval policy system (see below).
4. Memory
Hermes includes persistent memory that lets the agent carry context across sessions. For in-depth details on how memory is stored, retrieved, and configured, see the Hermes Agent Memory guide.
5. OpenAI-Compatible API Server
Hermes ships a built-in API server that exposes an OpenAI-compatible interface on port 8642 by default. To enable it, set API_SERVER_ENABLED=true and API_SERVER_KEY=... in ~/.hermes/.env. Additional env vars (API_SERVER_HOST, API_SERVER_PORT, API_SERVER_CORS_ORIGINS, API_SERVER_MODEL_NAME) control binding and CORS. Note: config.yaml support for the API server is not yet available and is planned for a future release.
How Tools Get Invoked
Hermes tools are invoked by the agent itself during response generation. The key governance mechanism is the approvals policy, configured via approvals.mode at the root level of config.yaml:
manual— Every tool call prompts for human approval before executing. Maximum safety.smart— Low-risk tool calls proceed automatically; higher-risk calls (especially shell exec) prompt for approval.off— All tool calls execute without prompts. Use only in trusted automated pipelines.
Approvals also support a command_allowlist where specific commands can be pre-approved at three scopes: once, session, or always. The default approval timeout is 60 seconds, configurable via approvals.timeout. The approvals.cron_mode option adjusts behavior for unattended scheduled tasks.
MCP Server Support
Hermes supports MCP (Model Context Protocol) servers natively. Add them to the mcp_servers: block in config.yaml. The hermes mcp CLI also lets you run Hermes itself as an MCP server for other agents to consume.
A minimal MCP server entry looks like this:
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]Whitelisting tools via tools.include is recommended for sensitive systems. After editing MCP config, run /reload-mcp in the agent session to apply changes without restarting.
Adding Custom Skills / Extending Hermes
Beyond the Hub, you can write your own skills that follow the same interface as built-in tools. Drop them into ~/.hermes/skills/ or register an external directory via external_dirs in config.yaml.
The hermes skills CLI handles the full lifecycle: browse, install, publish, audit, and configure. Skills can also be auto-generated by the agent via the skill_manage tool — after a complex successful task (5+ tool calls), Hermes captures the pattern as a reusable skill automatically.
For upstream skill development reference, see the upstream Hermes repository.
Skills vs Tools vs Plugins: Terminology Primer
The same concept carries different names depending on which agent framework you are using. Here is how the terms map:
| Term | In OpenClaw | In Hermes |
|---|---|---|
| Skills | Installable plugins from ClawHub marketplace (3,000+) | Official term for all extensions; 652 skills on the public Skills Hub |
| Tools | Subset of skills focused on function-calling capabilities | Also used for built-in capabilities (web_tools, terminal_tool, etc.) |
| Plugins | Broader term covering skills + channel integrations + platform hooks | Not a first-class term in Hermes; skills and tools cover the same ground |
Hermes Skills on OpenClaw Launch
When you deploy a Hermes instance through OpenClaw Launch, all built-in tool categories ship with the container. You configure which tools are active by providing the relevant API keys from your Dashboard — no command-line config editing or Docker restarts needed for initial setup. The approvals policy and shell execution environment are configurable from the instance settings panel.
Self-Host vs OpenClaw Launch
| Self-Host Hermes | OpenClaw Launch | |
|---|---|---|
| Built-in tools | All categories; configure via env vars and config.yaml | All categories; configure from Dashboard UI |
| Skills Hub | hermes skills install ... from the 652-skill Hub | Hub install support on the OpenClaw Launch roadmap |
| MCP servers | mcp_servers: block in config.yaml; hermes mcp CLI | MCP config via Dashboard settings panel |
| Configuration | Edit config.yaml and environment variables manually | Web UI with guided setup; no file editing required |
| Approvals UI | CLI-based: hermes pairing approve ...; dashboard at :9119 | Approval prompts surfaced in the OpenClaw Launch instance panel |
| Cost | VPS cost ($5–20/mo) + your own API keys | From $3/mo managed; bring your own API keys |
Frequently Asked Questions
Does Hermes have a skills marketplace?
Yes. Hermes has a public Skills Hub with 652 skills across 4 registries (72 built-in, 59 optional, 521 community) — see hermes-agent.nousresearch.com/docs/skills/. Install skills with hermes skills install <registry/path>.
Are Hermes skills the same as OpenClaw skills?
Both are installable extensions, but the underlying systems differ. OpenClaw skills are npm packages pulled from ClawHub at runtime. Hermes skills are installed via the hermes skills CLI from the public Skills Hub or loaded from local directories. Both frameworks use “skills” as their primary term for extensions.
Can I disable a built-in Hermes tool?
Yes. Tools that require API keys (web search, image generation) are effectively disabled when no key is provided. For shell execution, you can set approvals.mode to manual to require human approval before any command runs. Refer to the upstream Hermes documentation for config fields to fully disable specific tools.
Does Hermes support MCP servers?
Yes. Hermes supports MCP servers natively. Add them to the mcp_servers: block in config.yaml. The hermes mcp CLI also lets you run Hermes itself as an MCP server for other agents to consume.
How do I enable the Hermes API server?
Set API_SERVER_ENABLED=true and API_SERVER_KEY=... in ~/.hermes/.env. The API server is not yet configurable via config.yaml — env vars are the only supported method; config.yaml support is planned for a future release.
What is the Hermes dashboard Skills page?
The Hermes dashboard (FastAPI + React, available at port 9119 when self-hosted) includes a Skills page that shows the tools and skills loaded at runtime, their configuration status, and any optional or community skills enabled for the instance.
Related Guides
- What is Hermes Agent? — Overview of the Hermes Agent framework and how it compares to OpenClaw
- Install Hermes Agent — Self-host Hermes with Docker on your own server
- Hermes Agent Memory — How Hermes persists and retrieves context across sessions
- OpenClaw Skills Marketplace — Browse 3,000+ installable skills for OpenClaw agents
- Hermes vs OpenClaw — Full feature comparison between the two frameworks