SkillCannon

Claude Code Skills: A Practical Guide

Updated Jun 22, 2026

Claude Code skills are folders of instructions that teach Claude Code how to do a specific task the way you want, loaded automatically when your request matches what the skill is for. Each skill is a SKILL.md file with a name, a description, and the actual method, plus optional scripts and reference files. Instead of pasting the same guidance into every session, you write it once and Claude reaches for it when it is relevant.

This guide is the practical version: how skills work inside Claude Code, how they differ from commands and subagents, how to use and create them, and where to find good ones. For the plain definition of the format itself, see what are Claude skills.

How skills work in Claude Code

A skill lives in a folder containing a SKILL.md file. Claude Code looks in two places:

  • Personal skills: ~/.claude/skills/ on your machine, available across all your projects.
  • Project skills: .claude/skills/ committed to a repo, shared with everyone who works in it.

The SKILL.md frontmatter holds a name and a description. Claude reads only those short lines for every installed skill, then loads a skill's full instructions only when your request matches its description. This is progressive disclosure, and it is why you can install many skills without clogging the context window.

Inside Claude Code, skills can do more than hold text. A skill can declare the tools it is allowed to use, run bundled scripts, pull in reference files, and orchestrate multi-step work, including spawning subagents. That range is what separates a real skill from a saved prompt.

Skills come in two invocation styles:

  • Model-invoked: Claude triggers the skill on its own when your request matches the description. Most skills work this way.
  • User-invoked: you trigger the skill by name, like a slash command, when you want it deliberately. Skill authors can mark a skill so the model will not auto-trigger it.

Skills vs commands vs subagents

These three get muddled constantly, so here is the clean version.

  • A slash command is a saved prompt you trigger by name. It is the lightest of the three: text in, behavior out. Useful, but it does not bundle resources or load itself automatically.
  • A skill is an instruction package: a description so Claude knows when to use it, the method itself, and optional scripts and files. A skill can be user-invoked like a command, but it can also fire automatically and carry far more than a prompt.
  • A subagent is a separate Claude instance with its own context window, spun up to handle a focused piece of work without polluting the main thread. A skill can spawn subagents as part of its method.

The short version: a command is a shortcut, a skill is a packaged capability, and a subagent is a worker. You will see people online call skills "just subagent recipes" or a marketing gimmick. That undersells them. The value is not novelty, it is reliability: a skill turns a method you would otherwise re-explain every time into something Claude applies the same way on demand, with the right tools and resources attached.

How to use a skill in Claude Code

Three common paths, easiest first:

  1. Drop in a folder. Put the skill's folder in ~/.claude/skills/ (just for you) or your project's .claude/skills/ (for the whole team). Claude discovers it automatically.
  2. Install a plugin. Many skills ship inside a plugin, which can bundle several skills plus commands, hooks, and MCP servers. You add a marketplace and install the plugin as one unit.
  3. Use a bundled skill. Some skills ship with Claude, for example the document-creation skills for Word, PowerPoint, and Excel, and the Frontend Design skill that pushes UI output toward something production-ready. These are available without installing anything.

If a skill depends on an MCP server, configure that server too, the skill provides the method, the MCP server provides access to your data and systems. For the full step-by-step across agents, see how to use Claude skills.

How to create your own skill

Writing a skill is mostly writing a good SKILL.md:

  1. Start with the description. It is the single most important line, it is how Claude decides when to use the skill. Be specific about the triggers ("use when the user wants to review a PR against our security checklist"), not vague.
  2. Write the method, not a personality. Put the actual steps, rules, and edge cases. Treat it like onboarding a capable new hire, not prompting a chatbot.
  3. Attach only what helps. Add scripts, templates, or reference docs when the task needs them. Keep the SKILL.md itself tight and link out to longer references.
  4. Test the trigger. Confirm Claude reaches for the skill on the phrasings you expect, and refine the description until it does.

Claude Code also ships a skill-creator skill that walks you through this if you would rather be guided.

Are Claude Code skills only for Claude Code?

No. SKILL.md is an open format, so a skill written for Claude Code often runs in Codex, OpenCode, and other agents with little or no change. The big public skill libraries advertise exactly this, working across a dozen-plus agents.

The honest caveat: Claude-specific features can degrade elsewhere. Hooks, some MCP setups, bundled scripts, and the differing underlying models all affect how reliably a skill behaves on another agent. A skill that is excellent in Claude Code can be merely good in Codex or OpenCode. This is why every skill in our collection carries a cross-agent compatibility note instead of a blanket claim. See the skills marketplace for the honest version.

Where to find good Claude Code skills

The official docs cover the mechanics, and there are huge open libraries if you want raw volume. What is harder to find is curation: which skills are actually worth installing, and where they shine. A few we use and have reviewed:

For the opinionated shortlist, see our best Claude Code skills roundup, or browse the full skills marketplace by role.

Frequently asked questions

Where do Claude Code skills live? In ~/.claude/skills/ for personal skills and a project's .claude/skills/ for shared, committed skills.

Are skills the same as slash commands? No. A command is a saved prompt you trigger. A skill is a packaged capability that can trigger automatically and bundle scripts and resources, though it can also be user-invoked like a command.

Do Claude Code skills work in Codex or OpenCode? Usually, because SKILL.md is an open format. Claude-specific features can degrade, so check each skill's compatibility note.

Do I need to code to use them? No. Using a skill is mostly placing a folder where Claude looks. Writing a strong one takes more care.


New to the whole idea? Start with what are Claude skills. Ready to install some? Browse the curated marketplace.