SKILL.md format · Skill Bundles · Conditional activation · GEPA evolution · Tap publishing · agentskills.io
Already running Hermes Agent but still pasting the same prompts every session? Nous Research shipped Hermes in early 2026; it hit 160k GitHub stars in two months. The thesis is not a bigger model—it is "the agent that grows with you." The engine is the Skills system: standardized, evolvable, cross-session procedural memory. This guide covers SKILL.md, Progressive Disclosure, Skill Bundles, conditional activation, Tap publishing, GEPA + DSPy self-evolution, and the open-source ecosystem—with comparison tables, a six-step runbook, and FAQ.
Unlike one-shot prompts, Hermes skills follow the agentskills.io open standard: persistent across sessions, loaded on demand, publishable as community Taps, portable to Claude Code and Cursor. If you already installed Hermes, see our install guide and memory architecture post. This article focuses on the Skills layer only.
Treating prompts as skills: Full injection every session; tokens grow linearly; no cross-session reuse of procedural steps.
Confusing Memory with Skills: Memory stores preferences and facts; Skills store SOPs for how to do something—different load timing and maintenance.
Weak description fields: Level 0 routing uses name + description only. Writing what it is instead of when to use it causes misfires or never loads.
Monolithic SKILL.md files: Over 500 lines in one file hits GEPA's 15KB cap and inflates Level 1 token cost.
Unstable hosts: Skill compounding needs 24/7 uptime; laptops sleep and break sessiondb collection for GEPA.
Prompt = sticky note. Memory = notebook. Skill = SOP manual—zero token cost until activated.
| Dimension | Prompt | Memory | Skills |
|---|---|---|---|
| Persistence | Current chat | Cross-session, permanent | Cross-session, permanent |
| Load timing | Always in context | Auto-injected each session | On demand |
| Token cost | Every turn | Small, stable | Zero before activation |
| Content type | Any intent | Preferences/facts | Procedural steps |
| Maintainer | User manual | Agent auto | User + Agent |
| Shareable | Hard | Private | Community Tap |
Required frontmatter: name (lowercase + hyphens, max 64 chars) and description (max 1024 chars, start with "Use when..."). Recommended: version, license, compatibility, experimental allowed-tools. Body sections: Overview, When to Use, Procedure, Common Pitfalls, Verification Checklist.
---
name: my-skill
description: |
Use when the user needs to [...].
Handles [...] and [...].
version: 1.0.0
metadata:
hermes:
requires_toolsets: [terminal]
fallback_for_toolsets: [web]
---
Directory layout under ~/.hermes/skills/my-category/my-skill/: SKILL.md (core, max ~500 lines), references/ (API docs), templates/, scripts/ (agent-executable).
| Level | Content | Trigger | Token cost |
|---|---|---|---|
| Level 0 | name + description | Session start, all skills | ~3K total |
| Level 1 | Full SKILL.md body | /skill-name or LLM match | File length |
| Level 2 | references/ scripts/ | LLM decides during execution | Per file |
A Bundle is a lightweight YAML at ~/.hermes/skill-bundles/<slug>.yaml. Running /bundle-name loads all listed skills at once. Bundle beats a same-name Skill; missing skills are skipped silently; Bundles do not alter system prompts (token-friendly).
name: backend-dev description: Full backend feature workflow. skills: - github-code-review - test-driven-development - github-pr-workflow instruction: | Always write failing tests first. Never push directly to main.
CLI: hermes bundles create backend-dev --skills github-code-review,test-driven-development,github-pr-workflow. Advanced bundles include research-session (arxiv + deep-research + plan + excalidraw) and mlops-deploy (vllm + llama-cpp + github-pr-workflow + systematic-debugging).
Configure under metadata.hermes: requires_toolsets/tools hides the skill when listed tools are missing; fallback_for_toolsets/tools hides when listed tools exist (fallback path). Example: DuckDuckGo search with fallback_for_tools: [web_search]—when FIRECRAWL_KEY or BRAVE_SEARCH_KEY enables paid web_search, DuckDuckGo disappears from the prompt; when API is down, the fallback surfaces.
Create directory: Add SKILL.md under ~/.hermes/skills/<category>/<skill-name>/ with clear "Use when..." triggers.
Split references: Move API docs to references/ after 500 lines; must stay under 15KB for GEPA guardrails.
Validate format: Run skills-ref validate ./my-skill for agentskills.io compliance.
Test activation: New session, run /my-skill or match by description; confirm Level 1 load and Procedure execution.
Bundle (optional): hermes bundles create <name> --skills a,b,c for one-shot workflows.
Publish Tap: GitHub repo + hermes skills tap add github:your-org/your-skills-tap; team runs tap update.
hermes skills install official/research/arxiv hermes skills install github:openai/skills/k8s hermes skills tap add github:my-org/my-skills hermes skills tap update hermes skills tap list
| Repository | Description | Highlight |
|---|---|---|
| ChuckSRQ/awesome-hermes-skills | Curated production skills | Deep Research, MLOps, Apple integration |
| amanning3390/hermeshub | Community registry | Security scan, marketplace, injection detection |
| kevinnft/ai-agent-skills | 191 skills, 28 categories | Hermes / Claude Code / Cursor one-click install |
| NousResearch/hermes-agent | Official repo | Built-in skills and authoring spec |
Tap repos use category folders (mlops/, research/) plus optional skills.sh.json for Hub grouping. Private repos: hermes skills tap add github:your-org/private-skills --token $GH_TOKEN. Version control ~/.hermes/skills/ with Git; cross-device sync via git pull && hermes skills reset.
Plugins package skills as plugin:skill: hidden from default skills_list, opt-in only, sibling skills cross-reference within the plugin. Load with skill_view("superpowers:writing-plans"). Declare paths in plugin.yaml.
Cross-platform: Same SKILL.md works on Hermes, Claude Code, Cursor, OpenCode. Copy to ~/.claude/skills/ or use kevinnft/ai-agent-skills install scripts.
GEPA (Genetic-Pareto Prompt Evolution) is ICLR 2026 Oral work integrated in hermes-agent-self-evolution. Pipeline: collect execution traces → reflective failure analysis → generate 10–20 SKILL.md variants → multi-objective Pareto eval (success × token efficiency × speed) → best variant opens a PR for human review. Cost: about $2–10 per run, API only, no GPU.
export HERMES_AGENT_PATH=~/.hermes
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source synthetic
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source sessiondb
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source mixed \
--trace-dirs ~/.claude/traces,~/.hermes/sessions
Four guardrails: full pytest pass; Skills ≤15KB, tool descriptions ≤500 chars; Prompt Cache safe; semantic preservation. Roadmap: Phase 1 Skill files (done) → tool descriptions → system prompts → tool code → fully automated loop.
agent_writes_require_approval: true in config.yamlPack seo-keyword-research, outline-generator, code-example-validator, bilingual-checker, publish-to-platform. Instruction: research SEO first, test code examples, generate bilingual titles. seo-keyword-research description targets blog planning; Procedure outputs keyword matrix for Chinese and English long-tail queries.
Laptops and x86 VPS can run Hermes CLI but break Skill compounding, GEPA sessiondb collection, and macOS browser skills. For teams treating Skills as production assets that get stronger over time, a Mac Mini M4 cloud rental bundles 24/7 uptime, UMA, and launchd into predictable OpEx.
When your Skills stack is ready and you need a production host, VpsMesh offers Mac Mini M4 cloud rental with SSH delivery and full ~/.hermes/ backup. See pricing, help center, and order page.
Skills are procedural docs; MCP is a tool interface. Complementary: MCP gives database access, a Skill teaches correct migration steps. See our MCP Server from scratch guide.
Edits do not apply in the current session. Run /reset or install with --now (invalidates Prompt Cache, higher token cost).
Four guardrails: full tests pass, 15KB cap, Prompt Cache safe, semantic check. Best variants open PRs requiring human review before merge.
Copy SKILL.md to ~/.claude/skills/ or Cursor skills dir; or use kevinnft/ai-agent-skills. agentskills.io keeps format consistent across agents.
x86 VPS works for API-only CLI. For GEPA sessiondb, macOS browser skills, or Tap Git sync, Mac Mini M4 rental is more stable. See pricing.