This page documents the skills system: how skills are structured, stored, and injected into the agent's system prompt; the skill_manage tool that allows the agent to author and maintain skills; the Skills Hub infrastructure for installing skills from external registries; and the security scanning pipeline.
For general tool registration and dispatch mechanics, see Tool Registry and Toolsets. For the system prompt construction that consumes skill data, see Context and Prompt Management.
A skill is a directory containing a SKILL.md file that provides the agent with procedural knowledge — step-by-step instructions, reference material, templates, and supporting scripts for a specific capability. The agent reads skill content on demand rather than having it always loaded, keeping token usage low tools/skills_tool.py9-13
Skills are stored in ~/.hermes/skills/, organized by category. On fresh install, bundled skills from the repo's skills/ directory are seeded there via tools/skills_sync.py tools/skills_sync.py5-11 Agent-created and hub-downloaded skills also land in this same directory tools/skills_tool.py139-143
Example directory tree:
Sources: tools/skills_tool.py14-27 tools/skills_tool.py139-143 tools/skills_sync.py55-57 tools/skills_sync.py5-11 tools/skill_usage.py3-6
Every skill must have a SKILL.md with YAML frontmatter. This format is compatible with the agentskills.io open standard tools/skills_tool.py28-46
Key frontmatter fields:
name — skill identifier, max 64 chars tools/skills_tool.py162description — brief description, max 1024 chars tools/skills_tool.py163platforms — optional list (e.g., [macos, linux, windows]) to restrict compatibility tools/skills_tool.py34-36prerequisites — optional legacy runtime requirements (env vars, commands) tools/skills_tool.py37-40The frontmatter is parsed by parse_frontmatter() in agent/skill_utils.py agent/skill_utils.py123-169 Supporting files under references/, templates/, or assets/ are accessible via skill_view(name, file_path) tools/skills_tool.py65-67
Sources: tools/skills_tool.py28-46 tools/skills_tool.py162-163 agent/skill_utils.py123-169
At agent startup, the system prompt builder generates a compact skills index. This uses progressive disclosure: only minimal metadata (name and truncated description) appears in the main system prompt to save tokens tools/skills_tool.py9-13
Progressive disclosure levels:
| Level | Tool call | Returns |
|---|---|---|
| 0 | skills_list() | List of all available skills with names and descriptions tools/skills_tool.py53 |
| 1 | skill_view(name) | Full SKILL.md instructions for the specific skill tools/skills_tool.py54 |
| 2 | skill_view(name, path) | Content of a specific reference, template, or asset file tools/skills_tool.py65-67 |
Component diagram — skill prompt injection:
Sources: tools/skills_tool.py52-67 tools/skills_tool.py9-13 agent/skill_utils.py123-169 agent/skill_utils.py53-70
Two tool modules expose skill access and modification to the agent:
tools/skills_tool.py)Registered tools that allow the agent to discover and read its own capabilities:
| Tool | Description |
|---|---|
skills_list | Returns metadata (Tier 0) for all compatible skills tools/skills_tool.py53 |
skill_view | Returns full instructions (Tier 1) or specific files (Tier 2) tools/skills_tool.py54 |
These tools respect platform compatibility checks via skill_matches_platform_list; skills marked for macos will not be listed when running on linux agent/skill_utils.py175-197
tools/skill_manager_tool.py)The skill_manage tool allows the agent to maintain its own skill library. The agent is encouraged to save new workflows as skills after complex tasks. The tool supports create, edit, patch, delete, write_file, and remove_file actions tools/skill_manager_tool.py14-21
For details on skill creation and security scanning of agent-authored code, see Skills Management and Security.
Sources: tools/skills_tool.py52-67 tools/skill_manager_tool.py14-21 agent/skill_utils.py175-197
The Skills Hub enables installing skills from external registries. This is a user-driven system; the agent can see installed skills but cannot search or install new ones from the hub itself tools/skills_hub.py5-13
The hub uses a "source router" to communicate with different registries (GitHub, LobeHub, etc.) and a "quarantine" system for security scanning before installation tools/skills_hub.py3-11
Component diagram — Skills Hub:
Sources: tools/skills_hub.py5-14 hermes_cli/skills_hub.py49-61 tools/skills_guard.py3-9
Supported sources include:
SKILL.md URL tools/skills_hub.py16For details on browsing and installing from the hub, see Skills Hub.
Sources: tools/skills_hub.py7-11 hermes_cli/skills_hub.py166-177
The skills system includes mechanisms for managing skill lifecycle and ensuring security.
The Curator (agent/curator.py) is a background orchestrator that periodically reviews agent-created skills. It runs when the agent is idle and the last run was beyond a configured interval. The Curator can automatically transition skills through lifecycle states (active, stale, archived) based on usage telemetry tracked in ~/.hermes/skills/.usage.json agent/curator.py3-13 tools/skill_usage.py3-6
The Curator can:
stale if unused for a configured period (curator.stale_after_days) agent/curator.py73Archive skills if unused for an even longer period (curator.archive_after_days), moving them to ~/.hermes/skills/.archive/ agent/curator.py74 tools/skill_usage.py124-126skill_manage agent/curator.py10-11Users can manage the Curator via the hermes curator CLI commands, including status, pause, resume, pin, unpin, and run hermes_cli/curator.py18-20
For detailed information on skill management and security, see Skills Management and Security.
Sources: agent/curator.py3-13 tools/skill_usage.py3-6 agent/curator.py73-74 tools/skill_usage.py124-126 hermes_cli/curator.py18-20
This diagram traces the skills system from the local filesystem through agent tooling to system prompt injection.
Sources: tools/skills_tool.py139-143 tools/skills_tool.py64-67 hermes_cli/skills_hub.py49-61 tools/skill_manager_tool.py14-21 agent/skill_commands.py138-175 tools/skill_usage.py3-6 agent/curator.py3-13 tools/skills_sync.py5-11 agent/background_review.py3-13 hermes_cli/curator.py18-20
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.