Subagents
Subagents
.claude/agents/*.md
Vendor docs
frontmatter
| name | type | required | meaning | concept | |
|---|---|---|---|---|---|
| background | string |
Set to `true` to keep this subagent in the background even when Claude asks to run it in the foreground. Where fork mode is on, Claude Code already runs the subagents Claude spawns in the background
|
docs ↗ | ||
| color | string |
Display color for the subagent in the task list and transcript. Accepts `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, or `cyan`
|
docs ↗ | ||
| description | string | yes |
When Claude should delegate to this subagent
|
docs ↗ | |
| disallowedTools | string |
Tools to deny, removed from inherited or specified list
|
docs ↗ | ||
| effort | string |
Effort level when this subagent is active. Overrides the session effort level. Default: inherits from session. Options: `low`, `medium`, `high`, `xhigh`, `max`; available levels depend on the model
|
docs ↗ | ||
| experimental | string |
Map of experimental options. Set its `cacheTtl` key to `5m` or `1h` to choose the prompt cache lifetime for this subagent's requests, at the frontmatter's place in the cache lifetime precedence. Claude Code ignores any other value, ignores `1h` while your Claude subscription is using usage credits, and reads the field only from subagent files. Requires Claude Code v2.1.248 or later
|
docs ↗ | ||
| hooks | string |
Lifecycle hooks scoped to this subagent. Ignored for plugin subagents
|
docs ↗ | ||
| initialPrompt | string |
Auto-submitted as the first user turn when this agent runs as the main session agent (via `--agent` or the `agent` setting). Commands and skills are processed. Prepended to any user-provided prompt
|
docs ↗ | ||
| isolation | string |
Set to `worktree` to run the subagent in a temporary git worktree, giving it an isolated copy of the repository branched by default from your default branch rather than the parent session's `HEAD`. The worktree is automatically cleaned up if the subagent makes no changes
|
docs ↗ | ||
| maxTurns | string |
Maximum number of agentic turns before the subagent stops. When the subagent reaches the limit, Claude Code returns its output marked as partial, and Claude can resume it to continue. The partial marking requires Claude Code v2.1.246 or later
|
docs ↗ | ||
| mcpServers | string |
MCP servers available to this subagent. Each entry is either a server name referencing an already-configured server (e.g., `"slack"`) or an inline definition with the server name as key and a full MCP server config as value. Ignored for plugin subagents
|
docs ↗ | ||
| memory | string |
Persistent memory scope: `user`, `project`, or `local`. Enables cross-session learning
|
docs ↗ | ||
| model | string |
Model to use: `sonnet`, `opus`, `haiku`, `fable`, a full model ID such as `claude-opus-5`, or `inherit`. When you omit it, Claude Code picks the model in the subagent model order
|
docs ↗ | ||
| name | string | yes |
Unique identifier using lowercase letters and hyphens. Hooks receive this value as `agent_type`. The filename doesn't have to match. Names can't contain `:`, which is reserved for plugin-scoped identifiers such as `my-plugin:reviewer`. Claude Code doesn't load a file whose name contains one and logs an error to the debug log. Before v2.1.218, such names were accepted
|
docs ↗ | |
| permissionMode | string |
Permission mode: `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, or `manual` as an alias for `default`. The `manual` alias requires Claude Code v2.1.200 or later. Ignored for plugin subagents
|
docs ↗ | ||
| skills | string |
Skills to preload into the subagent's context at startup. The full skill content is injected, not only the description. Subagents can still invoke unlisted project, user, and plugin skills through the Skill tool
|
docs ↗ | ||
| tools | string |
Tools the subagent can use. Inherits every tool available to subagents if omitted. If no entry in the list resolves to a tool, the subagent usually fails to launch with an error naming the entries. To preload Skills into context, use the `skills` field rather than listing `Skill` here
|
docs ↗ |