A Claude Code skill is a folder with a SKILL.md file in it (see What is SKILL.md?). Installing one just means putting that folder where Claude Code looks. There are two places it can go, and two ways to get it there.
Where Claude Code looks for skills
| Scope | Folder | Who gets it |
|---|---|---|
| User | ~/.claude/skills/<skill-name>/ | You, in every project |
| Project | .claude/skills/<skill-name>/ | Everyone who clones the repo |
Source: Claude Code docs, Agent Skills.
Option 1: install a skill by hand
- Get the skill folder (clone it, or download and unzip it).
- Copy it into
~/.claude/skills/for yourself, or into.claude/skills/at the root of the repo for the team. - Check that
SKILL.mdsits directly inside the skill folder, not one level deeper. - Claude Code picks up the new skill in the current session, no restart needed. If the
skillsfolder didn't exist when the session started, run/reload-skillsonce. Claude reads each skill's name and description and loads the full skill only when a task matches.
That's fine for one skill. It gets messy with ten skills, a few machines and teammates on different versions. And there's no record of which version you copied.
Option 2: install with the Skillpack CLI
Skillpack is an open-source Skills Hub. Its CLI is a single native binary. It's not an npm package. The macOS and Linux installers are on GitHub releases.
To install a skill for the current project, Claude Code only:
skillpack install <slug> --scope project --tools claude-code
This writes the skill into .claude/skills/ and records it in .companion/skills.lock.json with its version and a sha256 checksum. Want it in ~/.claude/skills/ instead? Use --scope user.
A few useful flags:
--version 1.2.3installs a specific version.--pinkeeps it there.--dry-runshows what would change without writing anything.--tools claude-code,codex,opencodeinstalls the same skill for Claude Code, Codex and OpenCode in one go.
Keep the team in sync
Commit .companion/skills.lock.json. Then a teammate (or CI) runs:
skillpack sync --frozen
It checks installed skills against the lockfile and restores missing copies. If someone edited a skill locally, it fails instead of overwriting the change. Sharing skills across several repos? See How to share Claude Code skills with your team. To move to newer versions:
skillpack update --all --dry-run
skillpack update --all
Troubleshooting
- Claude doesn't use the skill: Claude matches on the
descriptionin the frontmatter. Make it say when to use the skill. - Skill not found: check the path is
.claude/skills/<name>/SKILL.md. If you created theskillsfolder after the session started, run/reload-skills. - Something's off with the setup: run
skillpack doctor. It checks setup and connectivity.
Get started
Browse skills and sign up on Skillpack to install, version and share them with your team.