What are skills?
A skill is a named, reusable prompt workflow stored as a Markdown file. When you type/skill-name in a session, Claude Code loads the skill’s instructions and executes them. Skills are useful for:
- Repeatable tasks you run often (e.g.
/review,/document,/refactor) - Team conventions you want to encode once and reuse everywhere
- Complex workflows that would be tedious to type out each time
Built-in skills
Claude Code ships with a set of built-in skills that are available in every session:
Built-in plugins can provide additional skills. See the Plugins page for details.
The /skills command
Run/skills in a session to open the skills browser. From there you can:
- See all available skills (built-in, user, and project)
- View a skill’s description and usage hints
- Invoke a skill directly from the list
Skill directories
Claude Code loads skills from the following locations, in priority order:
Skills closer to the project root take precedence over user-level skills with the same name.
Claude Code also supports a legacy
~/.claude/commands/ directory for backward compatibility. New skills should use the skills/ directory format.Creating a custom skill
Each skill lives in its own subdirectory under askills/ folder. The directory name becomes the slash command name.
1
Create the skill directory
2
Create the SKILL.md file
Create
.claude/skills/my-skill/SKILL.md with your skill’s instructions:3
Invoke the skill
In a Claude Code session, type:
Frontmatter reference
Skills support YAML frontmatter at the top ofSKILL.md to control their behavior:
string
Short description shown in
/skills and autocomplete.string
Hint shown next to the skill name when typing (e.g.
"[file]").string
Comma-separated list of tools this skill is allowed to use (e.g.
"Read, Write, Bash").string
Override the model used for this skill (e.g.
"claude-sonnet-4-6"). Use "inherit" to use the session default.string
Guidance for Claude on when to automatically invoke this skill.
boolean
Set to
false to hide the skill from user-facing autocomplete. It can still be invoked by the model internally.string
Set to
"fork" to run the skill in an isolated context fork.string
Control the reasoning effort level. Accepts a named level or an integer.
string
Gitignore-style path patterns. The skill is only activated when Claude operates on matching files (e.g.
"src/**/*.ts"). Skills with paths are loaded lazily and activated on first file match.object
Hooks scoped to this skill. Use the same format as global hooks in
settings.json.Example skill definitions
Code reviewer with path scoping
Multi-step workflow
Dynamic skill discovery
Claude Code automatically discovers skills inside subdirectories as you work. When you read or write a file, Claude Code walks up the directory tree looking for.claude/skills/ directories. Newly discovered skills become available immediately without restarting the session.