Skip to main content

Claude Code from 2.1.227 to 2.1.305: The August–October 2026 Roundup

The Claude Code changes that matter from v2.1.227 to v2.1.305 (Aug 10–Oct 20, 2026): new model aliases, auto-mode defaults, ultracode, AGENTS.md, mods, claude purge, and an upgrade checklist.

Between August 10 and October 20, 2026, Claude Code moved from v2.1.227 to v2.1.305: 66 versions in the official CHANGELOG. Most entries are fixes. A smaller set changes defaults you rely on every day: which model an alias picks, which permission mode a session starts in, what ultracode means, which built-in tools exist, and which commands your scripts call.

This roundup groups those changes by theme. Every version number below was checked against the official CHANGELOG, each one links to our release note for that version, and each section ends with what to do about it. Where the docs and the CHANGELOG disagree on a version, we say so.

For the model launches themselves (prices, positioning, Mythos 5.1 and the Sonnet 4.5 retirement), read Claude Fable 5.1 and the Claude 5.5 Family.


The Short Version

ChangeVersionWhat to do
fable, opus, sonnet and haiku move to Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5 on the Anthropic API2.1.257, 2.1.280, 2.1.284, 2.1.293Update to 2.1.293 or later; check your model pins
Default model on Pro and Team Standard switches from Sonnet to Opus2.1.280Pin sonnet if you prefer it
Effort saved per model; maxEffortLevel caps; the 5.5 models default to medium2.1.251, 2.1.267, 2.1.280Re-pick effort per model
Ultracode becomes a toggle, separate from effort2.1.284Use /effort ultracode and /effort ultracode off
Interactive sessions start in auto mode2.1.283, 2.1.284Set permissions.defaultMode if you want Manual
claude -p and the Agent SDK start in Manual mode2.1.302Add allow rules or pass --permission-mode auto
Todo/task tools off on newer models; TaskOutput removed2.1.233, 2.1.268, 2.1.277Update prompts and hooks that expect them
AGENTS.md is read when there is no CLAUDE.md2.1.277, 2.1.281Pick one canonical instructions file
Claude Mods2.1.287Install mods only from sources you trust
claude purge replaces claude project purge2.1.288Update your scripts
--restricted, --permission-prompts, --system-prompt-snapshot off, --desktop2.1.248 to 2.1.285Use them in harnesses, CI and handoffs
Code Review GA (October 15) and review levels2.1.304Set a level per repository

1. Model Aliases and the Default Model

VersionDateChange
v2.1.2572026-09-01Claude Fable 5.1 added; fable resolves to Fable 5.1 (Claude apps gateway sessions keep Fable 5 for now)
v2.1.2802026-09-22Claude Opus 5.5 added; opus resolves to Opus 5.5 on the Anthropic API, Claude Platform on AWS, Amazon Bedrock and Google Cloud’s Agent Platform; the default model on Pro and Team Standard changes from Sonnet to Opus
v2.1.2842026-09-28Claude Sonnet 5.5 added; sonnet resolves to Sonnet 5.5 on the Anthropic API
v2.1.2932026-10-07Claude Haiku 5.5 added; haiku resolves to Haiku 5.5 on the Anthropic API

Also in this window, v2.1.236 “Added ANTHROPIC_DEFAULT_MODEL environment variable: sets the model new sessions start on, while a /model pick still overrides it and persists across restarts (unlike ANTHROPIC_MODEL)”.

What to do: run claude --version and update to v2.1.293 or later. On Claude Platform on AWS, Amazon Bedrock, Google Cloud’s Agent Platform and Microsoft Foundry, some aliases still resolve to older models; the provider table is in our Claude 5.5 family guide.

2. Effort: Per-Model Levels, medium Defaults, and Caps

  • v2.1.251: “Changed /effort to save your default effort level per model, so each model keeps its own setting when you switch”. The levels live under the modelSettings key in your user settings.
  • v2.1.257: “Added s in /effort to change effort for the current session only, matching /model”.
  • v2.1.267: “Added maxEffortLevel setting (top-level or per model under modelSettings): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level”.
  • v2.1.280: an effort level saved before /effort became per-model no longer applies to newly released models such as Opus 5.5; they start at their default. In Claude Code, Opus 5.5, Sonnet 5.5 and Haiku 5.5 default to medium.
  • v2.1.292: “Added an effort parameter to the Agent tool, so Claude runs a sub-agent at the effort level you ask for”.

A settings file that caps every model at high and keeps Opus 5.5 at high instead of its medium default:

{
  "maxEffortLevel": "high",
  "modelSettings": {
    "claude-opus-5-5": { "effortLevel": "high" }
  }
}

