The short version. A skill is a folder that lives on your machine and teaches Claude Code how to do one specific job well. You do not call it like a command. You just ask for the thing in plain language, and Claude loads the skill on its own when your request matches what the skill is for.
Why it matters. Out of the box, Claude is a strong generalist. A skill turns it into a specialist for a task you do often: pulling a YouTube transcript, building a slide deck, researching with citations. You teach it once, then it is there every session.
A skill is just a folder with one required file inside it called SKILL.md. That file has two parts:
A short block at the top with a name and a description. The description is the important part. It tells Claude what the skill does and when to use it. This is what Claude reads to decide whether the skill is relevant to your request.
Everything below the frontmatter. Plain Markdown that tells Claude how to do the job: the steps to follow, the commands to run, the format to return. This only gets loaded into Claude's context when the skill actually triggers, so a folder full of skills costs you nothing until one is needed.
A skill can also bundle extra files next to SKILL.md: a scripts/ folder for code Claude runs, or reference docs it reads only when needed. But the minimum is one folder and one SKILL.md.
There are two homes for skills, and the difference is just scope:
Path: ~/.claude/skills/<name>/
Available in every Claude Code session, in any folder on your machine. This is where you put the skills you use everywhere. The YouTube Transcript skill installs here.
Path: .claude/skills/<name>/ inside a specific project folder.
Only available when you are working in that project. Good for skills that only make sense for one codebase or one client.
For most people starting out, global is the right default. Put it in ~/.claude/skills/ and forget about it.
You never type a skill's name (though you can, with a slash). Here is the actual mechanism:
name and description are always visible to Claude in the background. The full instructions are not loaded yet, just that one-line summary.This is why a good description is everything. The Transcript skill triggers on phrases like "get the transcript of this video" because its description says exactly that.
Claude tends to reach for a skill on multi-step or specialized tasks. For something trivial it can already do in one move, it may just do it directly and skip the skill. That is normal. The skill is there for the jobs that actually benefit from it.
Two ways, both easy:
The simplest path. A well-made skill ships as a single copy-paste prompt. You paste it into Claude Code, and Claude creates the folder, writes the files, installs any dependencies, and verifies it. The YouTube Transcript skill works exactly this way: one paste, about ten seconds.
If someone hands you a skill folder, just place it at ~/.claude/skills/<name>/. As long as it has a SKILL.md inside, Claude will find it. Restart Claude Code or start a new session so it picks up the new skill.
New skills are detected when a session starts. After you install one, start a fresh Claude Code session so the skill loads.
To list the skills installed globally on your machine, open Claude Code and ask:
Claude can read your ~/.claude/skills/ folder and tell you. Or check it yourself in the terminal:
Each folder name is a skill. Look inside any one of them for its SKILL.md to see what it does.
Now you know what a skill is, where it lives, and how to get one. The natural next questions:
Made by AI Service Engine · try the YouTube Transcript skill · build your own skill