What Claude Code skills are
Make a skill when you keep pasting the same instructions, checklist or multi-step procedure into chat, or when part of your CLAUDE.md has grown from a fact into a procedure. Skills follow the open Agent Skills standard (agentskills.io), which other AI tools also read; Claude Code adds extras such as invocation control, subagent runs and live shell output in the prompt.
- Two ways to run one: Claude loads it when your request matches its
description, or you type/skill-name. - Cheap until used: only the name and description sit in context; the body loads when the skill runs. A skill set to run only by hand doesn't list its description at all.
- Custom slash commands are skills now:
.claude/commands/<name>.mdstill works, but a skill folder can also hold supporting files. See Claude Code slash commands. - Claude Code ships bundled skills too, such as
/simplify,/loop,/batchand/debug.
Skills vs CLAUDE.md vs subagents vs plugins vs MCP
| What it is | Loaded | Use it for | |
|---|---|---|---|
| CLAUDE.md | Project instructions | Every session, in full | Facts and conventions Claude always needs; see the CLAUDE.md guide |
| Skill | A SKILL.md folder | Description always; body when used | Procedures, checklists, reference material, repeatable prompts |
| Subagent | A separate worker with its own context | When Claude delegates | Side tasks whose details shouldn't fill your conversation |
| Plugin | A package of skills, agents, hooks and MCP servers | When installed and enabled | Sharing skills with a team or installing other people's |
| MCP server | A connection to an outside tool or data source | When connected | Giving Claude new tools, such as a database or an issue tracker |
How to create a Claude Code skill
Pick where it lives
~/.claude/skills/<name>/for yourself in every project;.claude/skills/<name>/in a repository, committed, for everyone who works there. The folder name becomes the command, sosummarize-changesgives/summarize-changes.Write SKILL.md: a description, then instructions
Frontmatter goes between
---lines at the very top. Onlydescriptionis recommended: put the use case and the words people would actually say first. Below it, write the instructions in Markdown. A line starting with `!command` runs that command first and pastes the output in, so the skill works from your real state.--- description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff. --- ## Current changes !`git diff HEAD` ## Instructions Summarize the changes above in two or three bullet points, then list any risks such as missing error handling, hardcoded values or tests to update.Test both ways
Start
claudein a git project with an uncommitted edit. Ask "What did I change?" to see whether Claude picks the skill up by itself, then type/summarize-changesto run it directly. Skills you add during a session load on their own; run/reload-skillsif one doesn't appear.Decide who may run it
Add
disable-model-invocation: truefor anything with side effects, such as deploys or sending messages, so only you can start it. Adduser-invocable: falsefor background knowledge only Claude should load. Pass input with$ARGUMENTS, as shown in the slash commands guide.Share it
Commit
.claude/skills/to the repository, or package skills as a plugin for several repositories or teams.
Claude Code skill examples
A reference skill that loads only for matching files
Reference skills hold conventions Claude applies while it works.
pathslimits automatic loading to files that match the globs.--- description: API design conventions for this codebase. Use when writing or reviewing HTTP endpoints. paths: ["src/api/**"] --- When writing API endpoints: - Use RESTful names and plural resources - Return errors as { error: { code, message } } - Validate the request body with the schemas in src/api/schemas/A task skill with supporting files
Keep SKILL.md short and point to the rest. Claude reads
checklist.mdonly when SKILL.md tells it to, and runsbump.shwithout reading it, so the details cost nothing until needed.release/ ├── SKILL.md # the steps, and when to read the other files ├── checklist.md # loaded only when SKILL.md points Claude to it └── scripts/ └── bump.sh # run, not read into contextA skill that runs in its own subagent
context: forkstarts a subagent (here the read-only Explore type) with the skill as its prompt. It doesn't see your conversation, so the instructions must stand alone; it runs in the background unless you setbackground: false.--- description: Audit dependencies for known vulnerabilities and outdated majors context: fork agent: Explore disable-model-invocation: true --- Run the package manager's audit, list every high or critical finding with the fix version, and report which majors are behind. Don't change any files.
Installing skills from plugins and marketplaces
Skills other people wrote usually arrive inside plugins. Claude Code registers Anthropic's official marketplace (claude-plugins-official) the first time you start an interactive session; browse it with /plugin, or install directly, for example /plugin install skill-creator@claude-plugins-official. For a team or community marketplace, add it first with /plugin marketplace add owner/repo.
- Plugin skills are named
/plugin-name:skill-name. - The official marketplace shows each plugin's context cost per turn and when invoked.
- The skill-creator plugin helps write a skill and runs evals that compare results with and without it.
- Read a repository's or plugin's skills before you trust them:
allowed-toolscan pre-approve tools for the turn a skill runs.
Best practices, and when Claude ignores a skill
- Write the description for matching: lead with the job and the phrases users say. Description plus
when_to_useis cut off at 1,536 characters in the listing. - Put the most important instructions near the top: after the conversation is compacted, Claude Code may keep only the start of an invoked skill. Invoke it again to restore it.
- Word guidance for the whole task ("run the tests after every edit"), because the skill file isn't re-read on later turns. A rule that must never be skipped belongs in a hook.
- To cut token usage, move procedures out of CLAUDE.md into skills, set
disable-model-invocation: trueon skills you run by hand, and check/skill-doctorfor skills that cost context but are rarely used. - Not triggering? Check the description has the right keywords, ask "What skills are available?", and run
claude plugin validate .claude/skillsto find frontmatter that doesn't parse. - Triggering too often? Make the description narrower, or switch the skill to manual with
disable-model-invocation: true.
Skills teach Claude Code how. Crewmark gives it something to do every hour.
A library of skills makes each session capable, but it still waits for you to ask. Crewmark turns a Claude Code, Codex, DeepSeek Harness or OpenCode session into an AI employee with a role, a goal and working hours, and wakes it on a heartbeat to take the next issue from a board, with your project's skills loaded.
Keep skills in the repository
The employee's session reads
.claude/skills/and CLAUDE.md like yours, so a release skill or a review checklist comes along.Let the heartbeat start the work
During its working hours the employee wakes every 15, 30 or 60 minutes in the same conversation and takes the next issue; see how to make Claude Code proactive.
Assign issues and answer its messages
Put work on the board; the employee comments as it goes and messages you when it needs a decision. Read what an AI employee is.
Claude Code skills FAQ
What are Claude Code skills?
Folders with a SKILL.md file that hold instructions for a task or a body of reference knowledge. Claude loads one when your request matches its description, or you run it with /skill-name.
Where do Claude Code skills go?
~/.claude/skills/<name>/SKILL.md for personal skills in every project, .claude/skills/<name>/SKILL.md in a repository for the team, or inside a plugin.
How do I make Claude Code use my skill?
Write a description that names the task and the words you'd use to ask for it, check the skill shows up when you ask "What skills are available?", or run it directly with /skill-name.
Skills vs subagents: what's the difference?
A skill is instructions loaded into a conversation; a subagent is a separate worker with its own context. A skill with context: fork combines them: it runs as a subagent with the skill as its prompt.
Skills vs plugins?
A plugin is how skills, subagents, hooks and MCP servers are packaged and shared. Install a plugin to get its skills, or write a skill in your own .claude/skills/ without one.
Do skills use a lot of tokens?
Only their descriptions stay in context; the body loads when a skill runs, and skills set to manual-only don't list a description at all. Moving long procedures from CLAUDE.md into skills usually reduces token use.
Where can I find Claude Code skills?
In Anthropic's official plugin marketplace (browse it with /plugin or at claude.com/marketplace), in team and community marketplaces you add with /plugin marketplace add, and in public GitHub repositories.
Checked against the Claude Code docs (skills and plugins) on November 6, 2026.