Skip to content

Ways to extend Claude Code

Extensions plug into different parts of the agentic loop. Each solves a different problem:

Feature What it does When to use it
CLAUDE.md Persistent context loaded every conversation Project conventions, “always do X” rules
Skill Instructions, knowledge, workflows Claude can use Reusable content, repeatable tasks
Subagent Isolated execution context, returns summaries Context isolation, parallel tasks
MCP Connect to external services External data or actions
Hook Script/prompt triggered by lifecycle events Automation that must run on every matching event
Plugin Packages the above into one installable unit Reuse a setup across repos, distribute to others

What loads into context and when, per feature

Context cost by feature — CLAUDE.md loads in full every request; skills, MCP, subagents, and hooks defer.

Build your setup over time. You don't configure everything up front — each feature has a recognizable trigger: Claude gets a convention wrong twice → CLAUDE.md. You keep typing the same prompt → skill. You keep copying data from a browser tab → MCP. A side task floods your conversation → subagent. Something must happen every time → hook. A second repo needs the same setup → plugin.

Question 1A side task keeps flooding your conversation with output you won't reference again. Add a…

Question 2A rule must hold every single time, no exceptions. Use a…

Question 3Which feature is the packaging layer for the others?