cd /news/ai-agents/claude-code-skills-vs-agents-vs-comm… · home › topics › ai-agents › article
[ARTICLE · art-146402] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Claude Code skills vs agents vs commands vs plugins vs MCP

A developer published a reference guide distinguishing the six ways to extend Claude Code — skills, subagents, slash commands, hooks, plugins, and MCP servers — with a decision table mapping each to its file location, trigger, and use case. The guide notes that recent Claude Code versions now treat commands and skills as one mechanism, and recommends using a skill for repeatable methods, a subagent for work needing its own context window, and a hook for actions that must run every time regardless of Claude's decisions.

by read5 min views5 publishedOct 6, 2026

Claude Code can be extended six ways, and they overlap enough that people pick the wrong one. This page gives each a one-line definition, the file it lives in, when to use it, and a decision table. The short version: a skill is a method, a subagent is a separate worker, a command is a shortcut you type, a plugin is a package, a hook is an automatic reaction, and an MCP server is a connection.

Extension Lives in Who triggers it Use it for
Skill .claude/skills/<name>/SKILL.md Claude, when the task matches; or you by /name A repeatable method with reference files and scripts
Slash command .claude/commands/<name>.md You, by typing /name A prompt you run on demand (now handled as a skill)
Subagent .claude/agents/<name>.md Claude delegates, or you ask Work that needs its own context window, tools or model
Hook settings.json or a plugin'shooks.json An event (before a tool, after edit) Formatting, linting, guardrails that must always run
Plugin A folder with .claude-plugin/plugin.json /plugin install Shipping skills, commands, agents, hooks and MCP servers together
MCP server .mcp.json orclaude mcp add Claude, through tools Reaching GitHub, a browser, a database, a design file, SkillGild
CLAUDE.md Project or home directory Always loaded Rules and context that apply to every conversation

A skill is a folder with SKILL.md: frontmatter with a name and a description, then instructions, with optional scripts/, references/ and assets/. Claude reads descriptions at startup and loads a skill's body only when a request matches, so a skill can be large without a context cost until it is used.

Use a skill when you are describing how to do something that recurs: produce a figure, review a pull request against a rubric, write a launch video from a repository, humanise a draft. Skills are portable: the same folder works in Codex, Cursor and Gemini CLI. Write one with how to create a Claude skill. Find ones people already use on the Claude Code skills page.

A command was a Markdown prompt in .claude/commands/ that ran when you typed /name. Recent Claude Code versions treat commands and skills as one thing: a skill can be invoked as /name, and a command file is loaded as a skill. If you have old command files they still work.

The remaining distinction is intent. Mark a skill disable-model-invocation: true when it should only run when a person asks, for example anything that deploys, sends or deletes. Leave it off when Claude should pick the skill up on its own.

A subagent is a Markdown file in .claude/agents/ with a name, a description, optional tools and model fields, and a system prompt. When Claude delegates to it, the subagent works in its own context window and returns a summary.

Use one when the work would flood the main conversation (reading a large codebase, running a long test matrix), when it needs a different tool set (read-only reviewer), or when a cheaper or stronger model suits the step. Do not use a subagent to hold a method; put the method in a skill and let any agent, main or sub, load it. Skills and subagents combine: a skill can tell Claude to hand a step to a named subagent, and a subagent can have skills of its own.

A hook runs a shell command on an event: before or after a tool call, when a session starts, when Claude stops. Typical hooks format files after every edit, block edits to protected paths, or run tests before a commit.

Use a hook when something must happen every time regardless of what Claude decides. A skill asks; a hook enforces. A plugin packages any of the above with a manifest so they install together from a marketplace: /plugin marketplace add owner/repo, then /plugin install name@marketplace. A plugin is a delivery mechanism, not a new kind of behaviour. If you only have one skill, a plugin adds ceremony; if you have a set with a command, an agent and an MCP server, a plugin is the right unit.

Details and the manifest format are in Claude Code plugins. The Model Context Protocol connects Claude to tools and data: GitHub, a browser, Postgres, Figma, Notion, Sentry. A server exposes tools Claude can call; it does not tell Claude how to do a job. That is what a skill is for, and the two are often paired: a skill describes a QA method and the Playwright MCP server supplies the browser.

SkillGild's hosted skills use this pairing. The SkillGild MCP server exposes search, run and session tools; a hosted skill's wrapper tells Claude how to use them, and protected steps run on the server. Community skills on SkillGild are plain folders and do not need the server at all. Agent skills vs MCP servers covers the difference in depth, and the best MCP servers for Claude Code lists the ones worth adding.

CLAUDE.md is memory: project conventions, commands, things Claude should always know. It is loaded into every conversation, so keep it short. Anything that only applies to some tasks belongs in a skill, where it costs nothing until it is used.

CLAUDE.md. disable-model-invocation: true if only a person should start it.skillgild install <slug> or a copied folder is simpler for the person installing it. Originally published at skillgild.dev.

── more in #ai-agents 4 stories · sorted by recency
── more on @claude code 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/claude-code-skills-v…] indexed:0 read:5min 2026-10-06 · —