How-to

How to Add Skills to Claude Code (4 Install Methods)

Four ways to add skills to Claude Code: plugin marketplace, skills CLI, GitHub CLI or manual copy, plus personal vs project scope and load fixes.

By Updated 6 min read

Learning how to add skills to Claude Code takes one command, and there are four to choose from: register a plugin marketplace, run the skills command-line tool, use GitHub CLI, or copy the skill folder yourself. All four end in the same place, a folder containing SKILL.md under .claude/skills/ or ~/.claude/skills/, and the one you pick depends on whether you want a single skill or a whole bundle, and whether the skill is for one project or for you everywhere.

The examples below use the webapp-testing skill from Anthropic's anthropics/skills repository, which tests local web apps with Playwright scripts. Swap in any owner, repository and skill name from the directory. For background on what you are installing, see what Claude skills are.

Which install method should you use?

MethodBest forInstallsNeeds
Plugin marketplaceAnthropic's bundles and repos that publish a marketplace fileEvery skill in a pluginClaude Code only
npx skills addOne skill from any GitHub repositoryOne skill, project or globalNode.js
gh skill installOne skill, with version pinning and updatesOne skill, project or user scopeGitHub CLI 2.90.0 or later
Manual copyNo extra tools, full control, offline useWhatever you copyGit and a shell

If you are unsure, start with the skills CLI. It targets Claude Code with a flag, handles the folder for you and can remove or update the skill later.

Where do Claude Code skills live?

Claude Code reads skills from several places, and the location decides who gets the skill.

LocationPathApplies to
Personal~/.claude/skills/<name>/SKILL.mdEvery project on this machine
Project.claude/skills/<name>/SKILL.mdSessions in this repository
Nested<subdir>/.claude/skills/<name>/SKILL.mdWork in that subdirectory
Plugin<plugin>/skills/<name>/SKILL.mdWherever the plugin is enabled, as /plugin-name:skill-name

If two skills share a name, enterprise settings beat personal skills and personal skills beat project skills. Commit .claude/skills/ to your repository when you want teammates to get a skill automatically. Keep a skill in ~/.claude/skills/ when it is a private habit that nobody else needs.

Skills you enable in the Claude apps download into ~/.claude/skills/synced/ when you sign in with the same account, in Claude Code 2.1.273 or later. The names synced and anthropic-skills are reserved, so do not use them for your own folders. The full table of paths and notes is on the Claude Code agent page.

Method 1: add a plugin marketplace

A marketplace is a repository with a .claude-plugin/marketplace.json file that lists plugins. You add the repository once, then install plugins from it by name. Anthropic's skills repository publishes one under the name anthropic-agent-skills:

/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills

Run these inside a Claude Code session. You can also run /plugin and browse the Discover tab. From a shell, the equivalents are claude plugin marketplace add and claude plugin install. According to the repository, document-skills and example-skills are the two plugin sets it offers.

The trade-off is granularity. A plugin installs the skills it bundles as a unit, and Anthropic's plugin documentation notes that an enabled plugin's skill names and descriptions are in context on every turn. If you want one skill and not a set, use method 2, 3 or 4. You pick a scope when you install a plugin: user scope for every project, project scope for everyone in the repository, or local scope for you in this repository only.

Method 2: install one skill with the skills CLI

The skills tool from Vercel Labs copies a single skill into the correct folder for your agent:

npx skills add anthropics/skills --skill webapp-testing -a claude-code

By default this is a project install, which writes to .claude/skills/ in the current folder. Add -g for a global install into ~/.claude/skills/. The tool accepts GitHub shorthand, full repository URLs, a direct path to a skill folder, other Git hosts and local paths. Useful companions are npx skills list, npx skills find to search, npx skills update and npx skills remove. The skills CLI repository has the full flag list, including --list to preview a repository's skills without installing and -y for non-interactive runs.

The directory also has a skill, Find Skills, that helps an agent discover and install skills with this CLI.

Method 3: install with GitHub CLI

GitHub CLI has a gh skill command group, currently in public preview, that needs version 2.90.0 or later:

gh skill install anthropics/skills webapp-testing --agent claude-code
gh skill install anthropics/skills webapp-testing --agent claude-code --scope user

The first command installs at project scope, and --scope user makes it a personal install. The command group also offers search, preview, update and publish, and --pin or an @version suffix locks a version. Pinning is worth using for skills that run scripts, since it stops a later change in the repository from reaching your machine unreviewed. The gh skill install manual documents every option.

