Where Claude Code skills are stored
Personal skills live in ~/.claude/skills, one folder per skill, each with a SKILL.md inside. Project skills live in .claude/skills next to the code they belong to. Plugin skills come bundled inside the plugin and never appear in either folder, which is why a skill you can invoke is often nowhere you look.
The three places a skill can be
- ~/.claude/skills/
- Personal skills. Available in every project on the machine. One folder per skill, each holding a SKILL.md.
- .claude/skills/
- Project skills, in the repository root. Available only inside that project, and they travel with it when it is cloned.
- ~/.claude/plugins/
- Plugin skills. Installed as part of a plugin, listed under the plugin rather than on their own.
A skill is a folder, not a file. The folder name is the skill name, and the SKILL.md inside it carries the frontmatter (name and description) that decides when Claude loads it.
~/.claude/skills/
└── commit-msg/
├── SKILL.md # name, description, and the instructions
└── references/ # anything the skill reads when it runsHow to list them from the terminal
There is no command that prints all three at once, so it takes three. The first two are folders you can list; the third depends on what each plugin brought with it.
ls ~/.claude/skills # personal
ls .claude/skills # this project
ls ~/.claude/plugins # plugins, each with its own skills insideWhat this does not tell you is which of them Claude has actually used. The folder is the same size whether a skill fired two hundred times or never once.
Why a skill you can use is not in ~/.claude/skills
Almost always because it came from a plugin. Plugins install into ~/.claude/plugins and bring their own skills, subagents and slash commands with them; those never appear in the personal skills folder, and disabling the plugin takes them all away at once.
- A skill in a project folder only exists while you are in that project: open another repository and it is gone.
- A skill whose SKILL.md has no description is loaded but rarely triggered: the description is what Claude matches against.
- Two skills with the same folder name in different scopes both load, and the more specific one wins.
Questions
- Can I move a skill from a project into ~/.claude/skills?
- Yes. Copy the whole folder, not just the SKILL.md, and it becomes available in every project. The reverse works too, and is the honest fix for a personal skill that only ever makes sense in one repository.
- Do project skills override personal skills with the same name?
- The more specific scope wins, so a project skill takes precedence over a personal one with the same name. Both are still loaded, which is worth knowing when you are counting what is in the context window.
- Where do Codex and OpenCode keep theirs?
- The same shape, a different folder: ~/.codex/skills and ~/.opencode/skills. Skills are an open format, so the SKILL.md that works in one works in the others.
Loadout shows all of this in one list, with usage counts
A free Mac app that reads the same folders this guide describes: every skill, subagent, slash command, plugin and MCP server, and how often each one actually fires. Nothing leaves your machine.