Guides
Tools & integrations
Troubleshooting
Questions
What are skills?
Skills are on-demand instruction documents, each a folder with a SKILL.md file, that teach the agent how to do a particular task. They follow the agentskills.io open standard. The agent only sees a short list of names and descriptions until it actually needs a skill, which keeps token use down.
Every installed skill also works as a slash command, such as /github-pr-workflow.
Where are skills stored?
All skills live in ~/.hermes/skills/. Bundled skills are copied there on install, and hub-installed and agent-created skills land there too. You can also point Hermes at extra external skill directories.
Each profile gets its own skills folder, and hermes update adds newly bundled skills to every profile.
How do I find, choose and install skills and plugins?
Skills: use hermes skills browse or hermes skills search <query>, preview with hermes skills inspect <id>, then hermes skills install <id>, which runs a security scan first. Official optional skills use ids like official/security/1password; other sources include skills.sh, GitHub repos and direct SKILL.md URLs. In Hermes Desktop the Skills tab lists the whole optional catalog with one-click Install. hermes skills check and hermes skills update keep hub skills current.
Plugins: hermes plugins search <term> searches the curated plugin catalog and hermes plugins install <name> installs the reviewed, SHA-pinned version. In Desktop the same catalog lives under Capabilities > Plugins, with Official, Verified and Community tier filters.
There's no single must-have list. Hermes already ships dozens of bundled skills (GitHub, Google Workspace, Obsidian, PDF and Office files, research and more), so start with those, then add an official skill or plugin when a specific task needs it. Disable what you don't use with hermes skills config and hermes tools, since every enabled tool costs context.
Does Hermes write its own skills or plugins, and how do I make it save a lesson reliably?
Yes. With its skill_manage tool the agent creates, updates and deletes skills, for example after working out a multi-step workflow, finding a fix after dead ends, or being corrected by you. A background review after a session can also suggest or stage skill changes. The docs call this procedural memory.
It's a judgment call by the model, so don't rely on it happening silently. To make it explicit, ask ("save this as a skill") or use /learn followed by what to learn from: a folder, a URL, notes, or the workflow you just walked it through. It then writes a SKILL.md to the house standards.
It can build plugins too, such as Desktop UI plugins in ~/.hermes/desktop-plugins/, guided by the bundled hermes-agent skill, but review plugin code before you enable it because plugins aren't sandboxed. If you'd rather approve skill changes first, turn on skills.write_approval.
What's the difference between plugins and MCP servers?
Plugins are Python packages in ~/.hermes/plugins/ (a plugin.yaml manifest plus code) that add tools, hooks and integrations directly inside Hermes. Install them with hermes plugins install and enable them with hermes plugins enable <name>.
MCP servers are separate programs that speak the Model Context Protocol. Hermes connects to them and uses their tools. Choose MCP when a tool already exists as an MCP server, and a plugin when you're building something Hermes-specific.
PermalinkHow do I connect an MCP server, including a custom one?
From the curated catalog: run hermes mcp to pick interactively, or hermes mcp install <name> to add one; hermes mcp login <name> handles servers that need OAuth. In Hermes Desktop, Capabilities > Connectors has the catalog and an add-server form; after installing, start a new chat and ask for it by name.
For a custom server, add it under mcp_servers in ~/.hermes/config.yaml. Local servers use command and args; remote ones use url and optional headers. For a remote OAuth server you can also run hermes mcp add --url <url> --auth oauth <name>. Hermes discovers the tools at startup, and /reload-mcp picks up changes.
Use the per-server tools.include and tools.exclude settings to expose only the tools you need.
Can Claude Code, Cursor or Codex use Hermes as a tool?
Yes. hermes mcp serve runs Hermes as a stdio MCP server, so other MCP clients can use its messaging side: list conversations, read message history and send messages across all the platforms your gateway has connected. Add it to the client's MCP config with command hermes and args mcp serve; the client starts and stops the process.
It's handy when a coding agent should post to or read from Telegram, Discord or Slack through your existing Hermes setup.
PermalinkWhy don’t all my skills show up in Telegram’s command menu?
Telegram allows at most 100 bot commands and also limits the menu's total payload size, so a long skill list can overflow it. Run hermes skills config to disable skills per platform (it writes skills.platform_disabled in config.yaml), then restart the gateway with hermes gateway restart, because the menu is rebuilt at startup.
Skill descriptions are truncated to 40 characters in the Telegram menu. Disabling skills you don't use there helps with both limits.
PermalinkHow do web search and fetch work, and do I need a paid key? Is DeepSeek supported?
The agent's web_search and web_extract tools run on a backend you choose with hermes tools (in Desktop, Capabilities > Tools > Web Search & Scraping). You don't need a paid key: DDGS (DuckDuckGo) needs none and self-hosted SearXNG is free, though both are search-only, and Firecrawl, Exa, Parallel and Tavily have keyless or free options. A Nous Portal plan includes managed search through its Tool Gateway.
You can mix providers per capability, for example SearXNG for search and Firecrawl for extraction. For logged-in or interactive pages, the agent uses its browser tools instead.
DeepSeek Search & Fetch isn't a built-in backend, but the plugin catalog lists community plugins that add it, such as deepseek-search-fetch (hermes plugins install deepseek-search-fetch). It needs your own DeepSeek API key and is billed to your DeepSeek balance.
How do I make Hermes use a specific skill or tool instead of its default?
For a skill, call it directly: every installed skill is a slash command (/<skill-name>, or /skill <name>), which loads it for that message. Naming it in your request also helps, as does attaching skills to scheduled jobs with --skill.
For tools, change what's available. Web search and extraction run on whatever backend you pick in hermes tools (for example SearXNG or DDGS instead of Firecrawl), and the agent can't fall back to an unselected one. Turn off toolsets you don't want with hermes tools, or /tools disable <name> for the current session.
If a preference should always apply, write it into SOUL.md or the project's AGENTS.md ("use the X skill for Y").
How many skills, tools and plugins can I add before performance suffers?
Skills scale well. The agent sees only a short index of names and descriptions and loads a skill's full instructions when it needs one, so hundreds of installed skills cost little.
Tools are different: core tool schemas are sent on every call. MCP and plugin tools are deferred by default through Tool Search, which lets the model look up and load a tool's schema only when it needs it, but every enabled toolset still adds weight.
To see your real cost, run /context all (per-skill and per-toolset costs) or hermes prompt-size (the fixed prompt sent on every call). Then disable what you don't use with hermes tools and hermes skills config.
Can Hermes see and control my phone?
Not out of the box. Hermes' built-in computer use drives desktops (macOS, Windows, Linux), and your phone is normally just a chat client through Telegram, WhatsApp or another messaging app.
The plugin catalog does list community plugins for it. phone-harness drives an iPhone through iPhone Mirroring on a Mac, an Android phone over adb, or a cloud phone, and android-emulator controls a headless Android emulator on Linux. These are community-tier, not maintained by Nous, and act on your real phone and accounts, so read their disclosures first; phone-harness sends each action to Hermes' approval prompt unless you opt in to auto-run.
Android users can also run Hermes itself on the phone through the official Termux package (64-bit ARM only).
PermalinkShould I use Composio for app connections?
Hermes has no built-in Composio integration, and it isn't in the official MCP or plugin catalogs. If a service offers an MCP server you trust, you can add it like any custom MCP server under mcp_servers.
What Hermes does provide: hosted connectors (apps such as Gmail reached through the Nous Tool Gateway, managed with hermes connectors), a curated MCP catalog with vendor-hosted servers for Atlassian, Notion, Linear, Stripe and others (hermes mcp install <name>), the plugin catalog, and bundled skills like Google Workspace and Notion.
Prefer the route that grants the least access for the job, and connect only the accounts the agent needs.
Permalink