Claude Code v2.1.219 Major Updates - Introduction of Claude Opus 5, same price as Opus 4.8, also offering 2.5x Fast Mode

Claude Code v2.1.219 Major Updates - Introduction of Claude Opus 5, same price as Opus 4.8, also offering 2.5x Fast Mode

Claude Code v2.1.219 has been released. While the addition of the new model "Claude Opus 5" is the headline feature, in practical use the changes to the surrounding environment, such as sandbox settings and default value changes for sub-agents, may have a greater impact. I checked the update contents and actual behavior.
2026.07.25

This page has been translated by machine translation. View original

This is Ishikawa from the Cloud Business Division. Claude Code v2.1.219 (released 2026-07-24) has been released. While this version adds new models, I feel that in practice, the changes to surrounding configurations and default values may have a greater impact.

The previous update article is here.

https://dev.classmethod.jp/articles/20260723-cc-updates-v2-1-218/

Update Summary

v2.1.219 includes 27 changes. The breakdown is 7 new features, 10 fixes, 6 improvements to error display and logging, 2 breaking changes, 1 security setting addition, and 1 skill update. The main focus is on model additions and a review of agent execution defaults, with the remainder consisting of minor adjustments to MCP, self-hosted runners, and terminal display.

Today's Announcement: Claude Opus 5

Opus 5 is now available today on all paid plans and the Claude API. It is priced the same as Opus 4.8. It is the default model for Claude Max and the most powerful model available in Claude Pro. It is also available in Fast mode, operating at approximately 2.5x the default speed.

https://www.anthropic.com/news/claude-opus-5

20260725-cc-updates-v2-1-219-1

Positioning & Pricing

A model that delivers performance approaching Fable 5 at half the price. The new default for Claude Max and the top-tier model in Claude Pro. Pricing is $5 per 1M input tokens and $25 per 1M output tokens, unchanged from Opus 4.8. A Fast mode running at 2.5x normal speed is also available (at 2x the base price).

20260725-cc-updates-v2-1-219-2

Performance

20260725-cc-updates-v2-1-219-3

  • Top scores on coding and knowledge work benchmarks (Frontier-Bench, GDPval-AA, etc.). On Frontier-Bench, achieves more than 2x the score of Opus 4.8 at lower cost.
  • Approximately 3x the pass rate of the next-best model on ARC-AGI 3, and approximately 1.5x on Zapier AutomationBench. On OSWorld 2.0, surpasses Fable 5's top score at just over 1/3 of the cost.
  • The effort setting allows adjustment of the cost-intelligence tradeoff.
  • Outperforms Opus 4.8 on all life science evaluations, with particularly large gains in organic chemistry (+10.2pt) and protein-related tasks (+7.7pt).

Behavioral Characteristics

Iterative persistence while verifying its own work has been strengthened. Examples cited include writing its own image processing pipeline to reconstruct a 3D model without being able to directly view drawings, and self-building a test harness without having real validation data available.

Alignment and Safety

Rated as "the most aligned model to date" by automated behavioral auditing (misalignment score 2.3). Has not advanced the frontier in dangerous dual-use capabilities, remaining behind Mythos 5 in both biology and offensive cyber domains. Close to Mythos 5 in vulnerability "discovery," but significantly behind in "exploit development."

Safeguards

  • Cyber: Source code vulnerability discovery is permitted; binary-based scanning, pentesting, and exploit generation are blocked. Classifier trigger frequency is expected to decrease by approximately 85% compared to Fable 5. Falls back to Opus 4.8 when flagged. Organizations participating in CVP can access a version with relaxed restrictions.
  • Biology: Equivalent safeguards to Opus 4.8, making it the most science-research-friendly model available for general use. Biology-related requests blocked by Fable 5 are routed to Opus 5.

Beta Features

Mid-conversation tool changes (without disabling prompt cache), and automatic fallback via API.

Notable Updates

Addition of Claude Opus 5 (New Feature)

Claude Opus 5 (claude-opus-5) has been added and is now the default Opus model. It supports 1M context, and fast mode pricing is $10/$50 per Mtok.

Since the default Opus is being swapped out, I feel that those who are not explicitly specifying a model are less likely to notice changes in response behavior and costs.

Strict Allowlist for Sandbox (Security)

The sandbox.network.strictAllowlist setting has been added. For commands executed in the sandbox, connections to hosts not on the allowlist will be rejected without displaying a confirmation prompt.

I feel this is a highly effective setting for those using the sandbox in environments where a person cannot respond to confirmation prompts, such as CI or shared terminals.

Sub-agent Nesting Now Defaults to Depth 3 (New Feature)

Sub-agents can now by default spawn nested sub-agents up to depth 3 (previously 1). Setting CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 disables nesting.

For those who have configurations that delegate research to sub-agents, I feel it's worth being aware of this default value change, as there is a possibility of unintentionally spawning agents at grandchild or great-grandchild levels.

