How to Install a Claude Code Skill from GitHub

By Cult of Claude · Published

To install a Claude Code skill from GitHub, copy the skill's folder, the one containing SKILL.md, into ~/.claude/skills/ for every project on your machine or into .claude/skills/ inside one repository. Claude Code reads the folder name as the slash command and the frontmatter description as the trigger. There is no package manager step for a plain skill; if the author distributes it as a plugin, you install it through /plugin instead.

What should I check before installing a skill?

A skill is instructions with tool access. Its frontmatter can pre-approve tools with allowed-tools, attach hooks that run shell on every tool call, and its scripts/ can be executed by Claude. Installing one is running a stranger's file with your credentials, so read SKILL.md first. Every entry on this site links its source file, shows the tools it declares, and states where the install command writes to, and that is the minimum you want to know. The comparison guide covers what a skill can and cannot do to your machine relative to hooks and MCP servers.

How do I install a skill into ~/.claude/skills?

This is the default. Skills under ~/.claude/skills/<name>/SKILL.md load in every session on the machine. Because a skill folder can carry scripts/ and reference files beside SKILL.md, the safe general form clones the repository and copies the folder. This is the command MCP Builder's entry page prints, and it installs to ~/.claude/skills/mcp-builder/:

git clone --depth 1 https://github.com/anthropics/skills /tmp/skills \
  && mkdir -p ~/.claude/skills \
  && cp -r /tmp/skills/skills/mcp-builder ~/.claude/skills/mcp-builder

--depth 1 keeps the clone small. The cp -r is what actually installs; the clone in /tmp can be deleted afterwards. After it runs you should have:

~/.claude/skills/mcp-builder/
├── SKILL.md
├── reference/
└── scripts/

When a skill is a single SKILL.md with nothing beside it, a clone is overkill. Fetch the raw file into a folder of its own; the folder is still required because the folder name is the command:

mkdir -p ~/.claude/skills/webclaw \
  && curl -fsSL https://raw.githubusercontent.com/0xMassi/webclaw/HEAD/skill/SKILL.md \
     -o ~/.claude/skills/webclaw/SKILL.md

The site uses HEAD in raw URLs rather than main deliberately: plenty of repositories default to master, and raw.githubusercontent.com resolves HEAD to whichever branch is the default, so the command keeps working if the project renames it.

How do I install a skill for one project only?

Put it under .claude/skills/ in the repository instead. It loads only in sessions inside that repo, and because it is a normal directory you can commit it and the whole team gets it on their next pull, which is the simplest way to share a skill without publishing a plugin.

cd your-project
git clone --depth 1 https://github.com/anthropics/skills /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/mcp-builder .claude/skills/mcp-builder
git add .claude/skills/mcp-builder && git commit -m "Add mcp-builder skill"

Nested copies work too: a .claude/skills/ inside a subdirectory loads for sessions in or below that subdirectory, and shows up directory-qualified so it does not collide with the root one. If a personal skill and a project skill share a name, the personal one wins; an enterprise-managed skill wins over both.

How do I install a skill from a plugin marketplace?

Some authors ship skills inside a plugin, which bundles them with agents, hooks and MCP servers under one version. A marketplace is a git repository with a .claude-plugin/marketplace.json. Add it, then install from it:

/plugin marketplace add anthropics/claude-plugins-community
/plugin install <plugin-name>@claude-community

/plugin marketplace add accepts owner/repo for GitHub, a full git URL for other hosts, or a local path. The install prompt asks for a scope: user (all your projects), project (written to the repo's .claude/settings.json, shared with collaborators) or local (this repo, just you). Plugin skills are namespaced, so a skill named review in a plugin named tools is /tools:review. If the install summary says Run /reload-plugins to activate., do that; otherwise it is live already. Anthropic's official marketplace (claude-plugins-official) is registered automatically; the reviewed community one is anthropics/claude-plugins-community. Cult of Claude lists the skills themselves; when an entry's source path sits inside a plugin's skills/ directory you can still install it as a plain skill with the commands above.

How do I verify the skill loaded?

  1. Type / in Claude Code. The command menu lists every available skill; yours should appear under its folder name. /skills shows the same list with descriptions, and /context shows what is loaded in the current session.
  2. Invoke it directly: /mcp-builder (or whatever the folder is called). If it runs, the file parsed.
  3. Ask for something that matches the description without naming the skill. Claude should invoke it on its own; if it never does, the description is too vague to trigger on, which is a defect of the skill, not your install.

Recent versions of Claude Code watch ~/.claude/skills/ and the project .claude/skills/ and pick up additions within the running session. Two cases still need a restart: if the top-level skills directory did not exist when the session started, and older builds that do not watch at all. If the skill is not in the / menu, start a new session before debugging anything else. Then check the frontmatter parsed:

head -20 ~/.claude/skills/mcp-builder/SKILL.md

The file must start with ---, the YAML must be valid, and the folder name must be usable as a command (lowercase and hyphens are safe). A skill that shares a name with a bundled skill replaces it; one that shares a name with a .claude/commands/ file takes precedence over the command.

What if the entry is a slash command, not a skill?

A good share of what circulates as "skills" on GitHub are single Markdown files under .claude/commands/. Those are slash commands: same /name invocation, no supporting files, and they install to ~/.claude/commands/<name>.md rather than to a skills folder. Entry pages here detect that from the source path and print the commands target, so if the page says ~/.claude/commands/, trust it. Agents likewise are one file each and go to ~/.claude/agents/<name>.md; see the agents directory.

How do I uninstall a skill?

Delete the folder. There is no registry to update for a plain skill; the directory watcher (or the next session) drops it. Plugins are removed through the plugin manager so their hooks and MCP servers are unregistered too.

rm -r ~/.claude/skills/mcp-builder      # personal skill
rm -r .claude/skills/mcp-builder        # project skill
/plugin uninstall <plugin-name>@<marketplace>   # anything a plugin brought in

Removing a marketplace with /plugin marketplace remove uninstalls every plugin you installed from it, so do that only when you mean it.

Why did the install command fail?

  • curl: (22) The requested URL returned error: 404. The file moved or the repository is gone. Open the entry's source link; the site marks repositories it can no longer reach.
  • cp: cannot stat after a clone. The path inside the repository changed since the entry was indexed. ls /tmp/<repo> and copy the folder that now contains SKILL.md.
  • The skill appears but does nothing useful. Its body may reference scripts or files that were not copied; check that everything the SKILL.md mentions exists beside it. Single-file fetches lose supporting files by construction.
  • Two skills with the same name. Rename the folder; the folder name is the command, and the frontmatter name only changes the display label for personal and project skills.
  • The entry page shows no install command. The entry records only its repository, not a path inside it, and the site refuses to guess. Open the repository, find the folder with SKILL.md, and use the clone-and-copy form above with that path.

Ready to pick one? Start from the full skills list, a category such as DevOps or security, or the catalog stats to see how much is out there.