Skip to main content
Skills are directories containing a SKILL.md file with YAML frontmatter. Creating your own skills is straightforward and lets you codify team knowledge, workflows, and best practices.

Quick Start

Create a new skill template:

Skill Structure

Every skill requires a SKILL.md file with YAML frontmatter:

Required Fields

string
required
Unique identifier for the skill. Use lowercase with hyphens (e.g., my-skill, pr-review).
string
required
Brief explanation of what the skill does and when to use it. This helps agents understand when to automatically activate the skill based on the user’s request.

Optional Fields

boolean
Set to true to hide the skill from normal discovery. Internal skills are only visible and installable when INSTALL_INTERNAL_SKILLS=1 is set. Useful for work-in-progress skills or skills meant only for internal tooling.

Example: Internal Skill

Skill Discovery Locations

The CLI searches for skills in these locations within a repository (in priority order):
  1. Root directory - if it contains SKILL.md
  2. Common skill directories:
    • skills/
    • skills/.curated/
    • skills/.experimental/
    • skills/.system/
  3. Agent-specific directories:
    • .agents/skills/
    • .agent/skills/
    • .augment/skills/
    • .claude/skills/
    • .codex/skills/
    • .cursor/skills/
    • And many more (see full list in README)
If no skills are found in standard locations, a recursive search is performed.

Plugin Manifest Discovery

If .claude-plugin/marketplace.json or .claude-plugin/plugin.json exists, skills declared in those files are also discovered:
This enables compatibility with the Claude Code plugin marketplace ecosystem.

Real-World Example

Here’s a real skill from the Skills CLI repository:

Writing Effective Skills

The description field determines when your skill is activated. Make it clear and specific about the scenarios where the skill should be used.Good: “Helps with React performance optimization by identifying common bottlenecks and suggesting React.memo, useMemo, and useCallback usage”Bad: “React help”
Write step-by-step instructions that are easy to follow. Use numbered lists, code examples, and clear language.
Help the agent understand when and how to apply the skill with real-world examples and context about common scenarios.
Use headings, lists, and formatting to make your skill easy to scan and understand:
  • When to Use - Describe triggering scenarios
  • Steps - Provide the workflow
  • Examples - Show concrete use cases
  • Tips - Add helpful notes and best practices

Organizing Multiple Skills

For repositories with many skills, organize them in subdirectories:
Each subdirectory in skills/ should contain its own SKILL.md file.

Including Additional Files

Skills can include additional files alongside SKILL.md:
These files will be installed along with the skill and can be referenced in the skill instructions.
Files starting with _ and the .git directory are excluded from installation.

Testing Your Skill

Before publishing, test your skill locally:

Publishing Your Skill

Skills are distributed via git repositories. To share your skill:
  1. Create a git repository (GitHub, GitLab, etc.)
  2. Add your skill(s) to the repository
  3. Commit and push to the remote
  4. Share the repository URL or GitHub shorthand
Users can then install with:

Environment Variables for Development

When developing skills marked as internal:

Next Steps

Source Formats

Learn about all supported installation sources

Supported Agents

See which agents support your skills