Paths Subjects Questions Quizzes Pricing Search

Skills, Slash Commands & Plugins

Packaging repeatable Claude Code workflows for yourself and your team

Overview Read

Skills, Slash Commands & Plugins

The first time you type the same multi-step instruction into Claude Code for the third session in a row, you've found the gap this subject fills. Claude Code gives you four different mechanisms for turning "the thing I keep explaining" into "the thing that's already there": a built-in command, a custom skill, a hook, or a CLAUDE.md instruction. Picking the wrong one is the single most common source of "I set this up and it's not working the way I expected" — a skill you meant Claude to invoke automatically that never fires, a workflow with side effects that you accidentally let Claude trigger on its own, or team knowledge that only lives on one engineer's laptop.

This subject covers skills (which, as of recent Claude Code versions, is the umbrella mechanism that also encompasses what used to be called "custom slash commands"), the built-in commands worth knowing, and plugins — the packaging format that bundles skills, agents, hooks, and MCP servers into something a whole team or the public can install with one command. Hooks themselves — their JSON contract, lifecycle events, and exit-code semantics — are covered in depth in the Settings, Permissions & Hooks subject; this subject treats them only as one entry in the decision table at the end. Subagents and MCP servers, the other two things a plugin can bundle, are covered in the MCP and Subagents subject.

Two more mechanisms sit right at the edges of this subject and are worth placing correctly even though this subject doesn't own them in depth: dynamic workflows, which can also be saved and invoked as a /name command indistinguishable from a skill at the point you type it, and output styles, which look like they compete with skills for "customize how Claude behaves" but actually operate on a completely different axis (the system prompt, not a packaged procedure). Both get a row in the decision table below and a pointer to where they're covered in full — dynamic workflows in the Claude Code Workflows & Agent Teams subject, output styles in the Claude Code Platforms & Interfaces subject.


An Important Terminology Shift: Commands Merged Into Skills

If you've read about Claude Code before, you may have learned "custom slash commands live in .claude/commands/ as markdown files." That's still true and still works — but it's now considered the older, simpler form of a broader mechanism. Custom commands have been merged into skills. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create a /deploy command and behave the same way for that basic case. The skill form adds capabilities the plain command form doesn't have: a directory for supporting files (templates, scripts, reference docs), frontmatter that controls whether you or Claude is allowed to invoke it, and the ability for Claude to load it automatically based on its description rather than requiring you to type the slash command.

If a skill and a command file share the same name, the skill wins. Anthropic's own guidance is to use the skill form for anything new; the command form still works for backward compatibility, and everything below about frontmatter, arguments, and invocation applies to both — a .claude/commands/*.md file supports the same frontmatter fields as a skill, except name and paths.


Pro content

Sign up free, then start a 14-day Pro trial — no card needed.

We use cookies for product analytics to improve OmniAtlas. See our Privacy Policy.