Skip to content
Founding Lifetime: every Pro skillfirst 100 members · $199 onceUpgrade
Lookbk
Sign In

Claude Code skills vs prompts, commands and plugins

What a skill is next to a prompt, a slash command, a subagent, a plugin, CLAUDE.md and a hook, with each definition taken from Anthropic’s Claude Code docs.

For
Claude Code users sorting out which extension to reach for
Written for
Claude Code
Time
8 min read · updated Oct 31, 2026

The short answer

A prompt is what you type once. A skill is a SKILL.md file Claude Code loads when it is relevant, or when you call /skill-name. Custom commands have been merged into skills. A subagent is a separate assistant with its own context window. A plugin packages skills, subagents, hooks and MCP servers as one unit. CLAUDE.md is context loaded every session. A hook is a command that runs every time its event happens.

Claude Code has several ways to give it instructions, and the names overlap. This page puts them side by side. The definitions come from Anthropic’s Claude Code docs, linked in each row and again at the foot of the page. For the idea of a skill on its own, read What are agent skills?. For the habits that make a set of them easier to live with, see Claude Code skills best practices.

The six, side by side

What each one is, in Anthropic’s words or close to them
TermWhat it isWhen it is in play
PromptThe message you type. Not a Claude Code feature, so the docs have no definition to quote.Once: you paste it again next time
Skill“Create a SKILL.md file with instructions, and Claude adds it to its toolkit.” Skills docs (opens in a new tab)When relevant, or when you call /skill-name. The body loads only when it is used
Slash command“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 /deploy. Skills docs (opens in a new tab)When you type /name. Existing .claude/commands/ files keep working
Subagent“Specialized AI assistants that handle specific types of tasks.” Each runs in its own context window with a custom system prompt, specific tool access and independent permissions. Subagents docs (opens in a new tab)When a task is handed to it, so the work happens apart from your main conversation
Plugin“A directory of skills, agents, hooks, MCP servers, or other components that Claude Code installs and loads as one unit.” Plugins docs (opens in a new tab)In every session while it is enabled. Its skills run as /plugin-name:skill-name
CLAUDE.mdInstructions you write to give Claude persistent context. Both CLAUDE.md files and auto memory are loaded at the start of every conversation, and Claude treats them as context, not enforced configuration. Memory docs (opens in a new tab)Every session
Hook“User-defined shell commands” that Claude Code runs at specific points in its lifecycle, giving “deterministic control: certain actions always happen rather than relying on the LLM to choose to run them.” Hooks guide (opens in a new tab)Every time its event occurs

Skill or prompt

A prompt is a description you type into the chat. A skill is a file Claude Code keeps. Anthropic’s skills page says to create one when you keep pasting the same instructions, checklist or multi-step procedure into chat. That is the whole test: if you have pasted it twice, it is a skill waiting to be written.

A skill can hold more than text. It is a folder, so it can carry scripts, templates and examples beside SKILL.md. What are agent skills? shows the layout.

Skill or slash command

You do not have to choose. The skills page says custom commands have been merged into skills: a command file and a skill folder of the same name both give you /name and work the same way. Skills add three things: a directory for supporting files, frontmatter that controls whether you or Claude invokes them, and the ability for Claude to load them automatically when relevant.

That frontmatter is where the old command behaviour lives. The docs say disable-model-invocation: true stops Claude loading a skill by itself, for workflows you want to trigger manually with /name. And user-invocable: false is for a skill only Claude should invoke.

Skill or subagent

A skill is instructions. A subagent is a worker: its own context window, system prompt, tools and permissions. They can meet. The skills page says setting context: fork in a skill runs it in a forked subagent context. A plugin can also ship subagent definitions that Claude can delegate to.

Skill or CLAUDE.md

Both are text Claude reads, and they differ in when. The memory page says CLAUDE.md is loaded at the start of every conversation. The skills page says a skill’s body loads only when it is used, so long reference material costs almost nothing until you need it. It suggests a skill when a section of CLAUDE.md has grown into a procedure rather than a fact. Facts that should always be in view go in CLAUDE.md. Procedures go in skills.

Skill or hook

