Skip to main content

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 a skills/ 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 of SKILL.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.
Skills with a paths frontmatter are stored as conditional skills and only activated when Claude operates on a file matching the pattern. This keeps the skill list focused and avoids context bloat.