What a skill actually is
A Hermes skill is a Markdown file with YAML frontmatter stored in ~/.hermes/skills/. The frontmatter describes the skill — name, description, when to use it. The body contains instructions in natural language. No compiled code required to write a basic skill.
The agent reads skills into context when they are relevant. It decides which skills to load based on the description field in the frontmatter. A skill for 'deploy a Next.js app to Vercel' loads when you ask about Vercel deployments and stays out of context for unrelated tasks. Skills can also include executable code (Python, JavaScript, bash) that runs inside the agent's Docker sandbox — functioning as mini-programs the agent can invoke when the natural language instructions call for it.
The skill file format
Skills live in ~/.hermes/skills/ with a .md extension. Key YAML frontmatter fields:
The description field is the most important — it determines when the agent loads this skill. Write it as a trigger condition: 'Use when...' or 'When the user asks about...'. A vague description loader gets triggered for unrelated tasks and wastes context tokens. A description that is too narrow means the skill gets missed when it should apply. Specific trigger language is worth the extra time to write.
Key fields: name (internal identifier used in CLI commands), description (natural language trigger, critical), version (used for updates and rollback), author (shown on Skills Hub if published), tags (for hermes skills list filtering), platforms (which gateways can use this skill — defaults to all if omitted).
How Hermes self-creates and improves skills
When the agent successfully completes a complex task it is likely to face again, it can write the procedure as a new skill in ~/.hermes/skills/. On the next occurrence: load the skill, follow the documented procedure, and if the procedure runs better or differently, update the skill file. This is the feature that distinguishes Hermes from most AI agents — no other mainstream agent framework in 2026 has a working equivalent.
In practice: ask Hermes to set up a new Python project with a specific structure — a venv, pytest, linting config. It works through the steps, succeeds, and writes a create-python-project.md skill. Next time you ask for the same setup, it loads the skill and executes faster. If you later change your preferred structure, update the skill to match.
This does not happen automatically for every task — the agent decides when a procedure is worth codifying. You can also prompt it explicitly: 'Package what you just did as a skill so you can do it faster next time.' Skill versioning means the agent can roll back an update that broke something.
The Skills Hub — agentskills.io
The Skills Hub at agentskills.io is Hermes's community skill marketplace. Skills are submitted by community members and installable directly from the CLI:
Categories on the Hub include: development tools (deployment, testing, CI), productivity (email management, calendar, task tracking), data processing (scraping, file conversion), system administration, API integrations (Stripe, GitHub, Notion), and lifestyle (personal finance, health tracking).
Not all skills undergo security review. The same caution applies as installing any third-party package: read the skill file before running it in an environment with credentials or shell access. A skill calling a remote URL on your behalf, running shell commands with elevated permissions, or reading sensitive files deserves scrutiny before you install it. Check the author's publish history, read the implementation, and do not install anything touching your data from an author with no track record.
Hermes skills vs OpenClaw plugins
OpenClaw uses a plugin system hosted on ClawHub. The structural differences:
| Feature | Hermes Skills | OpenClaw Plugins |
|---|---|---|
| Format | Markdown + YAML | TypeScript/JavaScript module |
| Self-creation | Yes | No |
| Self-improvement | Yes | No |
| Marketplace | agentskills.io | clawhub.io |
| Security record | No public CVEs | 400+ malicious plugins reported |
| Installation | hermes skills install | openclaw plugins install |
The OpenClaw plugin system is more powerful for developers who want to write full TypeScript modules with complex logic. Hermes skills are more accessible — most users can write a working skill in 5 minutes without writing code. The self-creation feature has no OpenClaw equivalent. The 400+ malicious plugin figure comes from OpenClaw's own ClawHub community disclosures. The Hermes Skills Hub has not had a comparable public incident, partly because it is newer and smaller.
Writing your first skill
Create a skill file directly:
Minimal working example — a skill that formats Git commit messages:
Test it:
The agent loads the skill because 'commit message' matches the trigger description.
For skills with code execution, add a code block with a language tag:
Make the intent for code blocks explicit in your prose instructions — the agent decides when to execute vs. use them as reference.
Managing and sharing skills
Useful skills commands:
Skills are included in profile exports (hermes profile export <name>), making them portable between machines. When migrating from OpenClaw with hermes claw migrate, Hermes-compatible OpenClaw plugins convert to the skill format automatically where possible. Plugin types requiring TypeScript compilation fall back to stubs that describe what the original plugin did — those need manual rewriting.
On Hermes OS, skills work identically to self-hosted — stored in the instance's persistent volume, surviving container restarts. The self-creation loop is particularly useful here: an instance you have been using for six months accumulates a skill library tuned to your exact working patterns. That library is backed up automatically and included in profile exports.