# How to Install Claude Code Skills

> The practical install walkthrough: the one-line npx command, what --global really changes, where skills live in Claude, Claude Code, Claude Cowork, Codex, Cursor, OpenClaw and Hermes Agent, how to install by hand, and why a skill sometimes never triggers.

By Michał Jaskólski · Published 2026-08-17 · Updated 2026-08-17 · 8 min read
Canonical: https://skills.wondel.ai/learn/how-to-install-claude-code-skills/
Skills used: clean-code, obviously-awesome, cro-methodology

**TL;DR:** Run npx skills add wondelai/skills --all --global to install the whole library in about 30 seconds, with no account. The --global flag installs at user level, so the skills load in every project; drop it to install into the current repo only. The CLI links skills into the compatible agents it finds on your machine, and each agent then loads one on its own when a task matches its description.

- npx skills add wondelai/skills --all --global is shorthand for every skill, every detected agent, no prompts; the per-skill form is npx skills add wondelai/skills/<slug> --global.
- --global installs at user level so a skill follows you across every project; a project install lives in the repo and is the one you commit for teammates and CI.
- Every agent reads skills from its own directory — ~/.claude/skills for Claude Code, ~/.agents/skills for Codex, ~/.hermes/skills for Hermes Agent — so 'where did it install' has a different answer per agent.
- Claude and Claude Cowork are the exception: they load the skills enabled on your Claude account, not files sitting on your disk.
- When a skill never fires, the cause is almost always that its description doesn't match how you phrased the request — name the skill, or invoke it directly.

Installing an agent skill is genuinely a one-line job, over in about thirty seconds, with no account and nothing to configure. What trips people up is everything around that line: global or project, which directory your particular agent reads, what to do if you'd rather not run `npx`, and — the question that brings most people here — why the skill you just installed sits there quietly instead of firing when you need it.

If you're still deciding whether skills are the right tool, [what a skill is](https://skills.wondel.ai/learn/what-is-an-ai-agent-skill/) and [how skills compare to MCP](https://skills.wondel.ai/learn/claude-skills-vs-mcp/) are better starting points. This is the page for getting one onto your machine and confirming it works.

## What does `npx skills add wondelai/skills --all --global` actually do?

This is the command behind every install button on this site:

```
npx skills add wondelai/skills --all --global
```

