Extend Claude Code changedfeatures-overview
Nearest release: v2.1.302, published 3 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 16 Oct 2026 20:20 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 18:37 UTC.
Upstream edited
Recorded here
Lines+241added
Lines−237removed
From line
4
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits19to this page, all time
The whole hunk
from line 4, old and new numbered
/
from line 4
44
55Claude Code combines a model that reasons about your code with [built-in tools](/docs/en/how-claude-code-works#tools) for file operations, search, execution, and web access. The built-in tools cover most coding tasks. This guide covers the extension layer: features you add to customize what Claude knows, connect it to external services, and automate workflows.
66
7<Note>
8 For how the core agentic loop works, see [How Claude Code works](/docs/en/how-claude-code-works).
9</Note>
7> [!NOTE]
8>
9> For how the core agentic loop works, see [How Claude Code works](/docs/en/how-claude-code-works).
1010
1111**New to Claude Code?** Start with [CLAUDE.md](/docs/en/memory) for project conventions, then add other extensions [as specific triggers come up](#build-your-setup-over-time).
1212
from line 68
6868
6969Some features can seem similar. For a deeper walkthrough of choosing between them, see [Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents](https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more) on the blog. Here's how to tell them apart.
7070
71<Tabs>
72 <Tab title="Skill vs Subagent">
73 Skills and subagents solve different problems:
71**Skill vs Subagent**
7472
75 * **Skills** are reusable content you can load into any context
76 * **Subagents** are isolated workers that run separately from your main conversation
73Skills and subagents solve different problems:
7774
78 | Aspect | Skill | Subagent |
79 | - | - | - |
80 | **What it is** | Reusable instructions, knowledge, or workflows | Isolated worker with its own context |
81 | **Key benefit** | Share content across contexts | Context isolation. Work happens separately, only summary returns |
82 | **[Context window](/docs/en/context-window) impact** | Adds to your main window | Uses a separate window with its own input and output tokens |
83 | **Best for** | Reference material, invocable workflows | Tasks that read many files, parallel work, specialized workers |
75* **Skills** are reusable content you can load into any context
76* **Subagents** are isolated workers that run separately from your main conversation
8477
85 **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 `/deploy` that runs your deployment workflow).
78| Aspect | Skill | Subagent |
79| - | - | - |
80| **What it is** | Reusable instructions, knowledge, or workflows | Isolated worker with its own context |
81| **Key benefit** | Share content across contexts | Context isolation. Work happens separately, only summary returns |
82| **[Context window](/docs/en/context-window) impact** | Adds to your main window | Uses a separate window with its own input and output tokens |
83| **Best for** | Reference material, invocable workflows | Tasks that read many files, parallel work, specialized workers |
8684
87 **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.
85**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 `/deploy` that runs your deployment workflow).
8886
89 **They can combine.** A subagent can preload specific skills (`skills:` field). A skill can run in isolated context using `context: fork`. See [Skills](/docs/en/skills) for details.
90 </Tab>
87**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.
9188
92 <Tab title="CLAUDE.md vs Skill">
93 Both store instructions, but they load differently and serve different purposes.
89**They can combine.** A subagent can preload specific skills (`skills:` field). A skill can run in isolated context using `context: fork`. See [Skills](/docs/en/skills) for details.
9490
95 | Aspect | CLAUDE.md | Skill |
96 | - | - | - |
97 | **Loads** | Every session, automatically | On demand |
98 | **Can include files** | Yes, with `@path` imports | Yes, with `@path` imports |
99 | **Can trigger workflows** | No | Yes, with `/<name>` |
100 | **Best for** | "Always do X" rules | Reference material, invocable workflows |
91**CLAUDE.md vs Skill**
10192
102 **Put it in CLAUDE.md** if Claude should always know it: coding conventions, build commands, project structure, "never do X" rules.
93Both store instructions, but they load differently and serve different purposes.
10394
104 **Put it in a skill** if it's reference material Claude needs sometimes (API docs, style guides) or a workflow you trigger with `/<name>` (deploy, review, release).
95| Aspect | CLAUDE.md | Skill |
96| - | - | - |
97| **Loads** | Every session, automatically | On demand |
98| **Can include files** | Yes, with `@path` imports | Yes, with `@path` imports |
99| **Can trigger workflows** | No | Yes, with `/<name>` |
100| **Best for** | "Always do X" rules | Reference material, invocable workflows |
105101
106 **Rule of thumb:** Keep CLAUDE.md under 200 lines. If it's growing, move reference content to skills or split into [`.claude/rules/`](/docs/en/memory#organize-rules-with-claude/rules/) files.
107 </Tab>
102**Put it in CLAUDE.md** if Claude should always know it: coding conventions, build commands, project structure, "never do X" rules.
108103
109 <Tab title="CLAUDE.md vs Output style">
110 Both give Claude standing instructions. CLAUDE.md carries what Claude should know, and an output style sets how Claude responds.
104**Put it in a skill** if it's reference material Claude needs sometimes (API docs, style guides) or a workflow you trigger with `/<name>` (deploy, review, release).
111105
112 | Aspect | CLAUDE.md | Output style |
113 | - | - | - |
114 | **Holds** | Facts and rules about your project | A role, tone, and response format |
115 | **Switching** | Always loaded | One active at a time; [switch styles](/docs/en/output-styles#change-your-output-style) whenever you want |
116 | **Best for** | Build commands, conventions, "never do X" rules | Shorter responses, explanations alongside code, a non-engineering role |
106**Rule of thumb:** Keep CLAUDE.md under 200 lines. If it's growing, move reference content to skills or split into [`.claude/rules/`](/docs/en/memory#organize-rules-with-claude/rules/) files.
117107
118 **Put it in CLAUDE.md** if it's true of the project whatever style you're in: coding conventions, build commands, project structure.
108**CLAUDE.md vs Output style**
119109
120 **Use an output style** if it's about the response itself and you might want it off again: length, format, how much Claude explains, or a different role such as a writing assistant. Claude Code includes [built-in styles](/docs/en/output-styles#built-in-output-styles), and you can write your own.
110Both give Claude standing instructions. CLAUDE.md carries what Claude should know, and an output style sets how Claude responds.
121111
122 **They combine.** CLAUDE.md stays loaded whichever style you pick. Claude follows both as instructions, so neither is enforced. For anything that has to happen every time, use a [hook](/docs/en/hooks-guide).
123 </Tab>
112| Aspect | CLAUDE.md | Output style |
113| - | - | - |
114| **Holds** | Facts and rules about your project | A role, tone, and response format |
115| **Switching** | Always loaded | One active at a time; [switch styles](/docs/en/output-styles#change-your-output-style) whenever you want |
116| **Best for** | Build commands, conventions, "never do X" rules | Shorter responses, explanations alongside code, a non-engineering role |
124117
125 <Tab title="CLAUDE.md vs Rules vs Skills">
126 All three store instructions, but they load differently:
118**Put it in CLAUDE.md** if it's true of the project whatever style you're in: coding conventions, build commands, project structure.
127119
128 | Aspect | CLAUDE.md | `.claude/rules/` | Skill |
129 | - | - | - | - |
130 | **Loads** | Every session | Every session, or when matching files are opened | On demand, when invoked or relevant |
131 | **Scope** | Whole project | Can be scoped to file paths | Task-specific |
132 | **Best for** | Core conventions and build commands | Language-specific or directory-specific guidelines | Reference material, repeatable workflows |
120**Use an output style** if it's about the response itself and you might want it off again: length, format, how much Claude explains, or a different role such as a writing assistant. Claude Code includes [built-in styles](/docs/en/output-styles#built-in-output-styles), and you can write your own.
133121
134 **Use CLAUDE.md** for instructions every session needs: build commands, test conventions, project architecture.
122**They combine.** CLAUDE.md stays loaded whichever style you pick. Claude follows both as instructions, so neither is enforced. For anything that has to happen every time, use a [hook](/docs/en/hooks-guide).
135123
136 **Use rules** to keep CLAUDE.md focused. Rules with [`paths` frontmatter](/docs/en/memory#path-specific-rules) only load when Claude works with matching files, saving context.
124**CLAUDE.md vs Rules vs Skills**
137125
138 **Use skills** for content Claude only needs sometimes, like API documentation or a deployment checklist you trigger with `/<name>`.
139 </Tab>
126All three store instructions, but they load differently:
140127
141 <Tab title="Subagent vs Dynamic workflow">
142 Both do work outside your main conversation. With subagents, Claude decides turn by turn what runs next. In a workflow, the script decides:
128| Aspect | CLAUDE.md | `.claude/rules/` | Skill |
129| - | - | - | - |
130| **Loads** | Every session | Every session, or when matching files are opened | On demand, when invoked or relevant |
131| **Scope** | Whole project | Can be scoped to file paths | Task-specific |
132| **Best for** | Core conventions and build commands | Language-specific or directory-specific guidelines | Reference material, repeatable workflows |
143133
144 * **Subagents** are workers Claude spawns, each returning a summary to the conversation that spawned it
145 * **[Dynamic workflows](/docs/en/workflows)** are scripts Claude writes that run many subagents in the background and return one result
134**Use CLAUDE.md** for instructions every session needs: build commands, test conventions, project architecture.
146135
147 **Use a subagent** when you need a quick, focused worker: research a question, verify a claim, review a file. The subagent does the work and returns a summary, so your main conversation stays clean. Subagents that Claude named when it spawned them can also [message each other](/docs/en/sub-agents#what-loads-at-startup).
136**Use rules** to keep CLAUDE.md focused. Rules with [`paths` frontmatter](/docs/en/memory#path-specific-rules) only load when Claude works with matching files, saving context.
148137
149 **Use a dynamic workflow** when a job [outgrows a handful of subagents](/docs/en/workflows#when-to-use-a-workflow), or when you want the findings cross-checked before you see them, such as a codebase-wide audit, a large migration, or a plan drafted from several angles. To start one, [ask for a workflow in your prompt](/docs/en/workflows#ask-for-a-workflow-in-your-prompt).
138**Use skills** for content Claude only needs sometimes, like API documentation or a deployment checklist you trigger with `/<name>`.
150139
151 **To pass a finding from one of your sessions to another**, ask the first session's Claude to send it. Claude delivers it with [cross-session messaging](/docs/en/cross-session-messaging). [Run agents in parallel](/docs/en/agents) compares the other ways to run more than one Claude at once, including sessions you hand off and check back on later.
152 </Tab>
140**Subagent vs Dynamic workflow**
153141
154 <Tab title="MCP vs Skill">
155 MCP connects Claude to external services. Skills extend what Claude knows, including how to use those services effectively.
142Both do work outside your main conversation. With subagents, Claude decides turn by turn what runs next. In a workflow, the script decides:
156143
157 | Aspect | MCP | Skill |
158 | - | - | - |
159 | **What it is** | Protocol for connecting to external services | Knowledge, workflows, and reference material |
160 | **Provides** | Tools and data access | Knowledge, workflows, reference material |
161 | **Examples** | Slack integration, database queries, browser control | Code review checklist, deploy workflow, API style guide |
144* **Subagents** are workers Claude spawns, each returning a summary to the conversation that spawned it
145* **[Dynamic workflows](/docs/en/workflows)** are scripts Claude writes that run many subagents in the background and return one result
162146
163 These solve different problems and work well together:
147**Use a subagent** when you need a quick, focused worker: research a question, verify a claim, review a file. The subagent does the work and returns a summary, so your main conversation stays clean. Subagents that Claude named when it spawned them can also [message each other](/docs/en/sub-agents#what-loads-at-startup).
164148
165 **MCP** gives Claude purpose-built tools for an external system, with the connection and authentication handled by the server.
149**Use a dynamic workflow** when a job [outgrows a handful of subagents](/docs/en/workflows#when-to-use-a-workflow), or when you want the findings cross-checked before you see them, such as a codebase-wide audit, a large migration, or a plan drafted from several angles. To start one, [ask for a workflow in your prompt](/docs/en/workflows#ask-for-a-workflow-in-your-prompt).
166150
167 **Skills** give Claude knowledge about how to use those tools effectively, plus workflows you can trigger with `/<name>`. A skill might include your team's database schema and query patterns, or a `/post-to-slack` workflow with your team's message formatting rules.
168 </Tab>
151**To pass a finding from one of your sessions to another**, ask the first session's Claude to send it. Claude delivers it with [cross-session messaging](/docs/en/cross-session-messaging). [Run agents in parallel](/docs/en/agents) compares the other ways to run more than one Claude at once, including sessions you hand off and check back on later.
169152
170 <Tab title="Hook vs Skill">
171 Claude Code runs a hook at a lifecycle event; it loads a skill into context for Claude to apply.
153**MCP vs Skill**
172154
173 | Aspect | Hook | Skill |
174 | - | - | - |
175 | **Runs** | A shell command, HTTP request, MCP tool call, LLM prompt, or subagent | Instructions Claude reads and follows |
176 | **Triggered by** | [Lifecycle events](/docs/en/hooks#hook-events) such as `PostToolUse` or `SessionStart` | You typing `/<name>`, or Claude matching the description to your task |
177 | **Determinism** | Fires on its event without Claude deciding | Claude interprets the instructions; outcome can vary |
178 | **Context cost** | Zero unless the hook returns output | Description loads each session; full content loads when used |
179 | **Best for** | Linting after edits, blocking unsafe commands, logging, notifications | Workflows that need reasoning, reference material, multi-step tasks |
155MCP connects Claude to external services. Skills extend what Claude knows, including how to use those services effectively.
180156
181 **Use a hook** when the action must happen the same way every time and doesn't need Claude to think. For example: format on save, reject `rm -rf /`, post a Slack message when a session ends.
157| Aspect | MCP | Skill |
158| - | - | - |
159| **What it is** | Protocol for connecting to external services | Knowledge, workflows, and reference material |
160| **Provides** | Tools and data access | Knowledge, workflows, reference material |
161| **Examples** | Slack integration, database queries, browser control | Code review checklist, deploy workflow, API style guide |
182162
183 **Use a skill** when Claude should decide how to apply the steps, or when the content is knowledge rather than a script. For example: a `/release` checklist, your API style guide, a debugging playbook.
163These solve different problems and work well together:
184164
185 **Put guardrails in hooks.** An instruction like "never edit `.env`" in CLAUDE.md or a skill is a request, not a guarantee. A `PreToolUse` hook that blocks the edit is enforcement. If a rule must hold every time, make it a hook rather than a prompt instruction.
165**MCP** gives Claude purpose-built tools for an external system, with the connection and authentication handled by the server.
186166
187 **Hook output lands in context.** A `PostToolUse` hook that runs your linter feeds results back as text Claude reads; a `/fix-lint` skill tells Claude how to resolve them.
188 </Tab>
189</Tabs>
167**Skills** give Claude knowledge about how to use those tools effectively, plus workflows you can trigger with `/<name>`. A skill might include your team's database schema and query patterns, or a `/post-to-slack` workflow with your team's message formatting rules.
190168
169**Hook vs Skill**
170
171Claude Code runs a hook at a lifecycle event; it loads a skill into context for Claude to apply.
172
173| Aspect | Hook | Skill |
174| - | - | - |
175| **Runs** | A shell command, HTTP request, MCP tool call, LLM prompt, or subagent | Instructions Claude reads and follows |
176| **Triggered by** | [Lifecycle events](/docs/en/hooks#hook-events) such as `PostToolUse` or `SessionStart` | You typing `/<name>`, or Claude matching the description to your task |
177| **Determinism** | Fires on its event without Claude deciding | Claude interprets the instructions; outcome can vary |
178| **Context cost** | Zero unless the hook returns output | Description loads each session; full content loads when used |
179| **Best for** | Linting after edits, blocking unsafe commands, logging, notifications | Workflows that need reasoning, reference material, multi-step tasks |
180
181**Use a hook** when the action must happen the same way every time and doesn't need Claude to think. For example: format on save, reject `rm -rf /`, post a Slack message when a session ends.
182
183**Use a skill** when Claude should decide how to apply the steps, or when the content is knowledge rather than a script. For example: a `/release` checklist, your API style guide, a debugging playbook.
184
185**Put guardrails in hooks.** An instruction like "never edit `.env`" in CLAUDE.md or a skill is a request, not a guarantee. A `PreToolUse` hook that blocks the edit is enforcement. If a rule must hold every time, make it a hook rather than a prompt instruction.
186
187**Hook output lands in context.** A `PostToolUse` hook that runs your linter feeds results back as text Claude reads; a `/fix-lint` skill tells Claude how to resolve them.
188
191189### Understand how features layer
192190
193191Features 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:
from line 232
234232
235233Each feature loads at different points in your session. The tabs below explain when each one loads and what goes into context.
236234
237<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=aab139e750494a237ae2e0c8f9139b0a" className="dark:hidden" alt="Context loading: CLAUDE.md loads at session start and stays in every request. MCP tool names load at start with full schemas deferred until use. Skills load descriptions at start, full content on invocation. Subagents get isolated context. Hooks run externally." width="720" height="382" data-path="images/context-loading.svg" />
235
238236
239<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/context-loading-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=b274089ef9612d9c760bca9838557626" className="hidden dark:block" alt="Context loading: CLAUDE.md loads at session start and stays in every request. MCP tool names load at start with full schemas deferred until use. Skills load descriptions at start, full content on invocation. Subagents get isolated context. Hooks run externally." width="720" height="382" data-path="images/context-loading-dark.svg" />
237**CLAUDE.md**
240238
241<Tabs>
242 <Tab title="CLAUDE.md">
243 **When:** Session start
239**When:** Session start
244240
245 **What loads:** Full content of all CLAUDE.md files (managed, user, and project levels).
241**What loads:** Full content of all CLAUDE.md files (managed, user, and project levels).
246242
247 **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.md files load](/docs/en/memory#how-claude-md-files-load) for details.
243**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.md files load](/docs/en/memory#how-claude-md-files-load) for details.
248244
249 <Tip>Keep CLAUDE.md under 200 lines. Move reference material to skills, which load on demand. To get [trim proposals for a checked-in CLAUDE.md](/docs/en/memory#my-claude-md-is-too-large), run `/doctor`.</Tip>
250 </Tab>
245> [!TIP]
246>
247> Keep CLAUDE.md under 200 lines. Move reference material to skills, which load on demand. To get [trim proposals for a checked-in CLAUDE.md](/docs/en/memory#my-claude-md-is-too-large), run `/doctor`.
251248
252 <Tab title="Skills">
253 Skills are extra capabilities in Claude's toolkit. They can be reference material (like an API style guide) or invocable workflows you trigger with `/<name>` (like `/deploy`). Claude Code includes [bundled skills](/docs/en/commands) like `/code-review`, `/batch`, and `/debug` that work without setup. You can also create your own.
249**Skills**
254250
255 **When:** Depends on the skill's configuration. By default, descriptions load at session start and full content loads when used. For user-only skills (`disable-model-invocation: true`), nothing loads until you invoke them.
251Skills are extra capabilities in Claude's toolkit. They can be reference material (like an API style guide) or invocable workflows you trigger with `/<name>` (like `/deploy`). Claude Code includes [bundled skills](/docs/en/commands) like `/code-review`, `/batch`, and `/debug` that work without setup. You can also create your own.
256252
257 **What loads:** For model-invocable skills, Claude sees names and descriptions in every request. When you invoke a skill with `/<name>` or Claude loads it automatically, the full content loads into your conversation.
253**When:** Depends on the skill's configuration. By default, descriptions load at session start and full content loads when used. For user-only skills (`disable-model-invocation: true`), nothing loads until you invoke them.
258254
259 **How Claude chooses skills:** Claude matches your task against skill descriptions to decide which are relevant. If descriptions are vague or overlap, Claude may load the wrong skill or miss one that would help. To tell Claude to use a specific skill, invoke it with `/<name>`.
255**What loads:** For model-invocable skills, Claude sees names and descriptions in every request. When you invoke a skill with `/<name>` or Claude loads it automatically, the full content loads into your conversation.
260256
261 **Context cost:** Low until used. User-only skills have zero cost until invoked.
257**How Claude chooses skills:** Claude matches your task against skill descriptions to decide which are relevant. If descriptions are vague or overlap, Claude may load the wrong skill or miss one that would help. To tell Claude to use a specific skill, invoke it with `/<name>`.
262258
263 **In subagents:** Skills work differently in subagents. Instead of on-demand loading, skills listed in the subagent's `skills` field are fully preloaded into its context at launch. Subagents can still discover and invoke unlisted project, user, and plugin skills through the Skill tool.
259**Context cost:** Low until used. User-only skills have zero cost until invoked.
264260
265 <Tip>Use `disable-model-invocation: true` for skills with side effects. This saves context and ensures they run only when you name them.</Tip>
266 </Tab>
261**In subagents:** Skills work differently in subagents. Instead of on-demand loading, skills listed in the subagent's `skills` field are fully preloaded into its context at launch. Subagents can still discover and invoke unlisted project, user, and plugin skills through the Skill tool.
267262
268 <Tab title="MCP servers">
269 **When:** Session start.
263> [!TIP]
264>
265> Use `disable-model-invocation: true` for skills with side effects. This saves context and ensures they run only when you name them.
270266
271 **What loads:** Tool names and server instructions from connected servers. Full JSON schemas stay deferred until Claude needs a specific tool.
267**MCP servers**
272268
273 **Context cost:** [Tool search](/docs/en/mcp#scale-with-mcp-tool-search) is on by default, so idle MCP tools consume minimal context.
269**When:** Session start.
274270
275 <Tip>Run `/mcp` to see each server's connection status. Run `/context all` to see how many tokens each loaded MCP tool uses. Claude Code [reconnects to remote servers automatically](/docs/en/mcp#automatic-reconnection) if they drop, and you can disconnect servers you're not actively using.</Tip>
276 </Tab>
271**What loads:** Tool names and server instructions from connected servers. Full JSON schemas stay deferred until Claude needs a specific tool.
277272
278 <Tab title="Code intelligence">
279 **When:** After file edits, and on demand when Claude navigates code.
273**Context cost:** [Tool search](/docs/en/mcp#scale-with-mcp-tool-search) is on by default, so idle MCP tools consume minimal context.
280274
281 **What loads:** Type errors and warnings after each file edit. Definition, reference, and type information when Claude looks up a symbol.
275> [!TIP]
276>
277> Run `/mcp` to see each server's connection status. Run `/context all` to see how many tokens each loaded MCP tool uses. Claude Code [reconnects to remote servers automatically](/docs/en/mcp#automatic-reconnection) if they drop, and you can disconnect servers you're not actively using.
282278
283 **Context cost:** Low. Symbol lookups often replace broad file reads, so net context use can go down.
279**Code intelligence**
284280
285 <Tip>The LSP tool is inactive until you install a [code intelligence plugin](/docs/en/plugins/code-intelligence) for your language.</Tip>
286 </Tab>
281**When:** After file edits, and on demand when Claude navigates code.
287282
288 <Tab title="Subagents">
289 **When:** On demand, when you or Claude spawns one for a task.
283**What loads:** Type errors and warnings after each file edit. Definition, reference, and type information when Claude looks up a symbol.
290284
291 **What loads:** Fresh, isolated context containing:
285**Context cost:** Low. Symbol lookups often replace broad file reads, so net context use can go down.
292286
293 * The agent's own system prompt, not the Claude Code system prompt
294 * Full content of skills listed in the agent's `skills:` field
295 * CLAUDE.md and git status. The built-in Explore and Plan agents [start with neither](/docs/en/sub-agents#what-loads-at-startup), and an agent whose definition sets [`omitClaudeMd`](/docs/en/sub-agents#supported-frontmatter-fields) starts without the user, project, and local CLAUDE.md files.
296 * Whatever context the lead agent passes in the prompt
287> [!TIP]
288>
289> The LSP tool is inactive until you install a [code intelligence plugin](/docs/en/plugins/code-intelligence) for your language.
297290
298 For a [fork](/docs/en/sub-agents#fork-the-current-conversation), Claude Code loads the parent's conversation so far, system prompt, and tools instead.
291**Subagents**
299292
300 **Context cost:** Isolated from main session.
293**When:** On demand, when you or Claude spawns one for a task.
301294
302 <Tip>Use subagents for work that doesn't need your full conversation context. Their isolation prevents bloating your main session.</Tip>
303 </Tab>
295**What loads:** Fresh, isolated context containing:
304296
305 <Tab title="Hooks">
306 **When:** On trigger. Claude Code runs hooks at specific lifecycle events like tool execution, session boundaries, prompt submission, permission requests, and compaction. See [Hooks](/docs/en/hooks) for the full list.
297* The agent's own system prompt, not the Claude Code system prompt
298* Full content of skills listed in the agent's `skills:` field
299* CLAUDE.md and git status. The built-in Explore and Plan agents [start with neither](/docs/en/sub-agents#what-loads-at-startup), and an agent whose definition sets [`omitClaudeMd`](/docs/en/sub-agents#supported-frontmatter-fields) starts without the user, project, and local CLAUDE.md files.
300* Whatever context the lead agent passes in the prompt
307301
308 **What loads:** Nothing by default. Hooks execute outside the main conversation.
302For a [fork](/docs/en/sub-agents#fork-the-current-conversation), Claude Code loads the parent's conversation so far, system prompt, and tools instead.
309303
310 **Context cost:** Zero, unless the hook returns output that gets added as messages to your conversation.
304**Context cost:** Isolated from main session.
311305
312 <Tip>Hooks are ideal for side effects (linting, logging) that don't need to affect Claude's context.</Tip>
313 </Tab>
314</Tabs>
306> [!TIP]
307>
308> Use subagents for work that doesn't need your full conversation context. Their isolation prevents bloating your main session.
315309
310**Hooks**
311
312**When:** On trigger. Claude Code runs hooks at specific lifecycle events like tool execution, session boundaries, prompt submission, permission requests, and compaction. See [Hooks](/docs/en/hooks) for the full list.
313
314**What loads:** Nothing by default. Hooks execute outside the main conversation.
315
316**Context cost:** Zero, unless the hook returns output that gets added as messages to your conversation.
317
318> [!TIP]
319>
320> Hooks are ideal for side effects (linting, logging) that don't need to affect Claude's context.
321
316322## Learn more
317323
318324Each feature has its own guide with setup instructions, examples, and configuration options.
319325
320<CardGroup cols={2}>
321 <Card title="CLAUDE.md" icon="file-lines" href="/docs/en/memory">
322 Store project context, conventions, and instructions
323 </Card>
326> **[CLAUDE.md](/docs/en/memory)**
327>
328> Store project context, conventions, and instructions
324329
325 <Card title="Skills" icon="brain" href="/docs/en/skills">
326 Give Claude domain expertise and reusable workflows
327 </Card>
330> **[Skills](/docs/en/skills)**
331>
332> Give Claude domain expertise and reusable workflows
328333
329 <Card title="Subagents" icon="users" href="/docs/en/sub-agents">
330 Offload work to isolated context
331 </Card>
334> **[Subagents](/docs/en/sub-agents)**
335>
336> Offload work to isolated context
332337
333 <Card title="Dynamic workflows" icon="network" href="/docs/en/workflows">
334 Run many subagents from one script
335 </Card>
338> **[Dynamic workflows](/docs/en/workflows)**
339>
340> Run many subagents from one script
336341
337 <Card title="Cross-session messaging" icon="terminal" href="/docs/en/cross-session-messaging">
338 Let Claude message your other sessions
339 </Card>
342> **[Cross-session messaging](/docs/en/cross-session-messaging)**
343>
344> Let Claude message your other sessions
340345
341 <Card title="MCP" icon="plug" href="/docs/en/mcp">
342 Connect Claude to external services
343 </Card>
346> **[MCP](/docs/en/mcp)**
347>
348> Connect Claude to external services
344349
345 <Card title="Hooks" icon="bolt" href="/docs/en/hooks-guide">
346 Automate actions with hooks
347 </Card>
350> **[Hooks](/docs/en/hooks-guide)**
351>
352> Automate actions with hooks
348353
349 <Card title="Plugins" icon="puzzle-piece" href="/docs/en/plugins/overview">
350 Bundle and share feature sets
351 </Card>
354> **[Plugins](/docs/en/plugins/overview)**
355>
356> Bundle and share feature sets
352357
353 <Card title="Marketplaces" icon="store" href="/docs/en/plugins/create-marketplace">
354 Host and distribute plugin collections
355 </Card>
356</CardGroup>
358> **[Marketplaces](/docs/en/plugins/create-marketplace)**
359>
360> Host and distribute plugin collections
357361
No line in this hunk matches that.