Fixed Missing Output from claude -p (Bug Fix)

Fixed an issue where when a turn ended due to an API error mid-stream, the text output from claude -p would discard even the already-generated response.

For those calling claude -p from scripts or CI, I feel that whether or not a partially generated response is retained on API error directly impacts the effort required in retry design.

Fixed CLAUDE_CODE_GIT_BASH_PATH on Windows (Bug Fix)

Fixed an issue on Windows where specifying a path to a binary other than bash/sh in CLAUDE_CODE_GIT_BASH_PATH would cause it to exit or be used as-is as bash. It now displays a warning and is ignored.

For those specifying the Git Bash path via environment variable on Windows, there is a possibility they have been troubled by exits with unclear causes, and I feel it's worth prioritizing this update.

Update Details

New Features

  • A DirectoryAdded hook has been added. It fires after a working directory is registered mid-session via /add-dir or the SDK's register_repo_root control request.
  • mcp_server_errors has been added to the headless stream-json init event, listing --mcp-config entries skipped during configuration validation. In terminal execution, a warning is displayed at startup.
  • The workflowSizeGuideline configuration key has been added, allowing the advisory Dynamic workflow size guideline to be specified from any configuration file. While set, the relevant line in /config is hidden.
  • Forwarding of nested sub-agents in stream-json is now supported. Specifying --forward-subagent-text outputs sub-agents launched at depth 2 and beyond, keyed by the originating Agent's tool_use id.
  • The status line of a running workflow now displays the current default workflow size, along with guidance to /config for making changes.

Improvements

  • On connection failure to an MCP server, claude mcp list and /mcp now display the HTTP status and error text. Additionally, a warning is shown if there is invisible whitespace at the beginning or end of MCP configuration values.
  • Structured failure categories have been added to self-hosted runner spawn failures and session failures, allowing hook errors, runner crashes, and configuration errors to be distinguished.
  • claude --teleport now displays which repository the current checkout points to when it does not match the session's repository.
  • The "Remote Control is only available via api.anthropic.com" error now indicates the name of the configuration setting that caused it.
  • The default for dynamic workflows is now the medium size guideline (targeting fewer than 15 agents). Other sizes or unlimited can be selected via Dynamic workflow size in /config.
  • The /model picker now highlights only the name of the latest model, with the highlight indicating a new release.
  • The claude-api skill has been updated to default to Claude Opus 5, with migration steps from Opus 4.8 added.

Fixes

  • Fixed missing output from claude -p: When a turn ended due to an API error mid-stream, the already-generated response is no longer discarded.
  • Fixed handling of CLAUDE_CODE_GIT_BASH_PATH on Windows: If it points to a binary other than bash/sh, a warning is shown and it is ignored.
  • Fixed loss of permission approvals on self-hosted runner restart: Permissions approved during a restart are no longer discarded when the session resumes, and approved actions are executed.
  • Fixed deregistration on SIGTERM for self-hosted runners: When a SIGTERM is received during startup, old active rows no longer remain until the lease expires, and deregistration completes normally.
  • Fixed label display for Fable model rows: Fixed an issue where "Requires usage credits" was displayed even for plans that include that model due to an old cache.
  • Fixed stale fast mode status in Remote Control: Old status no longer persists after model switching, reconnection, or organization check failure.
  • Fixed screen reader mode narration: Only the typed character is read aloud, rather than rewriting the entire input line on each keystroke.
  • A quietly welcome fix: Fixed an issue in GNU screen where copy-on-select was outputting base64 to the terminal instead of copying the selection. For those who work on servers via GNU screen, I feel this is a subtle but daily stress-reducing fix.
  • In addition, minor bugs in /model picker display, Vim mode key operations, and other areas have been fixed.

Breaking Changes & Deprecations

Opus 4.7 Removed from /fast Target Models

Opus 4.7 has been removed from the fast mode targets. /fast applies to Opus 5 and Opus 4.8.

The following is an example to illustrate the behavior.

Before the change (~v2.1.218):

# Prior to v2.1.218 (example)
/fast
# → Fast mode was applicable even when Opus 4.7 was selected

After the change (v2.1.219~):

# From v2.1.219 onward (example)
/fast
# → Applies to Opus 5 and Opus 4.8. Not applicable with Opus 4.7

Resolution Source for ${VAR} in Managed MCP Has Changed

The resolution source for ${VAR} entries in managed MCP allowlists/denylists has been changed from the config file's env to environment variables at startup and managed-settings env.

The following is a configuration example (the specific key names for allowlist/denylist are not stated in the CHANGELOG, so they are supplemented with comments).

Before the change (~v2.1.218):

// settings.json
{
  "env": { "MCP_HOST": "mcp.example.com" }
}
// "${MCP_HOST}" written in the managed MCP allowlist / denylist was resolved to this value

After the change (v2.1.219~):

