How to Create a Claude Skill: SKILL.md Walkthrough (2026)
Learn how to create a Claude skill: what SKILL.md is, how skills load, a full build of a campaign brief skill, and how to install skills other people made.
By Yotam DahanUpdated 11 min readClaude Code
On this page
A Claude skill is a folder with one required file, SKILL.md: a short header that says what the skill does and when to use it, followed by plain-English instructions. To create one in Claude Code, make a folder inside ~/.claude/skills/, write a SKILL.md with a name and a description, then ask for the task in your own words or type / followed by the skill's name. Below you will build a working skill for a marketer, learn how Claude decides when to load it, and install skills other people made.
What a Claude skill is, in plain English
Think of a skill as a saved procedure Claude takes off the shelf when the job calls for it. Instead of pasting the same instructions into every chat, you write them once in a file, and Claude opens them only when your request matches.
Skills use the open Agent Skills format, which Anthropic developed and released as a standard. A skill folder is portable: Claude Code, the Claude apps and the Claude API all accept it, and this guide focuses on Claude Code, where skills are plain files.
Existing users should know that Claude Code merged custom slash commands into skills. An old .claude/commands/review.md file still works, but a skill folder can also hold templates, examples and scripts.
CLAUDE.md
Standing rules for every session, such as your brand name and folder layout. It loads every time.
Skill
A procedure Claude follows only when a matching task comes up. Until then, only its short description takes up space.
MCP server
A connection that gives Claude new tools in another app, such as Notion or HubSpot, rather than new instructions.
Plugin
An installable package that bundles skills with agents, hooks and MCP servers in one step.
For the first and third cards, see what to put in a CLAUDE.md file and what an MCP server is.
How skills load, and why the description matters most
Anthropic's Agent Skills overview describes a three-level loading system it calls progressive disclosure. A token, in these numbers, is the small chunk of text AI models count, often a short word or part of a longer one.
Startup
Claude reads every skill's name and description, about 100 tokens each
Match
Your request lines up with one description
Instructions
Claude reads the body of that SKILL.md
Extras
Examples and scripts load only if the task needs them
The first lesson: the description is the trigger. If it doesn't contain the words you naturally use when asking for the task, Claude won't reach for the skill.
The second lesson: every installed skill costs a little attention on every turn, so a few well-used skills beat a long list you forgot about.
tokens per skill read at startup, roughly
tokens: suggested ceiling for the SKILL.md body
characters: where Claude Code cuts a description in its skill list
lines: recommended maximum length for SKILL.md
From Anthropic's Agent Skills overview and the Claude Code skills docs, checked October 2026.
Where skills live
| Location | Path | Who gets it |
|---|---|---|
| Personal | ~/.claude/skills/<skill-name>/SKILL.md | You, in every project on this computer |
| Project | .claude/skills/<skill-name>/SKILL.md inside a project folder | Anyone working in that project folder |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | Anyone who installs the plugin, as /plugin-name:skill-name |
| claude.ai account | Skills turned on in your claude.ai settings | Signed-in Claude Code sessions |
The ~ sign means your home folder: /Users/yourname on a Mac and C:\Users\yourname on Windows. If a personal skill and a project skill share a name, the personal one wins.
Build a campaign brief skill, step by step
The example is a skill for a marketer who writes a campaign brief every week. It collects missing inputs first, writes the brief in a fixed structure, and checks its own work before handing it over.
Step 1: Write down the procedure you already follow
Step 2: Create the skill folder
The easiest route is to ask Claude Code to do it:
Create a personal skill folder called campaign-brief in my skills directory (~/.claude/skills/) with an empty SKILL.md file inside it.If you prefer to type it yourself, use Terminal on a Mac:
mkdir -p ~/.claude/skills/campaign-brief
Or PowerShell on Windows:
New-Item -ItemType Directory -Force -Path "$HOME\.claude\skills\campaign-brief"
Step 3: Write SKILL.md
Create SKILL.md inside the folder and paste this in. The part between the two --- lines is the frontmatter, a small block of settings written in YAML (a simple "key: value" format), and everything after it is the instructions.
---
name: campaign-brief
description: Writes a one-page marketing campaign brief from rough notes. Use when the user asks for a campaign brief, a creative brief, or a plan for a launch, promotion or email campaign.
---
# Campaign brief
## Before writing
Check that you have these inputs. Ask for anything missing in one short list, then wait:
- Product or offer, and its price if there is one
- Audience: who they are and the problem they have
- Goal: one measurable result, such as demo bookings or first purchases
- Channels and deadline
- Budget, or "none"
## Write the brief
Use exactly these sections, in this order:
1. Summary (three sentences at most)
2. Audience and their main objection
3. Key message and three supporting points
4. Offer and call to action
5. Channels, with one line on the job of each
6. Timeline with dates
7. How we will measure success
8. Open questions
If brand/voice.md exists in this project, read it first and follow it.
Save the brief as briefs/YYYY-MM-DD-campaign-name.md.
## Rules
- Never invent numbers, prices, dates or testimonials. Write [TBD] instead.
- Keep it to one page, about 450 words.
- Use the words the audience would use, not marketing jargon.
## Before you finish
Re-read the brief and confirm that every section is filled or marked [TBD], the goal can be measured, and the call to action matches the offer. List every [TBD] at the end.Step 4: Add a supporting file
Paste a brief you were proud of into examples.md in the same folder, then add one line under "Write the brief": "For tone and depth, see examples.md." Claude reads the example only when it runs the skill, so it costs nothing the rest of the time.
campaign-brief/
SKILL.md
examples.mdStep 5: Test it two ways
Open Claude Code in any project folder. If it was already running and the skills folder is brand new, run /reload-skills first.
First, the automatic test: ask in plain words and watch Claude pick up the skill.
- You:
I need a brief for our end-of-year sale email to past customers.
- Claude Code:
I'll use the campaign-brief skill. Before I write it, I need the offer and its price, the one result you want to measure, and the send date.
- You:
A discount on annual plans, the goal is upgrades, and it goes out next Thursday.
- Claude Code:
The brief is saved in the briefs folder. Budget and the audience's main objection are marked [TBD], so fill those in before you share it.
Then the direct test: type /campaign-brief end-of-year sale email, and the text after the skill name is passed along as arguments. To confirm Claude can see the skill at all, ask "What skills are available?" or run /skills.
Step 6: Tune it
Expect a few rounds of edits. Claude Code picks up changes to a skill's files during the session, so edit, save and try again.
- It never triggers: add the words you actually use to the description.
- It triggers when you don't want it: narrow the description, or add
disable-model-invocation: trueso the skill runs only when you type its command. - It forgets a rule late in a long session: move that rule near the top. When a long conversation is compacted, Claude Code keeps only the start of each skill it re-attaches.
Optional settings worth knowing
Skip these until your first skill works.
| Frontmatter field | What it does |
|---|---|
disable-model-invocation: true | Only you can start the skill, by typing its command. Good for anything with side effects |
argument-hint | Shows a hint such as [campaign-name] when you type the command |
allowed-tools | Lets the listed tools run without a permission prompt during the turn that runs the skill |
context: fork | Runs the skill in a separate subagent that doesn't see your conversation |
Inside the instructions, $ARGUMENTS marks where the text you type after the command should go.
Use the same skill in the Claude app
Skills work in the Claude web and desktop apps too, with the setup described in Anthropic's help article on using skills:
- Turn on code execution. On Free, Pro and Max plans, open Settings > Capabilities and enable Code execution and file creation. On Team and Enterprise plans an owner enables it for the organization.
- Zip the folder. The folder itself must sit at the top of the zip file: campaign-brief.zip contains campaign-brief/SKILL.md.
- Upload it. Open Customize > Skills, click +, choose Create skill, then Upload a skill.
- Switch it on and test. Try a few prompts that should trigger it.
The Help Center lists a 200-character limit for the description on claude.ai, one more reason to keep it tight. The example above fits.
Install skills other people made
You don't have to write every skill yourself:
Browse a directory
The ai school Claude Skills directory lists skills you can install, such as Campaign Plan for marketers.
Install a plugin
Run /plugin in Claude Code to browse marketplaces. Anthropic's official one is added the first time you start a session.
Copy a folder
Download a skill folder and place it in ~/.claude/skills/, or in a project's .claude/skills/ folder.
Anthropic's public skills repository also works as a marketplace. These two commands add it and install its example skills, which include brand guidelines, document co-authoring and design skills such as Canvas Design:
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skillsClaude Code then asks for a scope: just you, everyone on this project, or just you in this project.
Check a skill before you trust it
A skill can tell Claude to run commands and read files, so treat installing one like installing software. Anthropic's docs advise using skills only from sources you trust, meaning ones you wrote or got from Anthropic, and auditing anything else thoroughly.
0 of 5 done
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Claude never uses the skill | The description lacks the words you use | Rewrite it, then ask "What skills are available?" to confirm it is listed |
/campaign-brief is not recognized | Unusual characters in the folder name, or a new skills folder that hasn't loaded | Use lowercase letters and hyphens, then run /reload-skills |
| The skill runs but ignores its settings | The YAML frontmatter didn't parse; it must start on line 1 with --- | Fix the YAML, and run claude --debug to see the error |
| The claude.ai upload fails | Wrong zip structure, a folder name that doesn't match, or unsupported fields | Zip the folder itself and keep only the supported fields |
Quick check0 of 2 correct
What does Claude read from every installed skill at the start of a session?
Not quite.
Claude loads the full instructions only when your request matches the description, which is why the description matters most.
You want a skill to run only when you type its command. What do you add to the frontmatter?
Not quite.
With disable-model-invocation: true, Claude never starts the skill on its own. You run it with /skill-name.
What to do next
Pick one task you have explained to Claude more than twice this month and turn it into a skill today, using the campaign brief as your template. Test it with three different phrasings before you rely on it.
For ideas worth packaging, the workflows in Claude Code for marketers translate well into skills, and the Claude Skills directory shows what others have built. If you want a guided setup of skills, MCP and CLAUDE.md together, the Claude Code course covers all three in its setup module.
Three ready-to-install marketing skills
Complete SKILL.md files for a content repurposer, an ad variation writer and a brand voice checker, plus a 10-point test to run before you trust any skill.
Enter your email and the full section opens right here. You also get a free lesson from the course.
Frequently asked questions
Are Claude skills free?
Yes. A skill is a folder of text files, so creating or installing one costs nothing extra. Running it uses your normal Claude plan or API usage, like any other request.
Do skills I upload to claude.ai work in Claude Code?
From Claude Code version 2.1.273, signing in with the same claude.ai account downloads the skills enabled there into ~/.claude/skills/synced/. The sync is one-way, so skills you create locally stay on your computer, and you change synced skills on claude.ai rather than in the local copy.
What is the difference between a skill and a plugin?
A skill is one set of instructions plus optional files. A plugin is an installable package that can bundle several skills with subagents, hooks and MCP servers, and its skills run as /plugin-name:skill-name.
How many skills can I install?
Claude Code sets no fixed number, but every skill's description sits in context on every turn. When the list outgrows its budget, about 1% of the model's context window, Claude Code shortens the descriptions of the skills you use least, so prune unused ones with /skill-doctor.
Can Claude write a skill for me?
Yes. Describe the procedure and ask Claude Code to write the SKILL.md for you, then test and edit it. Anthropic also publishes a skill-creator skill in its example-skills plugin that is built for drafting and improving skills.
Can I share a skill with my team?
Commit the project's .claude/skills/ folder to your Git repository so everyone who opens the project gets it, or package your skills as a plugin. On claude.ai Team and Enterprise plans, skills can also be shared with the organization.
Keep reading
What Is an MCP Server? MCP Explained for Non-Developers
What is an MCP server? Learn the Model Context Protocol in plain English, connect a server in Claude Code and the Claude app, and pick from 10 worth adding.
Claude Code · 10 min readCLAUDE.md File: What It Is, Where It Goes, 3 Templates
What a CLAUDE.md file is, where it goes, what to write and what to leave out, plus three copy-ready templates for business owners, marketers and websites.
Claude Code · 10 min readClaude Code for Marketers: 7 Workflows With Copy-Ready Prompts
Claude Code for marketers: seven workflows for research, briefs, landing page copy, CSV reports, SEO and UTM links, each with a prompt and what to expect.
Claude Code · 10 min read