← Home

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 Hub
  • hermes skills install official/security/1password — install by registry path
  • hermes skills publish — share a skill to the Hub
  • hermes skills audit — review skill permissions
  • hermes 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_KEY or a self-hosted FIRECRAWL_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:

TermIn OpenClawIn Hermes
SkillsInstallable plugins from ClawHub marketplace (3,000+)Official term for all extensions; 652 skills on the public Skills Hub
ToolsSubset of skills focused on function-calling capabilitiesAlso used for built-in capabilities (web_tools, terminal_tool, etc.)
PluginsBroader term covering skills + channel integrations + platform hooksNot 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 HermesOpenClaw Launch
Built-in toolsAll categories; configure via env vars and config.yamlAll categories; configure from Dashboard UI
Skills Hubhermes skills install ... from the 652-skill HubHub install support on the OpenClaw Launch roadmap
MCP serversmcp_servers: block in config.yaml; hermes mcp CLIMCP config via Dashboard settings panel
ConfigurationEdit config.yaml and environment variables manuallyWeb UI with guided setup; no file editing required
Approvals UICLI-based: hermes pairing approve ...; dashboard at :9119Approval prompts surfaced in the OpenClaw Launch instance panel
CostVPS cost ($5–20/mo) + your own API keysFrom $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

All Built-in Tools, Zero Configuration

Deploy Hermes Agent with web search, image generation, and shell execution ready to use. No YAML editing, no environment variable juggling.

Deploy Hermes on OpenClaw Launch