What to do: check the level on each model you use with /effort status. A top-level effortLevel saved in your user settings before per-model effort no longer applies to Opus 5.5 or newer models, so choose their level with /effort (or run /effort auto to clear a saved level). Teams that need a ceiling should set maxEffortLevel in managed settings.

3. Ultracode Is a Toggle, Not an Effort Level

v2.1.284: “Changed Ultracode into its own toggle in /effort (Tab, or /effort ultracode [on|off]): it no longer forces xhigh effort and stays on at any effort level”.

The model configuration docs now describe it this way: “Ultracode is a Claude Code setting rather than a model effort level: with it on, Claude orchestrates dynamic workflows for substantive tasks, at whichever effort level the session runs at.” Two details matter:

  • claude --effort ultracode and the Agent SDK’s effortLevel: "ultracode" still turn ultracode on and set xhigh. Turning it on with /effort or the ultracode setting leaves the effort level unchanged.
  • The persisted effortLevel setting and CLAUDE_CODE_EFFORT_LEVEL don’t accept ultracode; use "ultracode": true in settings instead. Ultracode is unavailable when workflows are turned off or the model doesn’t support xhigh.
/effort ultracode       # turn ultracode on for this session
/effort ultracode off   # turn it off again (v2.1.284+)

What to do: stop treating ultracode as the level above xhigh. Choose the effort level and ultracode separately, and launch with claude --effort ultracode only when you want both. Our ultracode guide covers the workflow side.

4. Permission Modes: Auto Interactively, Manual for -p

  • Interactive sessions start in auto mode. The permission modes docs: “With Claude Code v2.1.283 or later, auto mode is the built-in starting permission mode for interactive terminal and VS Code sessions.” The CHANGELOG shows two steps: v2.1.283 changed interactive sessions on third-party providers or with telemetry off, and v2.1.284 extended it to “every plan and provider”. permissions.defaultMode still overrides it.
  • Headless runs start in Manual mode. From the same docs: “In Claude Code v2.1.302 or later, claude -p and Agent SDK runs with no permission mode set start in Manual mode.” Calls that need approval are denied unless an allow rule, hook, canUseTool callback or --permission-prompt-tool approves them. See the v2.1.302 notes.
  • Unattended hosts. v2.1.259 “Added --permission-prompts none for unattended headless hosts: anything that would prompt is denied automatically while the active permission mode (including auto mode) keeps deciding”.
  • Teach auto mode your environment. v2.1.304 lists /auto-mode-setup, “a guided setup that reads your project and recent sessions to teach auto mode about your environment”, as now also available on Bedrock, Vertex, Foundry, the Claude apps gateway and telemetry-disabled sessions.

One rule to remember: auto and bypassPermissions set in a project’s .claude/settings.json or .claude/settings.local.json don’t take effect. To keep reviewing every action yourself, set Manual mode (config value default) in ~/.claude/settings.json:

{
  "permissions": {
    "defaultMode": "default"
  }
}

For CI, give headless runs explicit permissions:

claude -p "Run the test suite and fix any failures" --permission-mode auto
claude -p "Run the unit tests" --allowedTools "Bash(npm test)"
claude -p --permission-prompts none "Summarize this repository"

What to do: choose your starting mode on purpose instead of inheriting the new default. Check every claude -p job and SDK integration: give it allow rules or --permission-mode auto, and add --permission-prompts none where nobody can answer a prompt. Session 18: Permission Models & Security covers the rule system.

5. Built-in Tools: Todo Tools, TaskOutput, and Forks

  • v2.1.233: “Todo/task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back”.
  • v2.1.268 turned that into an allow-list: the tools are “offered only on Claude 3.x, Opus 4.0–4.7, Sonnet 4.0–4.6, Haiku 4.5”.
  • v2.1.277: “Removed the deprecated TaskOutput tool; Claude reads a background task’s output file with Read instead, and the taskOutputMaxChars setting and TASK_MAX_OUTPUT_LENGTH no longer have any effect”.
  • v2.1.232: “Subagent forking is now on by default”. A subagent_type: "fork" subagent inherits the full conversation and prompt cache, and non-teammate agent spawns in interactive sessions run in the background by default. v2.1.302 turned forks on in claude -p, the Agent SDK, the desktop app and VS Code as well; CLAUDE_CODE_FORK_SUBAGENT=0 turns them off.

What to do: if a prompt, skill, hook or SDK integration expects TodoWrite, the Task tools or TaskOutput, update it, or start Claude Code with CLAUDE_CODE_ENABLE_TODO_TOOLS=1 when a workflow truly depends on them. Remove taskOutputMaxChars and TASK_MAX_OUTPUT_LENGTH from your configuration.

