Guides

Claude Code skills: what they are, how to install them, which to try

A Claude Code skill is a folder with a SKILL.md file in it. The file has two parts: a description that tells Claude when to use the skill, and the instructions Claude follows when it does. Claude loads a skill by itself when your request matches the description, or you run it by typing a slash and its name. Save one in ~/.claude/skills/ to use it in every project, or in your repository’s .claude/skills/ to share it with your team. Ready-made skills install as plugins with /plugin. Use skills for work that needs judgment. If a rule has to hold every time, use a hook.

What a skill is

A skill is a Markdown file with YAML frontmatter at the top. The frontmatter’s description says what the skill does and when to use it. The body below it holds the instructions. The folder can also hold scripts, templates and reference files that the instructions point to.

At the start of a session Claude sees only the names and descriptions of your skills. A skill’s body loads only when the skill is used, so a long checklist or a reference document costs almost nothing until you need it. That’s the difference from CLAUDE.md, which loads in full every session. The docs suggest making a skill when you keep pasting the same instructions into the chat, or when a section of CLAUDE.md has grown from a fact into a procedure.

Older tutorials get two things wrong:

Prefer a minute of video? You’re using Claude Code wrong: skills.

Where skills live

Where you save a skill decides who gets it:

WherePathWho gets it
Personal~/.claude/skills/<name>/SKILL.mdYou, in every project on this machine
Project.claude/skills/<name>/SKILL.mdEveryone in the repository, once you commit it
Plugin<plugin>/skills/<name>/SKILL.mdWherever the plugin is enabled, as /plugin-name:skill-name
claude.ai accountSkills you turn on in claude.ai settingsCloud and Cowork sessions, and terminal sessions signed in with that account
EnterpriseThe managed settings directoryEveryone on the machines where your organization deploys it

Make your first skill

The quickest way is to ask Claude Code: “turn the release-notes steps we just did into a skill”. Anthropic’s skill-creator (below) does the same with more care. By hand it takes two minutes. This skill writes release notes from your recent commits:

mkdir -p ~/.claude/skills/release-notes

~/.claude/skills/release-notes/SKILL.md

---
description: Writes release notes from recent commits. Use when the user asks for release notes, a changelog entry or what shipped.
---

## Recent commits

!`git log --oneline --no-merges -30`

## Instructions

Group the commits above into Added, Changed and Fixed. One line each,
in words a user would understand. Skip version bumps and internal changes.

The line that starts with ! runs before Claude reads the skill, so Claude works from your real commits instead of guessing. Open a git project, start claude, and either ask “what shipped this week?” or type /release-notes. The folder’s name becomes the command.

The frontmatter fields worth knowing (all of them):

Keep the body short. Once a skill loads, it stays in the conversation, and every line costs tokens on every later turn.

Install a ready-made skill

There are three ways. The first one gives you the most to check before you install:

  1. From Anthropic’s official marketplace. Claude Code adds it the first time you start an interactive session:
    /plugin install frontend-design@claude-plugins-official
    In a session, this command opens the plugin’s details instead of installing straight away. The details list what the plugin adds: skills, hooks, agents and MCP servers. For official plugins they also show an estimate of the context cost. Then you pick a scope: you in every project, everyone in this repository, or you in this repository only. /plugin with nothing after it opens a list to browse.
  2. From another marketplace. Add the marketplace first. Anthropic keeps its example skills, including the ones behind Claude’s document features, in the anthropics/skills repository:
    /plugin marketplace add anthropics/skills
    /plugin install document-skills@anthropic-agent-skills
  3. As a plain folder. Copy the skill’s folder into ~/.claude/skills/ or .claude/skills/. The third-party skills command from Vercel copies it for you and knows where dozens of agents keep their skills. machine-skill (below) installs this way:
    npx skills add AirsupHQ/machine-skill -g -a claude-code

To check that it worked, type / and look for the skill, or run /skills. Plugin skills show up as /plugin-name:skill-name.

Before you install, remember what you’re adding. A skill brings its instructions and whatever scripts it carries, and a plugin can also run hooks and MCP servers. Read what it adds, especially from a marketplace you don’t know. One detail from the docs: a project skill’s allowed-tools applies even in a folder you haven’t marked as trusted. So before you run Claude Code in a repository you’ve just cloned, check the skills committed to it.

Run a skill