export MCP_HOST=mcp.example.com
claude
# If only written in the config file's env, "${MCP_HOST}" will no longer be resolved

Trying Out Claude Opus 5

I ran a headless execution specifying Opus 5 to confirm that the model is actually used and to check what contextWindow the CLI reports.

% claude --version
2.1.219 (Claude Code)

% claude -p --max-turns 1 --model claude-opus-5 --output-format json "Reply with exactly: OK"
{"is_error":false,"duration_api_ms":1777,"num_turns":1,"stop_reason":"end_turn","session_id":"08b3c1b3-37aa-4125-a355-1e97042f9dd3","total_cost_usd":0.215445,"usage":{"input_tokens":2,"cache_creation_input_tokens":20763,"cache_read_input_tokens":15410,"output_tokens":4,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":20763,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":4,"cache_read_input_tokens":15410,"cache_creation_input_tokens":20763,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":20763},"type":"message"}],"speed":"standard"},"modelUsage":{"claude-opus-5":{"inputTokens":2,"outputTokens":4,"cacheReadInputTokens":15410,"cacheCreationInputTokens":20763,"webSearchRequests":0,"costUSD":0.215445,"contextWindow":1000000,"maxOutputTokens":64000,"canonicalModel":"claude-opus-5","provider":"firstParty"}},"permission_denials":[],"terminal_reason":"completed","fast_mode_state":"off","fast_mode_disabled_reason":"sdk_opt_in_required","subtype":"success","api_error_status":null,"result":"OK","ttft_ms":1776,"ttft_stream_ms":1282,"time_to_request_ms":17,"type":"result","duration_ms":1797,"uuid":"bc75358f-2282-4999-a29b-e46e4d808134"}

What this command retrieves is the model's response string "OK" and a full set of metadata about the execution. In terms of purpose, this constitutes a connectivity check (smoke test) for the Claude Code CLI. The output is a single line of JSON. As it is long, I will excerpt the relevant parts.

% claude -p --max-turns 1 --model claude-opus-5 --output-format json "Reply with exactly: OK" | jq .
{
  "is_error": false,
  "duration_api_ms": 1671,
  "num_turns": 1,
  "stop_reason": "end_turn",
  "session_id": "ba194cb6-84e6-4469-b128-89adedbb41ad",
  "total_cost_usd": 0.018196499999999997,
  "usage": {
    "input_tokens": 2,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 36173,
    "output_tokens": 4,
    "server_tool_use": {
      "web_search_requests": 0,
      "web_fetch_requests": 0
    },
    "service_tier": "standard",
    "cache_creation": {
      "ephemeral_1h_input_tokens": 0,
      "ephemeral_5m_input_tokens": 0
    },
    "inference_geo": "not_available",
    "iterations": [
      {
        "input_tokens": 2,
        "output_tokens": 4,
        "cache_read_input_tokens": 36173,
        "cache_creation_input_tokens": 0,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 0,
          "ephemeral_1h_input_tokens": 0
        },
        "type": "message"
      }
    ],
    "speed": "standard"
  },
  "modelUsage": {
    "claude-opus-5": {
      "inputTokens": 2,
      "outputTokens": 4,
      "cacheReadInputTokens": 36173,
      "cacheCreationInputTokens": 0,
      "webSearchRequests": 0,
      "costUSD": 0.018196499999999997,
      "contextWindow": 1000000,
      "maxOutputTokens": 64000,
      "canonicalModel": "claude-opus-5",
      "provider": "firstParty"
    }
  },
  "permission_denials": [],
  "terminal_reason": "completed",
  "fast_mode_state": "off",
  "fast_mode_disabled_reason": "sdk_opt_in_required",
  "subtype": "success",
  "api_error_status": null,
  "result": "OK",
  "ttft_ms": 1663,
  "ttft_stream_ms": 1028,
  "time_to_request_ms": 14,
  "type": "result",
  "duration_ms": 1685,
  "uuid": "2c703f11-9f49-453d-b8a9-45531ec40391"
}

The modelUsage in the JSON output contains contextWindow: 1000000 directly, confirming that the 1M context stated in the CHANGELOG is also reflected in the CLI's reported values. Being able to mechanically verify from metadata whether the specified model was actually used is something I feel will be useful when validating model switching in CI. On the other hand, even an execution that simply returns "OK" in 4 tokens accounts for a combined total of approximately 36,000 tokens in usage, including cache writes and reads (fast mode is off). Before using Opus 5 regularly, I feel that measuring the cost profile of your own workload in headless mode will make it easier to form a budget estimate.

In Closing

v2.1.219 is headlined by the addition of Opus 5, but I feel it is also a release that simultaneously includes automation-related improvements such as the sandbox allowlist setting and the fix for missing headless output.

For those running Claude Code from CI or scripts, or using multi-level sub-agents, why not update and verify the behavior?

References

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://dev.classmethod.jp/articles/20260723-cc-updates-v2-1-218/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書