For how the core agentic loop works, see How Claude Code works.
Overview
Extensions plug into different parts of the agentic loop:- CLAUDE.md adds persistent context Claude sees every session
- Skills add reusable knowledge and invocable workflows
- MCP connects Claude to external services and tools
- Subagents run their own loops in isolated context, returning summaries
- Agent teams coordinate multiple independent sessions with shared tasks and peer-to-peer messaging
- Hooks run outside the loop entirely as deterministic scripts
- Plugins and marketplaces package and distribute these features
/deploy, or Claude can load them automatically when relevant. Skills can run in your current conversation or in an isolated context via subagents.
Match features to your goal
Features range from always-on context that Claude sees every session, to on-demand capabilities you or Claude can invoke, to background automation that runs on specific events. The table below shows what’s available and when each one makes sense.| Feature | What it does | When to use it | Example |
|---|---|---|---|
| CLAUDE.md | Persistent context loaded every conversation | Project conventions, “always do X” rules | ”Use pnpm, not npm. Run tests before committing.” |
| Skill | Instructions, knowledge, and workflows Claude can use | Reusable content, reference docs, repeatable tasks | /review runs your code review checklist; API docs skill with endpoint patterns |
| Subagent | Isolated execution context that returns summarized results | Context isolation, parallel tasks, specialized workers | Research task that reads many files but returns only key findings |
| Agent teams | Coordinate multiple independent Claude Code sessions | Parallel research, new feature development, debugging with competing hypotheses | Spawn reviewers to check security, performance, and tests simultaneously |
| MCP | Connect to external services | External data or actions | Query your database, post to Slack, control a browser |
| Hook | Deterministic script that runs on events | Predictable automation, no LLM involved | Run ESLint after every file edit |
/my-plugin:review) so multiple plugins can coexist. Use plugins when you want to reuse the same setup across multiple repositories or distribute to others via a marketplace.
Compare similar features
Some features can seem similar. Here’s how to tell them apart.- Skill vs Subagent
- CLAUDE.md vs Skill
- Subagent vs Agent team
- MCP vs Skill
Skills and subagents solve different problems:
Skills can be reference or action. Reference skills provide knowledge Claude uses throughout your session (like your API style guide). Action skills tell Claude to do something specific (like
- Skills are reusable content you can load into any context
- Subagents are isolated workers that run separately from your main conversation
| Aspect | Skill | Subagent |
|---|---|---|
| What it is | Reusable instructions, knowledge, or workflows | Isolated worker with its own context |
| Key benefit | Share content across contexts | Context isolation. Work happens separately, only summary returns |
| Best for | Reference material, invocable workflows | Tasks that read many files, parallel work, specialized workers |
/deploy that runs your deployment workflow).Use a subagent when you need context isolation or when your context window is getting full. The subagent might read dozens of files or run extensive searches, but your main conversation only receives a summary. Since subagent work doesn’t consume your main context, this is also useful when you don’t need the intermediate work to remain visible. Custom subagents can have their own instructions and can preload skills.They can combine. A subagent can preload specific skills (skills: field). A skill can run in isolated context using context: fork. See Skills for details.Understand how features layer
Features can be defined at multiple levels: user-wide, per-project, via plugins, or through managed policies. You can also nest CLAUDE.md files in subdirectories or place skills in specific packages of a monorepo. When the same feature exists at multiple levels, here’s how they layer:- CLAUDE.md files are additive: all levels contribute content to Claude’s context simultaneously. Files from your working directory and above load at launch; subdirectories load as you work in them. When instructions conflict, Claude uses judgment to reconcile them, with more specific instructions typically taking precedence. See how Claude looks up memories.
- Skills and subagents override by name: when the same name exists at multiple levels, one definition wins based on priority (managed > user > project for skills; managed > CLI flag > project > user > plugin for subagents). Plugin skills are namespaced to avoid conflicts. See skill discovery and subagent scope.
- MCP servers override by name: local > project > user. See MCP scope.
- Hooks merge: all registered hooks fire for their matching events regardless of source. See hooks.
Combine features
Each extension solves a different problem: CLAUDE.md handles always-on context, skills handle on-demand knowledge and workflows, MCP handles external connections, subagents handle isolation, and hooks handle automation. Real setups combine them based on your workflow. For example, you might use CLAUDE.md for project conventions, a skill for your deployment workflow, MCP to connect to your database, and a hook to run linting after every edit. Each feature handles what it’s best at.| Pattern | How it works | Example |
|---|---|---|
| Skill + MCP | MCP provides the connection; a skill teaches Claude how to use it well | MCP connects to your database, a skill documents your schema and query patterns |
| Skill + Subagent | A skill spawns subagents for parallel work | /review skill kicks off security, performance, and style subagents that work in isolated context |
| CLAUDE.md + Skills | CLAUDE.md holds always-on rules; skills hold reference material loaded on demand | CLAUDE.md says “follow our API conventions,” a skill contains the full API style guide |
| Hook + MCP | A hook triggers external actions through MCP | Post-edit hook sends a Slack notification when Claude modifies critical files |
Understand context costs
Every feature you add consumes some of Claude’s context. Too much can fill up your context window, but it can also add noise that makes Claude less effective; skills may not trigger correctly, or Claude may lose track of your conventions. Understanding these trade-offs helps you build an effective setup.Context cost by feature
Each feature has a different loading strategy and context cost:| Feature | When it loads | What loads | Context cost |
|---|---|---|---|
| CLAUDE.md | Session start | Full content | Every request |
| Skills | Session start + when used | Descriptions at start, full content when used | Low (descriptions every request)* |
| MCP servers | Session start | All tool definitions and schemas | Every request |
| Subagents | When spawned | Fresh context with specified skills | Isolated from main session |
| Hooks | On trigger | Nothing (runs externally) | Zero, unless hook returns additional context |
disable-model-invocation: true in a skill’s frontmatter to hide it from Claude entirely until you invoke it manually. This reduces context cost to zero for skills you only trigger yourself.
Understand how features load
Each feature loads at different points in your session. The tabs below explain when each one loads and what goes into context.- CLAUDE.md
- Skills
- MCP servers
- Subagents
- Hooks
When: Session startWhat loads: Full content of all CLAUDE.md files (managed, user, and project levels).Inheritance: Claude reads CLAUDE.md files from your working directory up to the root, and discovers nested ones in subdirectories as it accesses those files. See How Claude looks up memories for details.
Learn more
Each feature has its own guide with setup instructions, examples, and configuration options.CLAUDE.md
Store project context, conventions, and instructions
Skills
Give Claude domain expertise and reusable workflows
Subagents
Offload work to isolated context
Agent teams
Coordinate multiple sessions working in parallel
MCP
Connect Claude to external services
Hooks
Automate workflows with hooks
Plugins
Bundle and share feature sets
Marketplaces
Host and distribute plugin collections