From our own tests: on a short prompt Claude doesn’t always load a skill by itself. We tested frontend-design with Sonnet 5.5 and a one-line prompt for a landing page, and Claude ignored the skill until we typed /frontend-design:frontend-design at the start. If you need a skill to run, call it by name.

Skills worth trying

Start with the ones already built in. Then add one at a time, and keep only the ones you actually use, because every skill Claude can pick by itself adds its description to every request.

Skill, hook, MCP, plugin or mod?

The five are easy to mix up. They do different jobs:

What it isWhen it runsPick it when
SkillInstructions Claude reads and followsYou type /name, or Claude matches the descriptionThe work needs judgment: a checklist, a playbook, reference material
HookYour command, HTTP request or prompt, set in settingsEvery time its event fires, without Claude decidingIt must happen the same way every time: format after edits, block a dangerous command
MCP serverA connection to an outside service, with its toolsWhen Claude calls one of its toolsClaude needs data or actions from another system: a database, Slack, a browser
PluginA package of skills, hooks, agents and MCP serversOnce installed and enabledA second project needs the same setup, or you want to share yours
ModA plugin whose code runs inside Claude CodeOn events: a tool call, a prompt, drawing the screenYou want a pane, a button or a new behavior in Claude Code itself

One mistake to avoid: “never touch .env” written in a skill is a request, not a guarantee. If a rule must hold every time, make it a hook that blocks the edit. A skill can carry hooks of its own in its frontmatter, and they stay on from the moment the skill runs until the session ends.

What skills cost in context

When a skill doesn’t trigger

Skills in Codex

Codex reads the same SKILL.md format, from different folders. Your personal skills go in ~/.agents/skills/. A repository’s skills go in .agents/skills/, and Codex looks for them in every folder from where you started up to the repository root. You call a skill with $ or /skills, and Codex also picks one by its description. It ships with skill-creator and skill-installer. A skill that needs only name and description works in both agents. Claude Code’s extras, such as ! commands and context: fork, are its own, so don’t count on them in Codex.

Where Meowdoro fits

We build Meowdoro, a focus timer around the MacBook notch, and it’s a small example of the plugin side of this guide. When you click Connect in its settings, it installs a small plugin into Claude Code and Codex. The plugin’s hooks tell the notch when a session finishes or is waiting for you. We used hooks, not a skill, because this has to happen every time. So while a skill works for ten minutes, you can step away: the notch tells you when Claude needs you, and your break stays a break (how it shows agents). Try it and tell us what’s missing.

Questions

What is a skill in Claude Code?

A folder with a SKILL.md file: a description of when to use it, and instructions Claude follows. Claude loads it when your request matches the description, or you run it with /name.

Where are Claude Code skills stored?

Personal skills are in ~/.claude/skills/, project skills in .claude/skills/ in the repository, and plugin skills inside the plugin. Run /skills to see what’s loaded.

How do I install a skill in Claude Code?

For a plugin, run /plugin install name@marketplace, for example /plugin install frontend-design@claude-plugins-official. For a plain skill, copy its folder into ~/.claude/skills/.

Are skills the same as slash commands?

Custom slash commands were merged into skills. A command file and a skill with the same name both create the same /name, and skills add supporting files and automatic loading.

What’s the difference between a skill and a hook?

A skill is instructions Claude interprets, so the result can vary. A hook is your own command that runs every time its event fires, without Claude deciding. Guardrails belong in hooks.

What’s the difference between a skill and an MCP server?

An MCP server connects Claude to an outside system and gives it tools. A skill gives Claude knowledge and steps, which can include how to use those tools well. They work well together.

Do skills use tokens?

Yes. The description of every skill Claude can pick by itself goes with every request, and the full text is added once the skill is used. Skills you only run by hand can leave their descriptions out with disable-model-invocation: true.

Do Claude Code skills work in Codex?

The format is the same open standard, so a simple skill works in both. Codex reads skills from ~/.agents/skills/ and .agents/skills/ rather than .claude/skills/.

Sources: the Claude Code documentation on skills, extending Claude Code, installing plugins and mods; OpenAI’s skills documentation for Codex; the repositories anthropics/skills, anthropics/claude-plugins-official, AirsupHQ/machine-skill and vercel-labs/skills. Read on November 5, 2026. Our tests of frontend-design and machine-skill were run on November 1–3 with Claude Code 2.1.309.