The short answer
- 1Folders:
~/.claude/skills·~/.agents/skills(+ older~/.codex/skills) ·~/.cursor/skills - 2Run one:
/name(Claude Code, Cursor) ·$name(Codex) ·@nameattaches it in Cursor - 3See what’s installed:
/skills· Customize → Skills - 4Install:
npx --yes skillry-cli@latest install <slug>, add--agent claude-codefor Claude Code
Skills folders for each agent
Personal Skills work in every project you open. Project Skills live inside the repo, so everyone who clones it gets them.
| Agent | Personal | Project |
|---|---|---|
| Claude Code | ~/.claude/skills/ | .claude/skills/ |
| Codex | ~/.agents/skills/ (older: ~/.codex/skills/) | .agents/skills/, from the folder you start in up to the repo root |
| Cursor | ~/.cursor/skills/, ~/.agents/skills/ | .cursor/skills/, .agents/skills/ |
Every folder each agent reads, and which copy wins when two share a name: Skill locations.
Skill commands in Claude Code, Codex and Cursor
Calling a Skill by name is the quickest way to check it’s installed. If it runs, the agent can see it.
| Task | Claude Code | Codex | Cursor |
|---|---|---|---|
| List Skills | /skills | /skills | Customize → Skills |
| Run one | /name | $name | /name, @name |
| Plugin Skill | /plugin:name | via a plugin | via a plugin |
| Keep it on | — | — | Option/Alt+Enter (Custom Mode) |
| After you edit | Picked up live; /reload-skills for a new folder | Picked up live; restart if it isn’t | New chat or reload the window |
SKILL.md frontmatter fields
Each Skill has a SKILL.md file, and its settings sit between two --- lines at the top. These are the fields that change how the agent treats it.
| Field | Limit / effect | Claude Code | Codex | Cursor |
|---|---|---|---|---|
name | ≤64 chars; a–z, 0–9 and hyphens; matches the folder name | optional | required | required |
description | ≤1,024 chars; say what it does and when to use it | recommended | required | required |
allowed-tools | Tools it can use without asking (experimental in the spec) | yes | — | — |
paths | Runs on its own only for matching file patterns | yes | — | yes |
Skillry CLI commands
The Skillry CLI downloads a Skill from Skillry and puts it in the right folder for your agent.
| Command | What it does |
|---|---|
skillry-cli login | Signs you in through the browser with a device code |
skillry-cli status | Shows which account you’re signed in as |
skillry-cli install <slug> | Installs to ~/.agents/skills/<slug>/ |
--agent claude-code | …installs to ~/.claude/skills/<slug>/ instead |
--target <dir> | …installs to any Skills folder, e.g. .claude/skills |
--force | Replaces an existing copy and keeps a backup |
skillry-cli logout | Signs you out and revokes the session |
Start each command with npx --yes skillry-cli@latest. Runs on macOS or Windows with Node.js 22+. You can’t use --agent and --target together.
Common questions
What are the Claude Code commands for Skills?
/skills lists your Skills, /skill-name runs one, /plugin-name:skill-name runs a Skill that came with a plugin, and /reload-skills picks up a Skills folder you just created.
Where are the differences between agents explained?
Compare agents covers the same facts with worked examples.
Sources
Did this guide help?
