Claude Code 2.1.219 and 2.1.220: Opus 5 becomes the default, subagent nesting makes a comeback
2.1.219 makes Opus 5 the new default Opus model, brings back subagent nesting up to three levels deep just three days after turning it off, and adds a real network lock for sandboxed commands. 2.1.220 is a maintenance release only. Here's what matters.
Claude Code 2.1.219 shipped on July 24, followed the next day by 2.1.220. The first release changes three habits you’ve probably built up; the second is a maintenance-only drop. Here’s what matters.
Opus 5 becomes the default Opus model
Claude Opus 5 (claude-opus-5) lands and becomes the default Opus model. 1M context, fast mode priced at $10/$50 per million tokens.
Two side effects worth knowing:
- Opus 4.7 drops out of fast mode.
/fastnow only applies to Opus 5 and Opus 4.8. If you were switching to Opus 4.7 for fast mode, that shortcut is gone. - The
/modelpicker now groups Opus 5 and Opus 4.8 under a single “Opus (1M context)” row, highlighting only the newest model’s name. A related fix also cleans up a stale-cache bug that was showing “Requires usage credits” on plans that actually include Opus.
Subagent nesting is back, three days after being switched off
This is the most surprising change in the batch, and it directly concerns anyone who read up on 2.1.217: that release turned off, by default, a subagent’s ability to spawn its own subagents, specifically to prevent runaway cascades.
2.1.219 walks that back: by default, a subagent can now nest up to three levels of subagents (up from one, meaning no nesting at all before). To get 2.1.217’s locked-down behavior back, set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 explicitly.
If you adjusted scripts or configuration to work around the old default, or were relying on it as a safety rail, check that variable after updating. The 20-concurrent-subagent cap introduced in 2.1.217 is unchanged.
Security: a real network lock for sandboxed commands
New sandbox.network.strictAllowlist setting: it silently denies non-allowlisted hosts for commands run in a sandbox, with no confirmation prompt. Useful if you automate sandboxed commands headlessly, where a permission prompt would just stall the run.
In the same vein, ${VAR} resolution in enterprise-level MCP allowlist/denylist entries now reads from the startup environment and managed-settings environment variables, instead of the environment defined in settings files. That closes a path where a variable set in a local settings file could have influenced an allowlist meant to be controlled at the organization level.
What changes your day-to-day
- New
DirectoryAddedhook: fires after/add-dir, or after the SDK registers a new working directory mid-session. Useful for reacting automatically to a newly added folder instead of discovering it after the fact. - Dynamic workflows now default to a “medium” size guideline: aim for fewer than 15 agents, adjustable via the new
workflowSizeGuidelinesetting or from/config. The current guideline now shows in the status line while a workflow is running. claude mcp listand/mcpshow the HTTP status and error text when an MCP server fails to connect, plus a warning when a config value has hidden leading or trailing whitespace.claude --teleportnow tells you which repo your current checkout points at when it doesn’t match the session’s repo.- Nested subagent output now visible in stream-json: with
--forward-subagent-text, subagents spawned at depth 2 and beyond now show up in the stream, keyed by the Agent tool-use id that spawned them. A direct consequence of nesting being back.
Everything else worth knowing
claude -pno longer drops the text answer already produced when a turn dies on a mid-stream API error.- Copy-on-select inside GNU screen no longer prints raw base64 into the terminal instead of copying the selection.
- Remote Control no longer keeps a stale fast-mode status after a model switch, a reconnect, or a failed org check.
CLAUDE_CODE_GIT_BASH_PATHon Windows is no longer forced into use as bash when the path doesn’t point to an actual bash/sh binary: it now shows a warning and gets ignored instead.- Vim mode: pressing left arrow on an empty prompt returns to the agent view from NORMAL mode, not just from INSERT.
- Screen-reader mode: only the typed character gets announced now, instead of rewriting the whole line on every keystroke.
- The “Remote Control is only available via api.anthropic.com” error now names the specific setting causing it.
What about 2.1.220?
Nothing to report. The official changelog lists a generic “bug fixes and reliability improvements,” with no further detail. No behavior change to watch for in this one.
Should you update
Yes, but check your subagent nesting configuration if you built anything around 2.1.217’s default: the behavior just flipped back the other way. For Opus 5, the switch is automatic if you’re already on default Opus, the only thing that disappears is fast mode on Opus 4.7. Nothing else here is worth holding off for.
Source: official Claude Code changelog.
Pierre Rondeau
Developer and indie builder. I build products and automations with AI. Creator of Claude Hub.
LinkedIn