This is the choice between asking and making. A skill is read by the model, which then decides what to do. A hook is a command Claude Code runs itself, so the action always happens. The memory page makes the same point from the other side: CLAUDE.md is context, not enforced configuration, and to block an action regardless of what Claude decides, use a PreToolUse hook. If a rule must hold every time, it belongs in a hook, not in a skill or in CLAUDE.md.

Skill or plugin

A plugin is not a rival to a skill. It is a way to carry one. The plugins page says skills, subagents, hooks and MCP servers all work on their own, and that a skill you save in ~/.claude/skills/ is available in every project on your machine. Use a plugin when you want several of them packaged as one unit, to share with teammates, install in many projects or publish versioned releases. One cost to know: an enabled plugin is part of every session, and for each of its skills that Claude can invoke on its own, the name and description sit in Claude’s context on every turn, while the full text loads only when used. Where skills live lists the folders.

A worked example: one hero, as a prompt and as a skill

Say you want an animated website hero. MotionSites sells prompts for this, to paste into an AI builder, and the result depends on the tool, the model and the run. A prompt you might type is:

As a prompt (an example we wrote)
Build a retro 1950s diner hero for my ordering app. A waitress on roller skates behind a big headline. Add a link bar, two buttons and a ticker.

You type that again next time, and each run can come out differently. Now the same job as a skill. Roller Diner Hero is a free skill whose SKILL.md header holds a name and a long description saying what it builds and when to use it. That description is what Claude Code matches your request against, and it names retro, diner, restaurant and hospitality heroes. The body then gives Claude the steps:

  1. Collect the words from you: a name, a short headline, two sentences, buttons, links and ticker lines. The skill says every number and claim must come from you.
  2. Write hero.json by copying the example and replacing every value.
  3. Build with node <skill>/scripts/build.mjs hero.json out, which lists every problem at once and writes nothing until they are fixed.
  4. Check with node <skill>/scripts/check.mjs out/index.html.

The footage, colours, fonts and layout stay as they are; you change the words and links. The design lives in the skill’s template, which is why the second run looks like the first, and the length limits are enforced by the build, not left to the model. The skill also writes a paste-in embed and a 1080p MP4 with sound, which a pasted prompt does not carry with it. Its limits are real too: it needs Node.js 18 or newer, Chrome, Chromium or Edge, and ffmpeg for the video.

Nothing about this needs a plugin or a hook. If you wanted the build to run every time you finished editing hero.json, that is the hook’s job. If you wanted to hand the skill to a team, a plugin or a committed .claude/skills/ folder does it.

Roller Diner Hero: an example of what it makes
Free
web
Roller Diner HeroClaude CodeCodexCursor+3 more agents
Cloud Sky Hero: an example of what it makes
web
Cloud Sky HeroClaude CodeCodexCursor+3 more agents
Cursor Tour Hero: an example of what it makes
web
Cursor Tour HeroClaude CodeCodexCursor+3 more agents

To judge descriptions like the one above, see Write a description that makes a skill trigger. To compare more hero skills, see the best hero animations for Claude Code.

Which one to reach for

You want to…Reach for
Try something onceA prompt
Stop pasting the same procedureA skill
Run a procedure only when you type /nameA skill with disable-model-invocation: true, or an old command file
Do a task apart from your main conversationA subagent
Keep a fact in view in every sessionCLAUDE.md
Make an action happen every timeA hook
Share several of these as one installA plugin

Common questions

Are slash commands and skills the same thing now?
In Claude Code, yes for the file format. Anthropic’s skills docs say custom commands have been merged into skills: .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy, and existing command files keep working.
Is a skill just a saved prompt?
It starts as one: instructions in a SKILL.md file. But a skill is a folder, so it can also carry scripts, templates and examples, and Claude Code can load it when your request matches its description.
Do I need a plugin to use a skill?
No. Anthropic’s plugins page says skills work on their own, and a skill in ~/.claude/skills/ is available in every project on your machine. A plugin is for packaging several extensions as one unit.
Should a rule go in CLAUDE.md or a hook?
If Claude should know it, CLAUDE.md. If it must always happen, a hook: the memory docs say CLAUDE.md is context, not enforced configuration, and point to a PreToolUse hook to block an action regardless of what Claude decides.

Sources

What this guide says about other companies’ tools comes from their own documentation, checked on Oct 31, 2026.

Did this guide help?

See a skill’s result before you install it.

Every skill page shows what it makes, what it needs and which agents can run it.