`add wondelai/skills` points the [skills.sh](https://skills.sh) CLI at the public GitHub repo `wondelai/skills`. `--all` is documented shorthand for `--skill '*' --agent '*' -y`: every skill in the repo, into every compatible agent the CLI detects on your machine, without stopping to ask. `--global` installs at user level rather than into the current directory.

Two details matter before you run it. The CLI links skills into your agent directories rather than duplicating files — pass `--copy` for independent copies, which some sandboxes, container images and Windows setups need. And because `--all` skips the confirmation prompt, run `npx skills add wondelai/skills --list` first if you want to see what's coming.

## How do I install just one skill instead of all of them?

Append the skill's slug to the repo path. Every skill page on this site shows its own version of this line:

```
npx skills add wondelai/skills/obviously-awesome --global
```

For a handful rather than one, `-s` (`--skill`) takes several names at once and `-a` (`--agent`) narrows the targets — the CLI's own examples use `claude-code` and `cursor` as agent identifiers:

```
npx skills add wondelai/skills --skill clean-code refactoring-patterns --global
```

There's no penalty for installing everything. Agents load only each skill's name and description at startup — roughly a hundred tokens apiece — and pull the full instructions into context only when a task matches, which is why "install the lot and forget about it" is a sensible default rather than a context-budget problem.

## What does `--global` change, compared with a project install?

`--global` (short form `-g`) means *user level*: installed once into your home directory, available in every project you open. Leave the flag off and the skill installs into the project you're currently in.

The choice is about who else needs it. **Global** suits the frameworks you personally reach for everywhere: nobody else on your team gets them and none of your repos change. **Project** suits skills that *are* part of the project — a house style, a deployment procedure, a domain glossary. Because it lives inside the repo you commit it, so teammates get it on their next pull and cloud or CI sessions that clone the repo pick it up too. A skill that exists only in your home directory is invisible to all of those.

Most people end up doing both. If the same name exists at both levels, check your agent's precedence rules — Claude Code resolves a clash in favour of the personal skill over the project one, the opposite of what most people assume.

## Where do skills live in each agent?

These skills work in Claude, Claude Code, Claude Cowork, Codex, Cursor, OpenClaw, Hermes Agent, and other [agentskills.io](https://agentskills.io)-compatible agents. The installer handles placement for you, but knowing where each agent looks turns "it didn't work" into a five-second fix. The paths below come from each agent's own documentation.

### Claude Code

Personal skills live at `~/.claude/skills/<skill-name>/SKILL.md` and apply to all your projects; project skills live at `.claude/skills/<skill-name>/SKILL.md`. Claude picks one up automatically when a task matches, and you can invoke it directly as `/<skill-name>`. Claude Code watches those directories, so a skill added mid-session works without a restart — unless the skills directory itself didn't exist when the session started.

Claude Code can also install these skills as plugins, published as ten themed collections:

```
/plugin marketplace add wondelai/skills
/plugin install code-craftsmanship@wondelai-skills
```

Plugin skills are namespaced as `plugin-name:skill-name`, so they never collide with anything in your personal or project directories.

### Claude

The claude.ai apps don't read your filesystem, so `npx` can't reach them. Anthropic documents custom skills as zip uploads through Claude's settings, on the paid plans with file creation and code execution enabled. Uploaded skills are per-user rather than org-wide, and they don't sync between Claude's surfaces. Check [Claude's Agent Skills documentation](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) for the current steps and plan requirements.

### Claude Cowork

Cowork surprises people most: Cowork sessions do not read `~/.claude/skills/` from your machine. They load the skills enabled on your Claude account, synced when the session starts, managed from the Customize area in the Claude desktop app sidebar or in your skills settings on claude.ai. The route into Cowork is "enable it on your account", not "install it locally".

### Codex

Codex reads user-level skills from `$HOME/.agents/skills` and project skills from `.agents/skills` in your working directory and at the repository root, scanning upward from where you are. Invoke one explicitly with `$skill-name`, or let Codex match your prompt against the description. The repo also ships a Codex plugin marketplace, so in a clone Codex discovers the same ten collections and you manage them from the `/plugins` menu in the TUI.

### Cursor

Cursor looks in `.cursor/skills/` and `.agents/skills/` for project skills, and `~/.cursor/skills/` and `~/.agents/skills/` for user-level ones. It also reads `.claude/skills/` and `~/.claude/skills/` for backwards compatibility, which is why skills installed for Claude Code often just appear in Cursor. Skills surface automatically, or type `/` in the Agent chat and pick one by name.

### OpenClaw

OpenClaw searches several roots in priority order — the workspace's own `skills` directory, then `<workspace>/.agents/skills`, then `~/.agents/skills`, then its managed state directory and bundled skills — and the highest source wins on a name clash. Invoke as `/skill-name`, reference inline as `$skill-name`, or let the model choose. OpenClaw also has its own installer (`openclaw skills install`).

### Hermes Agent

Hermes treats `~/.hermes/skills/` as its primary directory and source of truth, and also picks up project-local skills from `<project-root>/.hermes/skills/` or `<project-root>/.agents/skills/`, plus extra directories listed under `skills.external_dirs` in `~/.hermes/config.yaml`. Skills are invoked as slash commands, and Hermes will chain several in one command.

For any agent not listed here, its own docs are the authority — the shared standard specifies the skill *format*, not where each client stores it. The [agentskills.io client showcase](https://agentskills.io/clients) links to the skills documentation for every compatible agent.

## How do I install a skill by hand, without npx?

A skill is just a folder. If you'd rather not run an installer, clone the repo and copy the one you want into the right directory:

```
git clone https://github.com/wondelai/skills.git
cp -r skills/clean-code ~/.claude/skills/
```

Copy the whole directory, not only `SKILL.md` — most skills bundle a `references/` folder the instructions point at, and a skill missing its references will load and then fail halfway through a task. Substitute the target path for your agent from the section above. The trade-off is updates: the CLI refreshes what it installed with `npx skills update --global`, while a hand-copied folder is yours to re-copy.

## How do I check that it worked?

Two checks, and you want both — one that the files landed, one that the agent can see them.

```
npx skills list --global
npx skills list --global --agent claude-code
```

Add `--json` for machine-readable output, or just look: `ls ~/.claude/skills` should show one directory per skill, each containing a `SKILL.md`.

The second check is the one that matters, because a file on disk is not a skill in context. Start a fresh session, give the agent a task the skill is supposed to own, and ask it to name what it used:

> **Prompt** — Use the `clean-code` skill to review this file for naming, function length, and error handling, and start your answer by naming the skill you are applying so I can confirm it loaded
> (https://skills.wondel.ai/skills/clean-code/)

If the answer names the skill and reads like the framework rather than generic advice, the install is real. In Claude Code and Cursor you can also invoke it directly — `/clean-code` — which bypasses matching entirely and proves the file is being read.

> A skill that never triggers usually isn't installed wrong. It's described wrong — or you phrased the request in words its description never anticipated.

## Why isn't my skill triggering?

This is the most common problem after a successful install, and the honest answer is rarely the exciting one. Agents don't read your skills at startup — they read each skill's **name and description**, and nothing more, until something you say matches. So the skill isn't broken and the install isn't corrupt: the description simply doesn't overlap the words you used. Ask for "help with our landing page" and a skill whose description talks about conversion rate optimization, funnels and objection handling may never surface.

Fixes, in the order worth trying:

1. **Name the skill in your prompt.** "Use the `cro-methodology` skill to audit this page." This works in every compatible agent and instantly separates a matching problem from an installation problem.
2. **Invoke it directly.** `/skill-name` in Claude Code, Cursor, OpenClaw and Hermes Agent; `$skill-name` in Codex. If that works and automatic matching doesn't, the file is fine.
3. **Check the scope.** A project install only applies inside that project, and a global install won't reach a Cowork or cloud session that never sees your disk.
4. **Restart the session.** Most agents load skill metadata at startup. Claude Code watches its directories, but not one created after the session began.
5. **Look for a name collision.** A skill sharing a name with a bundled command may be shadowed; use the namespaced plugin form instead.
6. **Re-install with `--copy`** if your environment doesn't resolve symlinks — a broken link looks exactly like a missing skill.

The mechanism is worth internalising if you write your own skills: the description is not documentation, it's the trigger. [What goes in SKILL.md](https://skills.wondel.ai/learn/skill-md-explained/) covers how to write one that fires.

> **Prompt** — Use the `obviously-awesome` skill to position our product against the alternatives our buyers actually consider, and tell me which parts of your instructions you are drawing on as you go
> (https://skills.wondel.ai/skills/obviously-awesome/)

## How do I update or remove skills?

```
npx skills update --global
npx skills remove --global
```

`update` refreshes installed skills to their latest versions (`-g` limits it to global, `-p` to project). `remove` runs interactively or takes names directly, with the same `--global` and `--agent` flags as `add`, and only removes the link or copy from the agent directory.

## Frequently asked questions

### Do I need an account or an API key to install these skills?

No. They are MIT-licensed files in a public GitHub repository, and the installer places them in a directory your agent already reads. Nothing to sign up for, no key to paste, no service in the loop at runtime — once the folder is on disk the skill works inside the agent you already use, on the model you already pay for.

### Will installing the whole library slow down my agent or fill my context window?

No, by design. Agents load only the name and description of each installed skill at startup, on the order of 100 tokens each. Full instructions enter context when a task matches, and bundled reference files load only if the instructions call for them. That progressive disclosure model is why installing the whole library is a sensible default rather than a trade-off.

### Can I install these skills in an agent that isn't on the compatible list?

Usually yes. The seven agents named here are the ones we call out, but the format is an open standard and any agent that reads a folder containing a SKILL.md file can use these skills. Copy the folder into whichever directory that agent documents as its skills location — check its own docs, or the client showcase on agentskills.io, which links to the skills documentation for each compatible client.

### Does a skill installed in Claude Code also work in Claude on the web?

Not automatically. Custom skills don't sync between Claude's surfaces: a filesystem skill in Claude Code is separate from one uploaded to claude.ai, which is separate again from one uploaded through the API. This also explains the Cowork behaviour — Cowork sessions load the skills enabled on your Claude account rather than the files in your home directory.

## Install it and try one thing

Run the one-liner, then pick a task you were going to do anyway and name a skill in the prompt:

```
npx skills add wondelai/skills --all --global
```

The verification that counts isn't a directory listing — it's an answer that sounds like the framework instead of generic advice. Browse [all the skills](https://skills.wondel.ai/skills/) to find the one closest to what you're working on today.
