CLAUDE_CODE_SUBAGENT_MODEL Stopped Overriding Anything
2.1.251 quietly demoted the one environment variable teams used to pin subagent spend. It is now the weakest input to model choice — and every agent file in your repo outranks it.
NeuroX AI · August 31, 2026

One line in the Claude Code 2.1.251 changelog inverts a control a lot of teams are quietly relying on: CLAUDE_CODE_SUBAGENT_MODEL now "sets the default subagent model rather than override everything." An agent definition's model: and an explicit per-spawn model both take precedence over it.
Price the gap before deciding whether you care. Opus 5 runs $5 per million input tokens against Haiku 4.5's $1 — 5× on input, and 5× on output too. If you exported that variable to hold a fleet of parallel subagents on the cheap model, the ceiling just became a floor.
Nothing errors when this flips. The variable is still set, /status still shows it, and every .claude/agents/*.md file carrying a model: line — yours, a teammate's, one that arrived with a plugin — now silently wins. You find out on the invoice.
Same release, same direction: the default model for seat-based Enterprise subscriptions changed to Opus 5. And forks ignore the whole chain — a subagent_type: "fork" inherits the parent's model no matter what any of the three inputs say.
The fix is not a different env var. Model choice belongs in the agent definitions, where it is reviewable in a diff. A cost control that lives in one engineer's shell profile was never a policy.