Introduction
Reading the docs only gets you so far. The fastest way to understand what skills are good for is to look at the ones already in the wild. Hermes ships with a small set of bundled skills, the official hub adds more, and the community contributes via skills.sh, GitHub taps, and well-known endpoints. A few recurring patterns explain most of them.
Key Concepts
- Bundled skill: Ships inside the Hermes repo. Copied to
~/.hermes/skills/on first launch. Examples:plan,duckduckgo-search. - Official optional skill: Lives in
optional-skills/in the Hermes repo. Install withhermes skills install official/<category>/<name>. - Community skill: Anything from skills.sh, custom GitHub taps, well-known endpoints, or direct URLs. Always installed with a security scan.
- Category: A directory under
~/.hermes/skills/that groups related skills (e.g.,mlops/,devops/,productivity/).
Real World Context
A developer types /plan migrate auth from JWT to session cookies. The bundled plan skill loads, instructing the agent to inspect the codebase, write an implementation plan to .hermes/plans/, and report back. Later, the developer asks /axolotl help me fine-tune Llama 3 on this dataset. The axolotl skill (a community mlops skill) takes over with a totally different workflow. Both feel like first-class agent features, but they are just two different SKILL.md files on disk.
Deep Dive
Here are the most common skill patterns, with examples.
Domain expertise. A skill that captures how we do X in our shop for a specific technical domain.
mlops/axolotl/SKILL.md # Fine-tune Llama models with Axolotl
mlops/vllm/SKILL.md # Serve models with vLLM
Workflow capture. A skill that codifies a multi-step procedure so the agent runs it the same way every time.
workflows/github-pr-workflow/SKILL.md # Open a clean PR with checks
workflows/plan/SKILL.md # Write an implementation plan
Fallback skill. A skill that activates only when a premium tool is unavailable, offering a free alternative.
yaml--- name: duckduckgo-search description: Web search via DuckDuckGo (fallback when no FIRECRAWL_API_KEY) metadata: hermes: fallback_for_toolsets: [web] ---
Integration recipe. A skill that orchestrates an external service via its API or MCP tools.
media/gif-search/SKILL.md # Find GIFs via the Tenor API
productivity/excalidraw/SKILL.md # Sketch diagrams via Excalidraw
Internal runbook. A skill private to a team that captures how we operate this system.
ops/deploy-runbook/SKILL.md # Production deploy procedure
ops/incident-response/SKILL.md # First 30 minutes of an incident
A few things to notice across all of them:
- The descriptions are user-intent shaped, not technology-shaped.
Find GIFs via the Tenor APIis what a user would think to ask;Tenor API wrapperis what the implementation looks like. - The procedures are bounded. Each skill does one thing. A skill that tries to cover deployment, monitoring, and incident response in one file becomes noisy.
- Many skills declare an environment variable (
TENOR_API_KEY) or a tool dependency (requires_toolsets: [terminal]). They are honest about what they need to work.
Common Pitfalls
- Mega-skills: Trying to capture every workflow in one giant
SKILL.md. The agent has to load the whole body when any part is relevant. Split by user intent. - Stale runbooks: A skill that describes how things used to work is worse than no skill, because the agent will confidently follow outdated steps. Treat skills like docs: review and prune.
Best Practices
- Browse before you write: Run
hermes skills browse --source officialor visit skills.sh. Someone may have already written the skill you need. - Match category to intent: Category names are surfaced in the discovery index. Putting your team runbook under
ops/orinternal/helps the agent find it for ops-shaped questions.
Summary
- Skills group by intent: domain expertise, workflow capture, fallback, integration recipe, internal runbook.
- Bundled skills ship with Hermes; official optional skills install from the Hermes repo; community skills come from skills.sh, taps, well-known endpoints, or direct URLs.
- Descriptions should sound like the user's question, not the implementation.
- Keep each skill bounded to one intent; split anything broader.
Code Examples
# Browse the official optional skills shipped with Hermes
hermes skills browse --source official
# Browse the community directory at skills.sh
hermes skills search react --source skills-sh
# Inspect before installing (shows description, repo, weekly installs, audit status)
hermes skills inspect official/security/1password
# List what is already installed locally
hermes skills list