Method 4: copy the folder yourself

Nothing in Claude Code requires a tool. A skill is a folder, so you can clone the repository and copy the part you want:

git clone --depth 1 https://github.com/anthropics/skills.git skills-src
mkdir -p .claude/skills
cp -r skills-src/skills/webapp-testing .claude/skills/webapp-testing
rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. On Windows PowerShell, use Copy-Item -Recurse for the copy step. The folder must contain SKILL.md directly, so check that you copied the skill folder and not its parent. A manual copy is also the easiest way to read every file before it reaches your project.

How to check that a skill loaded

Run /skills inside Claude Code. The menu lists every skill it found and where each one came from. Then call the skill by name, for example /webapp-testing, or describe a task that matches its description and watch whether Claude loads it. For a plugin, claude plugin list in your shell shows its status.

Claude Code watches the skill folders for changes, so a new skill inside an existing folder, or an edit to an existing SKILL.md, applies without a restart. Plugin changes to hooks, agents and MCP configuration need /reload-plugins instead.

Why does a skill not load?

Work through these causes in order.

  1. File name. The file must be named exactly SKILL.md, and it must sit one folder below skills/.
  2. Frontmatter. The opening --- has to be the first line. Claude Code's documentation says malformed frontmatter still loads the skill, but with empty metadata, so the skill appears without a useful description.
  3. A new top-level folder. If .claude/skills did not exist when the session began, run /reload-skills.
  4. A subfolder skill. A skill in something like apps/web/.claude/skills does not load at startup. It loads the first time Claude edits a file in that subfolder.
  5. Cloud sessions and scheduled routines. These do not read ~/.claude/skills/ on your machine. Commit the skill to the repository's .claude/skills/ instead.
  6. A plugin error. If an install fails with a marketplace error, add the marketplace first, then install with plugin@marketplace.
  7. It loads but never triggers. Run /skill-name to bypass auto-detection. If that works, the description needs the words users actually say. The SKILL.md format reference covers description limits, and claude plugin validate .claude/skills can find parse errors in recent versions.

Update and remove skills

Each method has its own way to clean up:

  • Plugins: use the Installed tab in /plugin, or /plugin uninstall <plugin>@<marketplace>.
  • Skills CLI: npx skills update and npx skills remove webapp-testing.
  • GitHub CLI: gh skill update or gh skill update --all. Pinned skills are skipped.
  • Manual copies: delete the folder, or copy a newer version over it.

Safety checks before you install

A skill runs with the permissions of your Claude Code session. Read SKILL.md and everything under scripts/ before you install, and look closely at allowed-tools, which pre-approves tools while the skill runs. Plugins can also bundle hooks and MCP servers, so read a plugin's details before you accept it.

The directory shows each skill's licence and an automated safety check on its page, and the top skills list is a reasonable place to look for well-used options. If you want to write your own instead, how to create a Claude skill is the next step. The same folders also work outside Claude Code, and the pages for Codex and Cursor list where those agents look.

Frequently asked questions

Where does Claude Code look for skills?

Personal skills live in ~/.claude/skills/ and apply to every project on your machine. Project skills live in .claude/skills/ inside a repository, and nested .claude/skills/ folders in subdirectories load when Claude works with files there. Plugins and managed enterprise settings can add skills too.

What is the quickest way to install one skill from GitHub?

Run npx skills add owner/repo --skill skill-name -a claude-code from your project folder. It copies that one skill into .claude/skills/. Add -g to install it into ~/.claude/skills/ for all projects instead.

Do I need to restart Claude Code after adding a skill?

Usually not. Claude Code watches the skills folders, so adding or editing a skill inside an existing folder applies in the running session. If you created a top-level skills folder that did not exist when the session started, run /reload-skills.

Why does my skill not show up in /skills?

The usual causes are a file that is not named exactly SKILL.md, a skill folder nested too deep, a first line that is not the opening --- of the frontmatter, or a skills folder created after the session began. Fix the file, run /reload-skills if needed, and check /skills again.

Can I use the same skill in Claude Code and other agents?

Yes, because skills follow an open format. Codex, Cursor, Gemini CLI and GitHub Copilot each read their own folders, and several also read .claude/skills or .agents/skills. The skills CLI and GitHub CLI can write the same skill into the right folder for each agent.