A Claude skill is a folder, and that is most of the secret. It contains one file named SKILL.md with a little YAML header at the top, and maybe some scripts next to it. So how to install a Claude skill is really a question of where to put that folder so Claude reads it. The answer depends on whether you mean Claude Code in your terminal or the Claude app in your browser, and the two paths look nothing alike.
I'll cover both, plus installing from a GitHub repo and via a plugin.
Where do Claude skills go in Claude Code
There are only two directories worth memorizing here.
For a skill you want in every project, drop it in your personal folder at ~/.claude/skills/<skill-name>/SKILL.md. For a skill that belongs to one repo (and that you want to commit so your teammates get it), put it at .claude/skills/<skill-name>/SKILL.md inside that project. The directory name becomes the command, so a folder called deploy-staging gives you /deploy-staging. Personal skills apply across all your projects; project skills apply to the one repo. When a name collides, personal wins over project. Both of these are documented in Anthropic's skills guide for Claude Code.
Concretely, installing a skill you already have is two commands:
mkdir -p ~/.claude/skills/my-skill
cp -r /path/to/downloaded-skill/* ~/.claude/skills/my-skill/
That second line assumes the skill you downloaded already has its own SKILL.md at the top. If the folder you copied is itself named after the skill, just move the whole folder into ~/.claude/skills/ and skip the rename dance.
One detail trips people up. Claude Code watches those skill directories while a session is running, so if you add or edit a skill under ~/.claude/skills/ or a project's .claude/skills/, it takes effect in the current session without a restart. But if the top-level .claude/skills/ directory did not exist when you launched, Claude Code was not watching that path, so a brand-new directory needs one restart before it gets picked up. For the first skill in a fresh project, restart once. After that, live edits just work.
How to install a Claude skill from a GitHub repo
Most skills you find live on GitHub. Cloning one into place is the cleanest install.
Say the repo is someone/cool-skill and the actual skill folder sits at the repo root. Clone it straight into your personal skills directory:
git clone https://github.com/someone/cool-skill ~/.claude/skills/cool-skill
If the repo holds several skills in subfolders (a lot of them do), clone it somewhere temporary, then copy the one folder you want into ~/.claude/skills/. The thing Claude cares about is that the final folder contains a SKILL.md at its top level. A repo that wraps the skill in an extra directory will not load until you flatten it. For more on finding skills worth installing, see our guide on Claude skills on GitHub.
Claude skill install via a plugin
There is a second route in Claude Code that handles the file placement for you. Plugins bundle skills (and sometimes agents, hooks, and MCP servers) and install through a marketplace.
Run /plugin to open the plugin manager. The official Anthropic marketplace is already there, so you can browse the Discover tab and install something with a single command:
/plugin install commit-commands@claude-plugins-official
To pull in a marketplace hosted on someone's GitHub repo, add it first using the owner/repo format, then install from it:
/plugin marketplace add anthropics/claude-code
/plugin install <plugin-name>@claude-code
After installing, run /reload-plugins to activate it without restarting. One catch: plugin skills are namespaced by the plugin, so commit-commands gives you /commit-commands:commit, not a bare /commit. The full marketplace flow is in Anthropic's plugin docs. Plugins are the right call when a skill ships with extra machinery. For a single loose SKILL.md folder, the plain .claude/skills/ copy is faster.
How to add a skill to the Claude app
The desktop and web apps do not use those filesystem paths at all. You upload a ZIP instead.
First, turn on the capability. On Free, Pro, or Max, go to Settings, then Capabilities, and switch on "Code execution and file creation." On Team or Enterprise, an admin enables both "Code execution and file creation" and "Skills" under Organization settings first. Then open Customize, then Skills, click the plus button, choose Create skill, and pick "Upload a skill." Hand it a ZIP of your skill folder and toggle the new entry on. Anthropic's help center documents this in Use skills in Claude.
So zip the folder before you upload. The same SKILL.md folder that works in Claude Code becomes the ZIP you feed the app, which means you are maintaining one artifact across both delivery methods.
How to confirm the skill loaded
Do not assume it loaded, because it is quick enough to check directly.
In Claude Code, the fastest confirmation is to just ask Claude in plain language: "What skills are available?" Your skill should show up by name. If it is user-invocable, type / and start typing its name; it should autocomplete. Then run it directly, like /your-skill, and watch it do the thing. In the Claude app, the skill appears in your skills list under Customize, with a toggle you can flip on or off.
When a skill refuses to appear, the cause is almost always one of two things. Either the folder is nested one level too deep, so SKILL.md is not at the top of the skill directory, or the YAML frontmatter is missing the name and description fields that tell Claude what the skill is. We walk through the full diagnostic in why your Claude skill is not working. Fix the folder depth first; it is the usual culprit.
You need a skill before you can install one
Every step above assumes you already have a valid SKILL.md folder on your disk. Writing one by hand means getting the YAML exactly right, picking a description that makes Claude load the skill at the correct moment, and keeping the body short but complete. That is real fiddly work before you ever reach the mkdir command.
If you do not have a skill yet, Knack builds the whole folder for you from a short interview. You answer questions about the workflow you want to teach Claude, and it outputs a standards-compliant SKILL.md folder you can drop straight into ~/.claude/skills/ or zip and upload to the app. No YAML debugging. You go from idea to the install step in one sitting.
Once the folder is in place, the rest is using it well. Our guide on how to use Claude skills covers invoking them, passing arguments, and getting Claude to reach for the right one at the right time. Put the folder where Claude looks, confirm it loaded, and you are done.