6. Project Instructions: AGENTS.md and Prompt Audits

  • v2.1.277: “Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under “Project instructions” in /config”.
  • v2.1.281: “Changed AGENTS.md support to also work on Amazon Bedrock, Google Vertex AI, Microsoft Foundry, LLM gateways, and sessions with telemetry disabled”.
  • v2.1.283: “Added /doctor prompt-audit (also /checkup prompt-audit) to audit your CLAUDE.md files, skills, agents and commands for prompting patterns written for older models”.

What to do: in repositories shared with other coding agents, decide which file is canonical; AGENTS.md is read only when there is no CLAUDE.md. After moving to the 5.5 models, run /doctor prompt-audit. See Session 17: CLAUDE.md Design.

7. Plugins and Claude Mods

  • v2.1.269: “Added claude plugin eval: run a plugin’s eval suite against Claude Code and get scored, reproducible results (JSON + HTML report)”.
  • v2.1.285: claude plugin configure <plugin> shows a plugin’s options and which are unset, or saves new values read from stdin with --values-stdin.
  • v2.1.287: “Added Claude Mods: plugins may now modify deeper behavior”. The same release added “You should know”, a built-in mod in which a side agent flags things you or Claude might miss; turn it on with /plugin enable cc-plugin-you-should-know@builtin (first-party sessions with telemetry on). From Anthropic’s launch post: “Today we’re introducing mods, small TypeScript functions that change how Claude Code works.” and “Mods ship inside plugins, so you install and share them like any plugin.”
  • claude plugin test [dir] runs a mod’s *.test.ts and *.test.tsx files in the mod hook environment. It is in the v2.1.305 CLI, but its first CHANGELOG mention is a fix in v2.1.288, so the version that introduced it isn’t documented.

What to do: treat a mod like any code you run. Anthropic’s post is direct: “They aren’t sandboxed, and you should only install mods from sources you trust”. If you write mods, run claude plugin test in CI; if you publish plugins, add a claude plugin eval suite.

8. Cloud Sessions on Your Own Infrastructure

Self-hosted environments shipped in v2.1.224 on August 7, just before this window: “claude self-hosted-runner turns your own machines or containers into a place Claude Code web, mobile, and desktop sessions can run, on Team and Enterprise plans”. The companion --environment <environment-id> flag creates a cloud session on a self-hosted environment (IDs start with ccpool_). During the window, the runner gained the controls you need to operate it:

  • v2.1.238: --defer-shutdown-max-min <minutes> keeps serving attached sessions after SIGTERM, then parks what is left and exits.
  • v2.1.248: --client-label <label> (or SELF_HOSTED_RUNNER_CLIENT_LABEL) overrides the label the runner registers with.
  • v2.1.271: fast mode works in Claude Code Remote sessions, cloud and self-hosted, where your organization allows it.
  • v2.1.290: claude --environment <id> creates its session through the current Sessions API.
  • v2.1.299: --shutdown-drain-sec for claude self-hosted-runner orchestrator gives in-flight work time to finish on SIGTERM.
claude self-hosted-runner setup     # guided operator walkthrough
claude self-hosted-runner doctor    # diagnose a deployed runner
claude -p "Run the smoke test" --environment ccpool_abc123 --ref main

What to do: if you operate runners, set --defer-shutdown-max-min (and --shutdown-drain-sec on the orchestrator) so deploys don’t cut off active sessions, and use --client-label to tell hosts apart.

9. New Flags and Commands for Automation

Flag or commandVersionUse it when
--restricted (or CLAUDE_CODE_RESTRICTED=1)v2.1.248An evaluation harness drives claude on a shared machine. It removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings
--permission-prompts nonev2.1.259Nobody can answer prompts in a -p run; prompts are denied while the permission mode keeps deciding
--system-prompt-snapshot offv2.1.267You are iterating on system prompt text, such as --append-system-prompt, across --continue runs and want the prompt rebuilt on every request
claude --desktopv2.1.285You want to continue in the Claude desktop app on the current directory, or on a session with --continue or --resume <id>
claude purge [path]v2.1.288You want to delete all local Claude Code state for a project; it replaces claude project purge, which still works and prints a notice
claude remote-control without --sandboxv2.1.300The no-op --sandbox and --no-sandbox flags now exit with an error; set sandbox.enabled in settings instead

The CLI reference lists v2.1.257 as the minimum for --system-prompt-snapshot, while the CHANGELOG introduces --system-prompt-snapshot off in v2.1.267; v2.1.267 or later is safe either way.

claude purge ~/work/repo --dry-run          # preview what would be deleted
claude --restricted -p "Grade this patch"   # harness-safe run
claude --desktop --continue                 # open this directory's latest conversation in the desktop app

What to do: search your scripts for claude project purge and for --sandbox on claude remote-control, and use --restricted for evaluation harnesses.

