Chapter 6: Skill System
Skills are the cuttlefish's specialties. Hermes Agent comes with 100+ built-in skills covering programming, writing, DevOps, creative work, and more. You can also teach it new skills — it will remember and use them next time.
What is a Skill?
A Skill is a lazily-loaded knowledge document. It's not a plugin, not a code package — it's a set of instructions telling the Agent how to behave in specific scenarios.
Key characteristics:
- Lazy loading: Only read when relevant, doesn't waste tokens
- Progressive expansion: Shows summary first, loads full content when needed
- Auto-evolution: After completing complex tasks, the Agent can automatically save them as Skills
- Open standard: Compatible with agentskills.io standard
All Skills are stored in the ~/.hermes/skills/ directory.
Three Ways to Use Skills
1. Slash Commands
Each installed Skill automatically becomes a slash command:
/plan Implement a user registration feature
/review Check recent code changes2. Natural Language Trigger
Just talk normally — the Agent automatically matches relevant Skills:
You: Help me write a Python script to process CSV files
Hermes: [Auto-loads python-related skill...] Sure, let me help...3. Manual Loading
/skill-load skill-nameBuilt-in Skill Categories
Hermes Agent includes 100+ built-in skills, organized by category:
| Category | Representative Skills | Description |
|---|---|---|
| Software Development | plan, test-driven-development, systematic-debugging | Planning, TDD, debugging |
| GitHub | github-pr-workflow, github-code-review, github-issues | PR, review, issue management |
| Creative | ascii-art, excalidraw, p5js, songwriting | ASCII art, diagrams, music |
| Media | youtube-content, gif-search, heartmula | YouTube, GIF, music generation |
| Research | arxiv, llm-wiki, web-content-fetch | Papers, knowledge base, web scraping |
| Productivity | notion, google-workspace, powerpoint, nano-pdf | Notion, Google, PPT, PDF |
| DevOps | webhook-subscriptions | Webhook management |
| Data Science | jupyter-live-kernel | Jupyter interactive analysis |
| MLOps | gguf, llama-cpp, vllm, unsloth, trl-fine-tuning | Model training, inference, quantization |
| Apple | apple-notes, apple-reminders, imessage | macOS/iOS automation |
| himalaya | Email management | |
| Gaming | minecraft-modpack-server, pokemon-player | Minecraft, Pokemon |
Platform Limitations
Some Skills have platform restrictions. For example, the apple-* series is only available on macOS. If the current platform is incompatible, the Skill is automatically hidden.
SKILL.md Format
Each Skill is a directory with a SKILL.md file at its core:
~/.hermes/skills/my-skill/
├── SKILL.md # Skill definition (required)
├── references/ # Reference documents
├── templates/ # Template files
├── scripts/ # Scripts
└── assets/ # Asset filesBasic structure of SKILL.md:
---
name: my-skill
description: One-sentence description of what this skill does
platforms: [macos, linux] # Optional: restrict platform
fallback_for_toolsets: [web] # Optional: fallback condition
env: # Optional: required environment variables
- MY_API_KEY
settings: # Optional: configuration items
- key: output_dir
description: Output directory
default: ~/output
---
# Skill Title
Detailed instructions...Key Field Descriptions
| Field | Required | Description |
|---|---|---|
name | ✅ | Skill identifier, lowercase + hyphens |
description | ✅ | One-sentence description |
platforms | ❌ | Restrict to specific OS |
fallback_for_toolsets | ❌ | Only show when specified toolset is unavailable |
env | ❌ | Required environment variables (keys, etc.) |
settings | ❌ | Non-secret configuration items, stored in config.yaml |
Managing Skills
View Installed Skills
/skillsOr ask in conversation:
You: What skills do you have?
Hermes: [Lists all available skills...]Install Skills
From Skills Hub:
hermes skills install <skill-name>Agent-Created Skills
When you complete a complex task, the Agent can automatically save it as a Skill:
You: Save this workflow as a skill
Hermes: [Automatically calls skill_manage to create SKILL.md]The Agent automatically creates Skills in these scenarios:
- Completed a complex task with 5+ tool invocations
- Resolved a tricky bug
- User corrected the Agent's approach
External Skill Directories
If you have a shared skill directory used by multiple AI tools (e.g., ~/.agents/skills/), you can have Hermes scan it too:
# ~/.hermes/config.yaml
skills:
external_dirs:
- ~/.agents/skills
- ~/my-custom-skillsPaths support ~ expansion and ${VAR} environment variable substitution.
TIP
If both local and external directories have a Skill with the same name, the local version takes priority (shadow mechanism).
Skill Configuration (Settings)
Skills can declare non-secret configuration items, stored under skills.config in config.yaml:
# ~/.hermes/config.yaml
skills:
config:
my-skill:
output_dir: ~/output
language: zh-CNConfiguration values are automatically injected into the Agent's context when the Skill is loaded.
Conditional Activation (Fallback Mechanism)
A Skill can be set as a fallback for a specific toolset:
# Example: built-in duckduckgo-search skill
fallback_for_toolsets: [web]This means:
- If you set
FIRECRAWL_API_KEY, thewebtoolset is available → use web_search, DuckDuckGo skill is hidden - If you don't set an API Key → DuckDuckGo skill automatically appears as an alternative
Hands-On: Installing a Custom Skill
Let's install defuddle (web content extraction) as an example:
# Method 1: Via Skills Hub
hermes skills install defuddle
# Method 2: Manual creation
mkdir -p ~/.hermes/skills/defuddle
# Write SKILL.md...After installation, you can use it:
You: Help me extract the content from this webpage https://example.com/article
Hermes: [Auto-loads defuddle skill] [Runs defuddle parse...] Done!Further Reading
- Official docs: Skills System
- Skills development guide: Working with Skills
- Skill standard: agentskills.io — Open skill standard and specification
- Skill marketplace: skills.sh · skillhub.cn — Browse and share community skills