Overview
Skills are self-contained directories that provide agents with domain-specific instructions, references, and assets. Each skill is defined by aSKILL.md file with YAML frontmatter and a markdown body.
Skills use progressive disclosure — metadata is loaded first, full instructions only when activated, and resource catalogs only when needed.
Directory Structure
name field in SKILL.md.
SKILL.md Format
Frontmatter Fields
| Field | Required | Constraints |
|---|---|---|
name | Yes | 1–64 chars. Lowercase alphanumeric and hyphens. No leading/trailing/consecutive hyphens. Must match directory name. |
description | Yes | 1–1024 chars. Describes what the skill does and when to use it. |
license | No | License name or reference to a bundled license file. |
compatibility | No | Max 500 chars. Environment requirements (products, packages, network). |
metadata | No | Arbitrary string key-value mapping. |
allowed-tools | No | Space-delimited list of pre-approved tools. Experimental. |
Usage
Agent-level Skills
Pass skill directory paths to an agent:Crew-level Skills
Skill paths on a crew are merged into every agent:Pre-loaded Skills
You can also passSkill objects directly:
How Skills Are Loaded
Skills load progressively — only the data needed at each stage is read:| Stage | What’s loaded | When |
|---|---|---|
| Discovery | Name, description, frontmatter fields | discover_skills() |
| Activation | Full SKILL.md body text | activate_skill() |
scripts/, references/, and assets/ directories are available on the skill’s path for agents that need to reference files directly.