10. Artifacts, /design and /slides

  • /design [brief] drafts UI mockups, screen flows, landing pages or posters as a Claude Design artifact, and /slides [brief] makes a Claude Slides deck. Neither has an introducing CHANGELOG entry; the commands reference lists Claude Code v2.1.265 or later for both, plus a session where artifacts are available.
  • Artifacts need a Pro, Max, Team or Enterprise plan and the Anthropic API. They are not available on Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry or Claude Platform on AWS.
  • v2.1.281 fixed the Artifact tool missing from Remote Control sessions that claude remote-control starts for you.
  • v2.1.302 “Added a notice to /design-sync and /design-login that standalone Claude Design (claude.ai/design) closes by December 14, 2026”.
/slides a quarterly review of the platform team's reliability work, for the engineering all-hands
/design a settings screen for a mobile banking app
/artifacts

What to do: if your team syncs a design system to standalone claude.ai/design with /design-sync, plan the move before December 14, 2026, using Anthropic’s migration article.

11. Code Review: /code-review Levels, ultra, and Code Review GA

Since v2.1.223 (August 6, just before this window), /review is an alias of /code-review, which reviews the current diff or a pull request at an effort level, and /code-review ultra runs a deep multi-agent review in the cloud (/ultrareview is an alias). Inside the window:

  • v2.1.232: /code-review at high, xhigh and max runs in a background agent like the other levels.
  • v2.1.257: --comment posts findings on GitLab merge requests via glab mr note.
  • v2.1.269: /ultrareview --post posts the PR comment directly when the findings arrive.
  • v2.1.288: “Added --max-findings <n>|all to /code-review to report more or fewer findings than the usual limit”.
  • v2.1.290: at medium effort, /code-review also reports cleanup and CLAUDE.md conventions findings on models without tuned review settings, including Opus 5.5 and Sonnet 5.5.

Code Review, which reviews your organization’s pull requests, reached general availability on October 15. From Anthropic’s GA post: “Code Review is out of research preview and available to Claude Team and Enterprise organizations.” and “Most reviews now finish about 3x faster (~20 minutes down to 6-10 minutes) compared to during preview.” v2.1.304 added review levels: Owners choose Quick, Standard (the default) or Deep for the organization and can give individual repositories their own level.

/code-review high 1234            # review pull request 1234 at high effort
/code-review --fix                # review the current diff and apply the findings
/code-review --max-findings all   # report every finding instead of the usual limit
/code-review ultra                # deep multi-agent review in the cloud

What to do: match the level to the stakes; with no level given, /code-review reuses the level you typed last. Team and Enterprise admins can give critical repositories the Deep level and routine ones Quick.

12. Also Worth Knowing

ChangeVersion
/goal checks in on background tasks that keep a goal waiting 30+ minutes (CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 opts out)v2.1.234
Built-in “Concise” output stylev2.1.237
PreModelSwitch and PostModelSwitch hook eventsv2.1.251
Fullscreen diff panel, toggled with /diffv2.1.260
/skill-doctor shows unused skills and their context costv2.1.261
/output-style [name] lists and switches output stylesv2.1.269
onFailure: "block" makes command and HTTP hooks fail closedv2.1.295
Idle compaction before the one-hour prompt cache expires; an Idle compaction row in /config followed in v2.1.302v2.1.299

Upgrade Checklist

claude --version   # where you are; v2.1.305 is the newest release covered here
claude update      # update to the latest version
claude doctor      # read-only installation and settings diagnostics

Then review the settings whose meaning changed:

  1. Starting permission mode. Set permissions.defaultMode in ~/.claude/settings.json if you don’t want auto mode, and give claude -p jobs allow rules or --permission-mode auto.
  2. Model pins. Search your settings, ANTHROPIC_MODEL, the ANTHROPIC_DEFAULT_*_MODEL variables, subagent model: fields and fallbackModel for old IDs, especially claude-sonnet-4-5-20250929, which retires on the Claude API on November 30, 2026.
  3. Effort. A top-level effortLevel in your user settings no longer applies to Opus 5.5 or newer models. Save per-model levels with /effort (stored in modelSettings) and add maxEffortLevel if you need a cap.
  4. Ultracode. Use /effort ultracode, /effort ultracode off or the ultracode setting; effortLevel doesn’t accept ultracode.
  5. Renamed and removed. Replace claude project purge with claude purge, drop taskOutputMaxChars and TASK_MAX_OUTPUT_LENGTH, and remove --sandbox and --no-sandbox from claude remote-control calls.
  6. Todo tools. Set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 only if a workflow truly needs TodoWrite or the Task tools.
  7. Instructions. Run /doctor prompt-audit, and decide whether CLAUDE.md or AGENTS.md is the canonical file.

Sources


Every version above has its own page in our release archive. For the models behind the new aliases, read Claude Fable 5.1 and the Claude 5.5 Family.