CLAUDE_CODE_FORK_SUBAGENT
Updated by Alex Sorokoletov
CLAUDE_CODE_FORK_SUBAGENT is a Claude Code environment variable: Changelog-confirmed[1]: set to 1 to run subagents as forked processes (v2.1.117 on external builds, v2.1.121 extended to non-interactive SDK/-p sessions). Forked subagents get true process isolation and independent resource limits instead of in-process coroutines. Added between v2.1.114 and v2.1.117 and still present in v2.1.294. It is listed in the official reference.
| Status | Present in v2.1.294 |
|---|---|
| Added | Added between v2.1.114 and v2.1.117 |
| Category | Agents and subagents |
| Official docs | Listed |
How to set it
For one session, export it in the shell that starts Claude Code:
export CLAUDE_CODE_FORK_SUBAGENT=<value>
claudeTo apply it to every session, add it to the env object of a settings file:
// ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_FORK_SUBAGENT": "<value>"
}
}Release notes that mention it
- Claude Code v2.1.123 — Background Daemons, Agent Fleets, and CoWork Memory
- Claude Code v2.1.118 — 10 New Environment Variables: Forked Subagents Ship, Subscription Tiering Takes Shape
- Claude Code Version Tracker: Undocumented Env Vars, Feature Gates & Models
Related variables
CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT: Authorizes SDK callers to append a custom string to a subagent's system prompt via options.appendSubagentSystemPrompt.CLAUDE_CODE_FORWARD_SUBAGENT_TEXT: Includes subagent text and thinking in stream-json output, paired with a new --forward-subagent-text flag.CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH: Nesting-depth cap on delegation, default 1 — subagents no longer spawn their own subagents, and the team roster stays flat.CLAUDE_CODE_SUBAGENT_MODEL: Force a specific model for sub-agent operations.CLAUDE_CODE_SUBAGENT_MODEL_FORCECLAUDE_CODE_SUBAGENT_MODELU: The trailing-U variant flagged as a likely typo in v2.1.84 has been removed.CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTLCLAUDE_SUBAGENT_BG_SHELL_MAX_MS: Time cap for shell commands run by background subagents.
Frequently asked questions
What does CLAUDE_CODE_FORK_SUBAGENT do?
Changelog-confirmed[1]: set to 1 to run subagents as forked processes (v2.1.117 on external builds, v2.1.121 extended to non-interactive SDK/-p sessions). Forked subagents get true process isolation and independent resource limits instead of in-process coroutines.
Which Claude Code version has CLAUDE_CODE_FORK_SUBAGENT?
Added between v2.1.114 and v2.1.117 and still present in v2.1.294.
How do I set CLAUDE_CODE_FORK_SUBAGENT?
Export it before starting Claude Code (export CLAUDE_CODE_FORK_SUBAGENT=value), or add it to the "env" object in ~/.claude/settings.json to apply it to every session.
All variables, searchable: Claude Code environment variables.