{"version":"2.1.275","anchor":"subagent-concurrency-cap-enforced-by-default-with-a-kill-sw","canonical_anchor":"subagent-concurrency-cap-enforced-by-default-with-a-kill-sw","heading":"Subagent concurrency cap simplified to one env-configurable limit","tier":"use","area":"Subagents","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275\/e\/subagent-concurrency-cap-enforced-by-default-with-a-kill-sw","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275","markdown":"### Subagent concurrency cap simplified to one env-configurable limit\n\nSubagent spawning is now limited only by a single concurrency cap, configurable via CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS\n\n**What** Subagent spawning previously refused once a subagent hit both a fixed lifetime total and a fixed concurrent-run cap. Now only the concurrent-run limit remains, defaulting to 20 and overridable with the `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` environment variable. When the cap is reached, a new subagent launch is refused with a message telling the user to raise `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`, and the refusal is recorded as a `subagent_concurrency_cap` event.\n\n**Why** Dropping the separate lifetime-total cap means subagents are no longer blocked just because many have run in sequence over a long session; only how many are running at once matters now, and that limit can be tuned per environment.\n\n- Flag `tengu_amber_kestrel`: Not enough to say (read for one account on one subscription tier against v2.1.275; this account: no value returned, anonymous baseline: no value returned, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Subagents\n- Names: `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 2\/5"}