{
  "tool": "claude-code",
  "name": "Claude Code",
  "long_name": "Anthropic Claude Code CLI (claude)",
  "aliases": [
    "claude-code-cli",
    "claudecode",
    "claude-cli",
    "anthropic-claude-code",
    "anthropic-ai-claude-code",
    "anthropics-claude-code",
    "anthropic-claude-code-cli"
  ],
  "homepage": "https://github.com/anthropics/claude-code",
  "url": "https://insidetheloop.dev/tools/claude-code",
  "markdown_url": "https://insidetheloop.dev/tools/claude-code.md",
  "date_modified": "2026-10-10T10:31:10Z",
  "title": "Claude Code 2.1.296: latest version, changed flags and gotchas",
  "description": "Claude Code 2.1.296 (2026-10-09 UTC): upgrade commands, Sonnet 5.5 cache read cut to $0.10/Mtok, Read allow_large flag, hook blocking, and verified gotchas.",
  "answer": "The latest Claude Code (`claude`, npm `@anthropic-ai/claude-code`) is 2.1.296, released 2026-10-09 19:28 UTC on GitHub (npm publish 16:58 UTC). Upgrade with `claude update`, or `npm install -g @anthropic-ai/claude-code@latest` (on npm 12 add `--allow-scripts=@anthropic-ai/claude-code`, or `claude` fails with `Error: claude native binary not installed.`). The npm `stable` channel is on 2.1.287. 2.1.296 cuts Sonnet 5.5 cache read pricing to $0.10 per Mtok (was $0.20), adds `allow_large` to the Read tool, adds `autoCompactWindow` for subagents, and adds `onFailure: \"block\"` for hooks (2.1.295). Help pages across all 56 subcommands are unchanged from 2.1.294. Sandbox runs verified the CLI help tree, npm 12 installation gotchas, and error behaviors.",
  "latest": {
    "version": "2.1.296",
    "released_at": "2026-10-09T19:28:59Z",
    "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
  },
  "upgrade": [
    {
      "label": "Native install (macOS, Linux, WSL): built-in updater",
      "command": "claude update\nclaude --version   # 2.1.296 (Claude Code)"
    },
    {
      "label": "Native installer (macOS, Linux, WSL)",
      "command": "curl -fsSL https://claude.ai/install.sh | bash"
    },
    {
      "label": "npm (npm 11 and older)",
      "command": "npm install -g @anthropic-ai/claude-code@latest"
    },
    {
      "label": "npm 12 (blocks the postinstall step that links the native binary unless allowed)",
      "command": "npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code@latest"
    },
    {
      "label": "Homebrew (`claude-code` follows the stable channel, `claude-code@latest` the latest)",
      "command": "brew upgrade claude-code@latest"
    },
    {
      "label": "WinGet",
      "command": "winget upgrade Anthropic.ClaudeCode"
    },
    {
      "label": "Pin a version (for example the current stable, 2.1.287)",
      "command": "curl -fsSL https://claude.ai/install.sh | bash -s 2.1.287\n# or: npm install -g @anthropic-ai/claude-code@2.1.287"
    }
  ],
  "verified": {
    "date": "2026-10-10",
    "version": "2.1.296",
    "method": "`bin/tool-snapshot` and `bin/tool-diff` compared 2.1.294 and 2.1.296 in Linux sandboxes (56 help pages, 0 added, 0 removed); unpacked npm packages diffed `sdk-tools.d.ts` (added `allow_large` to Read tool `FileInput`, `snippet` to `PostToolUse`); reproduced gotchas in throwaway Linux sandbox (`itl-sbx-1791628175-31584` on mac arm64); verified npm dist-tags and Sonnet 5.5 cache read pricing ($0.10/Mtok)."
  },
  "updated_at": "2026-10-10T10:31:10Z",
  "key_facts": [
    "Latest release: 2.1.296, GitHub release 2026-10-09 19:28 UTC; npm publish 2026-10-09 16:58 UTC. Previous: 2.1.295 (GitHub 2026-10-08 19:48 UTC; npm publish 18:22 UTC).",
    "npm dist-tags on 2026-10-10: `latest` = 2.1.296, `next` = 2.1.296, `stable` = 2.1.287 (published 2026-10-01). The stable channel is \"typically about one week old, skipping releases with major regressions\" (Anthropic setup docs).",
    "The npm package is a thin wrapper: `bin/claude.exe` plus one optional dependency per platform (`@anthropic-ai/claude-code-linux-x64` and seven others) and a `postinstall` (`node install.cjs`) that links the native binary. Shipped `sdk-tools.d.ts` between 2.1.294 and 2.1.296 adds `FileInput.allow_large` and `snippet` to `PostToolUse` results.",
    "Since 2.1.296, Sonnet 5.5 cache reads are priced at $0.10 per Mtok (was $0.20). Claude Haiku 5.5 remains the default Haiku model on the Anthropic API (1M context window, $0.10/$0.50 per Mtok).",
    "Anthropic published 27 Claude Code releases on GitHub in September 2026 (2.1.257 to 2.1.286) and 10 from 2026-10-01 to 2026-10-10 (2.1.287 to 2.1.296). Version numbers skip: there is no 2.1.279.",
    "149,968 GitHub stars on anthropics/claude-code on 2026-10-10."
  ],
  "releases": [
    {
      "version": "2.1.296",
      "released_at": "2026-10-09T19:28:59Z",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296",
      "changes": [
        {
          "text": "Updated `/cost`, the status line, `--max-budget-usd` and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20).",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "Added an `allow_large` option to the Read tool so Claude can read a text file past usual size limits in one call when context permits.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "Added `autoCompactWindow` to subagent frontmatter and `--agents` definitions, allowing subagents to auto-compact earlier than the main session.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "Added `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL` to run every workflow agent on one model while other subagents retain theirs.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "Fixed Edit and NotebookEdit replacing non-ASCII characters in files that are not valid UTF-8 (Windows-1252, Shift-JIS, GBK); such edits are now refused.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "Fixed `claude plugin marketplace add`, `marketplace update` and `plugin install` failing with internal error for marketplaces named like `constructor`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        }
      ]
    },
    {
      "version": "2.1.295",
      "released_at": "2026-10-08T19:48:38Z",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295",
      "changes": [
        {
          "text": "Added `onFailure: \"block\"` for command and HTTP hooks: a hook that fails to start, times out, or exits with an unexpected code blocks the action.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        },
        {
          "text": "Added Program Status Protocol (OSC 7501) support: compatible terminals display whether Claude Code is working, waiting on you, or finished.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        },
        {
          "text": "Added advice to `claude plugin validate` when a plugin README has no install command line, printing the line to paste without failing validation.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        },
        {
          "text": "Added `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` to cap how long unattended retry mode (`CLAUDE_CODE_RETRY_WATCHDOG`) waits out 429 and 529 throttling.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        },
        {
          "text": "Fixed `claude -p` text output dropping earlier responses when background work started another turn; each turn response prints as the turn ends.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        }
      ]
    },
    {
      "version": "2.1.294",
      "released_at": "2026-10-08T05:03:54Z",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.294",
      "changes": [
        {
          "text": "Fixed `prompt` and `agent` hooks written as instructions (such as \"Block commands that...\") allowing what they should block.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.294"
        },
        {
          "text": "Improved how `prompt` hooks on Stop and SubagentStop written as instructions (such as \"Carry on if the build is broken\") are judged, so Claude is less likely to stop early.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.294"
        }
      ]
    },
    {
      "version": "2.1.293",
      "released_at": "2026-10-07T18:10:20Z",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293",
      "changes": [
        {
          "text": "Added Claude Haiku 5.5 (`claude-haiku-5-5`), now the default Haiku model on the Anthropic API — 1M context, $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100K).",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        },
        {
          "text": "Added `agentType` to the `subagentStatusLine` payload so scripts tell custom subagent types apart; added `isDeferred: false` to `$.tool.register` to list mod tool schemas upfront.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        },
        {
          "text": "Fixed `claude purge` stopping silently (exit 0 or hang) when a file or folder could not be deleted; it now deletes the rest, lists what it could not delete, and exits 1.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        },
        {
          "text": "Fixed a memory leak where an HTTP MCP connection kept every request it had sent until it closed.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        },
        {
          "text": "Fixed Claude treating its own last actions before context compaction as finished after it, and fixed messages lost when `←` moved a session to the background.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        }
      ]
    },
    {
      "version": "2.1.292",
      "released_at": "2026-10-06T18:59:30Z",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292",
      "changes": [
        {
          "text": "Added `--marketplace <source>` to `claude plugin install`: adds the marketplace if needed, then installs the plugin from it.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        },
        {
          "text": "Added an `effort` parameter to the Agent tool (`low`, `medium`, `high`, `xhigh`, `max`), so a sub-agent runs at the effort level you ask for.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        },
        {
          "text": "Local (stdio) MCP connections negotiate protocol version 2026-07-28 by default on every install, including Bedrock, Vertex and Foundry; `MCP_PROTOCOL_NEGOTIATION=legacy` opts out. Slow servers are remembered for 7 days and connected the older way.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        },
        {
          "text": "Fixed one-shot `claude -p` runs stopping a background command 5 seconds after the final result; they now wait for it.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        },
        {
          "text": "Added `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` for a longer backoff on overloaded (529) requests; MCP tools with names over 128 characters are now left out instead of failing every request.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        }
      ]
    }
  ],
  "surface": [
    {
      "from": "2.1.294",
      "to": "2.1.296",
      "method": "`bin/tool-snapshot` ran `--help` for every claude-code subcommand of both versions in a throwaway Linux sandbox (56 and 56 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.",
      "summary": "0 commands added, 0 removed, 0 commands with flags added or removed; 0 help pages changed in any way.",
      "commands_added": [],
      "commands_removed": [],
      "flags": [],
      "notes": [
        "Consecutive releases across 2.1.295 and 2.1.296. No CLI subcommands or command-line flags changed in `--help` across all 56 help pages.",
        "npm package diff of `sdk-tools.d.ts` between 2.1.294 and 2.1.296 shows `allow_large?: boolean` added to `FileInput` (the Read tool input) and `snippet?: string` added to `PostToolUse` search results.",
        "2.1.296 cuts Sonnet 5.5 cache read pricing to $0.10/Mtok (was $0.20), adds subagent `autoCompactWindow` and `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL`.",
        "2.1.295 added `onFailure: \"block\"` for command and HTTP hooks and terminal Program Status Protocol (OSC 7501) support."
      ]
    },
    {
      "from": "2.1.285",
      "to": "2.1.294",
      "method": "Source-derived (not run): the committed `--help` data in the 2.1.285..2.1.294 diff was built from source definitions and the tag comparison because sandboxes were paused; no local `--help` run occurred.",
      "summary": "2 commands added, 2 removed, 5 commands with flags added or removed; 8 help pages changed in any way.",
      "commands_added": [
        "claude plugin test",
        "claude purge"
      ],
      "commands_removed": [
        "claude project",
        "claude project purge"
      ],
      "flags": [
        {
          "command": "claude",
          "added": [],
          "removed": [
            "--client-data-url"
          ]
        },
        {
          "command": "claude plugin install",
          "added": [
            "--marketplace"
          ],
          "removed": []
        },
        {
          "command": "claude plugin marketplace add",
          "added": [
            "--json"
          ],
          "removed": []
        },
        {
          "command": "claude plugin marketplace remove",
          "added": [
            "--json"
          ],
          "removed": []
        },
        {
          "command": "claude plugin marketplace update",
          "added": [
            "--json"
          ],
          "removed": []
        }
      ],
      "notes": [
        "2.1.285 is what the npm `stable` dist-tag pointed at before 2026-10-09; 2.1.294 was `next` on npm and `latest` on GitHub.",
        "`claude project` / `claude project purge` became `claude purge` in 2.1.288. In 2.1.293 `claude purge` exits 1 if a file fails to delete instead of silently exiting 0.",
        "`--client-data-url` disappeared from `claude --help` in 2.1.287 but was not removed: 2.1.296 still parses it and refuses to start with a non-Anthropic URL (gotcha below).",
        "`claude plugin test` first appears in `claude plugin --help` in 2.1.286.",
        "`sdk-tools.d.ts` 2.1.285 → 2.1.294 adds `WebFetchInput.offset` (2.1.290), `AgentInput.effort` (2.1.292), and timestamps in `ReadNotificationsOutput`."
      ]
    }
  ],
  "breaking": [
    {
      "version": "2.1.296",
      "change": "Edit and NotebookEdit now refuse to edit files with non-UTF-8 encodings (such as Windows-1252, Shift-JIS, GBK). Previously, editing such files replaced non-ASCII characters.",
      "migrate": "Convert files to UTF-8 before editing with Claude Code, or edit them manually outside Claude Code.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
    },
    {
      "version": "2.1.295",
      "change": "Hooks configured with `onFailure: \"block\"` will strictly block the tool call or prompt if the hook process fails to start, times out, or exits with an unexpected code.",
      "migrate": "Verify that hooks using `onFailure: \"block\"` complete reliably within configured timeouts. If non-blocking behavior is required, omit `onFailure` or set it to default.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
    },
    {
      "version": "2.1.293",
      "change": "Claude Haiku 5.5 (`claude-haiku-5-5`) is now the default Haiku model on the Anthropic API. Extended thinking cannot be turned off on Haiku 5.5 (`MAX_THINKING_TOKENS=0` has no effect on this model).",
      "migrate": "To keep Haiku 4.5 for the Anthropic API's `haiku` alias, set `ANTHROPIC_DEFAULT_HAIKU_MODEL=\"claude-haiku-4-5-20251001\"` (or `claude-haiku-4-5`). On Google Cloud's Agent Platform, `haiku` resolves to Haiku 4.5; `VERTEX_REGION_CLAUDE_HAIKU_5_5` only overrides the region for Haiku 5.5.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
    },
    {
      "version": "2.1.292",
      "change": "Local (stdio) MCP servers now receive a `server/discover` request (MCP 2026-07-28) before `initialize`. A 2025-spec server that never answers unknown requests delays its first connection by about 3 seconds in our run; one that crashes or misbehaves on an unknown method is exposed to it for the first time.",
      "migrate": "Reply to unknown requests with JSON-RPC error -32601 (Method not found), or implement `server/discover`. To restore the old handshake, set `MCP_PROTOCOL_NEGOTIATION=legacy`.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
    },
    {
      "version": "2.1.288",
      "change": "`claude project purge` was renamed `claude purge`; `claude project` is gone from `--help`.",
      "migrate": "Use `claude purge [path]` (options `--all`, `--dry-run`, `-i`, `-y`). The old name still works for now and prints a notice.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.288"
    },
    {
      "version": "2.1.287",
      "change": "MCP servers on the 2025-11-25 protocol can send URL prompts (for example to sign in).",
      "migrate": "If a server no longer connects after this update, add `\"bareElicitationCapability\": true` to its MCP config entry (release notes).",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.287"
    },
    {
      "version": "2.1.285",
      "change": "The MCP server name `widgets` is reserved in cloud sessions and on self-hosted runners; a server under that name, or a close spelling such as `widgets_`, no longer loads there.",
      "migrate": "Rename the server in your MCP config.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.285"
    },
    {
      "version": "2.1.277",
      "change": "Removed the deprecated TaskOutput tool; the `taskOutputMaxChars` setting and `TASK_MAX_OUTPUT_LENGTH` no longer have any effect.",
      "migrate": "Claude reads a background task's output file with Read. Remove TaskOutput from `--tools`, `--allowedTools` and permission rules.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.277"
    },
    {
      "version": "2.1.233",
      "change": "Todo and 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.",
      "migrate": "Set `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` to bring them back.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.233"
    },
    {
      "version": "2.1.217",
      "change": "Subagents no longer spawn nested subagents by default.",
      "migrate": "Set `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` to allow deeper nesting.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.217"
    }
  ],
  "gotchas": [
    {
      "title": "npm 12 installs Claude Code but `claude` will not start",
      "version": "2.1.296",
      "command": "npm i -g --silent npm@12.2.0 && echo -n \"npm: \" && npm --version && npm i -g @anthropic-ai/claude-code@2.1.296; echo \"npm_exit=$?\"; claude --version; echo \"claude_exit=$?\"",
      "output": "npm: 12.2.0\n\nadded 2 packages in 1s\nnpm_exit=0\nclaude_exit=1\nnpm warn install-scripts 1 package had install scripts blocked because they are not covered by allowScripts:\nnpm warn install-scripts   @anthropic-ai/claude-code@2.1.296 (postinstall: node install.cjs)\nnpm warn install-scripts\nnpm warn install-scripts Run `npm install -g --allow-scripts=@anthropic-ai/claude-code` to allow these scripts once, or `npm config set allow-scripts=@anthropic-ai/claude-code --location=user` to allow them for all global installs.\nError: claude native binary not installed.\n\nEither postinstall did not run (--ignore-scripts, some pnpm configs)\nor the platform-native optional dependency was not downloaded\n(--omit=optional).\n\nRun the postinstall manually (adjust path for local vs global install):\n  node node_modules/@anthropic-ai/claude-code/install.cjs\n\nOr reinstall without --ignore-scripts / --omit=optional.",
      "fix": "npm 12.0.0 (2026-07-08) blocks dependency lifecycle scripts unless `allowScripts` covers them. Install with `npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code@latest`, or use the native installer.",
      "url": "https://github.com/npm/cli/releases/tag/v12.0.0"
    },
    {
      "title": "`--dangerously-skip-permissions` refuses to run as root (Docker, CI containers)",
      "version": "2.1.296",
      "command": "claude -p --dangerously-skip-permissions \"say hi\"   # as root\nclaude -p --permission-mode bypassPermissions \"say hi\"   # as root",
      "output": "exit=1\n--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons",
      "fix": "Run Claude Code as a non-root user. Do not rely on undocumented environment variables as a workaround for this safety check.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
    },
    {
      "title": "Headless `claude -p` with no credentials",
      "version": "2.1.296",
      "command": "claude -p \"say hi\" </dev/null   # fresh machine, no login, no ANTHROPIC_API_KEY",
      "output": "Not logged in · Please run /login\nexit=1",
      "fix": "Set `ANTHROPIC_API_KEY`, or sign in once with `claude auth login`; `claude setup-token` creates a long-lived token for a Claude subscription. With `--bare`, only `ANTHROPIC_API_KEY` or an `apiKeyHelper` from `--settings` is read (`claude --help`).",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
    },
    {
      "title": "`claude purge` on non-existent project directory exits with code 1",
      "version": "2.1.296",
      "command": "claude purge --dry-run /root/p",
      "output": "exit=1\nNo Claude Code project state found for /root/p under /root/.claude.",
      "fix": "Ensure the path passed to `claude purge` matches an existing project directory tracked under `~/.claude/projects`. Since 2.1.293, failed purges exit with code 1 instead of silently succeeding.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
    },
    {
      "title": "`--client-data-url` is hidden from `--help` but still enforced",
      "version": "2.1.296",
      "command": "claude --client-data-url https://example.invalid/cfg -p \"say hi\"",
      "output": "exit=1\nError: --client-data-url: the URL must be the https://downloads.claude.ai/ address Anthropic gave you, exactly as given. Claude Code does not start without the configuration it was given; to start without it, remove the flag, or remove CLAUDE_CODE_CLIENT_DATA_URL from your environment or settings.",
      "fix": "Remove the flag or unset `CLAUDE_CODE_CLIENT_DATA_URL` unless Anthropic gave you that URL. The flag left `claude --help` in 2.1.287 without a release note.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.287"
    },
    {
      "title": "An unknown `--effort` value is ignored with a warning, not rejected",
      "version": "2.1.296",
      "command": "claude -p --effort ultra \"say hi\" </dev/null",
      "output": "Warning: Unknown --effort value 'ultra' — ignoring it and using the default effort. Valid values: low, medium, high, xhigh, max.",
      "fix": "Use one of `low`, `medium`, `high`, `xhigh`, `max`. The run continues at the default effort, so a typo in a CI script does not fail the job.",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
    }
  ],
  "monthly": [
    {
      "month": "2026-10",
      "versions": "2.1.287 to 2.1.296 (10 releases to 2026-10-10)",
      "highlights": [
        {
          "text": "2.1.296: Sonnet 5.5 cache read price cut to $0.10/Mtok ($0.20 earlier), Read tool allow_large flag, autoCompactWindow for subagents, CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296"
        },
        {
          "text": "2.1.295: onFailure: \"block\" for hooks, terminal OSC 7501 Program Status Protocol, claude plugin validate install line advice.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295"
        },
        {
          "text": "2.1.294: fixed instruction-based prompt and agent hooks allowing blocked commands; refined Stop/SubagentStop hook judging.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.294"
        },
        {
          "text": "2.1.293: Haiku 5.5 default ($0.10/$0.50 Mtok), agentType in subagent status line, isDeferred: false for mods, claude purge exits 1 on failure.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293"
        },
        {
          "text": "2.1.292: server/discover probe for stdio MCP servers (protocol 2026-07-28), Agent tool effort, claude plugin install --marketplace.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292"
        },
        {
          "text": "2.1.290: WebFetch offset for pages over 100,000 characters; WebSearch budget refills at 100 calls/hour.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.290"
        }
      ]
    },
    {
      "month": "2026-09",
      "versions": "2.1.257 to 2.1.286 (27 releases)",
      "highlights": [
        {
          "text": "2.1.259: `--permission-prompts none` for unattended headless hosts; `--json` on `claude plugin validate`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.259"
        },
        {
          "text": "2.1.269: `claude plugin eval` runs a plugin's eval suite and reports scored results.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.269"
        },
        {
          "text": "2.1.277: removed the TaskOutput tool; 2.1.280: default model on Pro and Team Standard plans changed from Sonnet to Opus.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.280"
        },
        {
          "text": "2.1.285: `claude --desktop` and `claude plugin configure`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.285"
        }
      ]
    },
    {
      "month": "2026-08",
      "versions": "2.1.221 to 2.1.252 (27 releases)",
      "highlights": [
        {
          "text": "2.1.222: removed ultraplan; 2.1.224: removed the 200-subagents-per-session cap.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.224"
        },
        {
          "text": "2.1.233: todo and task tools no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5 and newer (`CLAUDE_CODE_ENABLE_TODO_TOOLS=1` restores them).",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.233"
        },
        {
          "text": "2.1.248: `--restricted` (or `CLAUDE_CODE_RESTRICTED=1`) removes the tools that run commands or code.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.248"
        }
      ]
    },
    {
      "month": "2026-07",
      "versions": "2.1.198 to 2.1.220 (22 releases)",
      "highlights": [
        {
          "text": "2.1.198: removed the `/agents` wizard; ask Claude or edit `.claude/agents/` instead.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.198"
        },
        {
          "text": "2.1.211: `--forward-subagent-text`; 2.1.212: `claude auto-mode reset`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.211"
        },
        {
          "text": "2.1.217: subagents no longer spawn nested subagents by default (`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`).",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.217"
        }
      ]
    },
    {
      "month": "2026-06",
      "versions": "2.1.160 to 2.1.197 (29 releases)",
      "highlights": [
        {
          "text": "2.1.169: `--safe-mode` (all customizations off) and `/cd`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.169"
        },
        {
          "text": "2.1.186: `claude mcp login <name>` and `claude mcp logout <name>`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.186"
        },
        {
          "text": "2.1.197: Claude Sonnet 5 became the default model, with a native 1M-token context window.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.197"
        }
      ]
    },
    {
      "month": "2026-05",
      "versions": "2.1.126 to 2.1.159 (28 releases)",
      "highlights": [
        {
          "text": "2.1.139: `/goal` and `claude plugin details`; 2.1.145: `claude agents --json`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.139"
        },
        {
          "text": "2.1.147: `/simplify` renamed `/code-review`, with an effort level.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.147"
        },
        {
          "text": "2.1.154: Opus 4.8, defaulting to high effort; 2.1.157: `claude plugin init`.",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.154"
        }
      ]
    }
  ],
  "sources": [
    {
      "title": "anthropics/claude-code releases (GitHub API)",
      "url": "https://api.github.com/repos/anthropics/claude-code/releases",
      "read": "2026-10-10"
    },
    {
      "title": "@anthropic-ai/claude-code on the npm registry (dist-tags, publish times)",
      "url": "https://registry.npmjs.org/@anthropic-ai/claude-code",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.296 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.296",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.295 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.295",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.294 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.294",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.293 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.293",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.292 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.292",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.291 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.291",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code 2.1.290 release notes",
      "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.290",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code changelog (anthropics/claude-code CHANGELOG.md)",
      "url": "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",
      "read": "2026-10-10"
    },
    {
      "title": "Anthropic pricing: Claude Sonnet 5.5 cache read rates and Haiku 5.5 rates",
      "url": "https://www.anthropic.com/pricing",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code model configuration: pinning Haiku and model aliases",
      "url": "https://code.claude.com/docs/en/model-config",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code environment variables: ANTHROPIC_DEFAULT_HAIKU_MODEL and VERTEX_REGION_CLAUDE_HAIKU_5_5",
      "url": "https://code.claude.com/docs/en/env-vars",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code advanced setup: install, update, release channels, npm",
      "url": "https://code.claude.com/docs/en/setup",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code settings reference: modelOverrides maps exact model IDs",
      "url": "https://code.claude.com/docs/en/settings-reference#modeloverrides",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code error reference: effort levels with thinking disabled",
      "url": "https://code.claude.com/docs/en/errors#effort-isnt-available-with-thinking-turned-off",
      "read": "2026-10-10"
    },
    {
      "title": "Claude Code data directory: purge behavior and retained paths",
      "url": "https://code.claude.com/docs/en/claude-directory#clear-local-data",
      "read": "2026-10-10"
    },
    {
      "title": "npm CLI 12.0.0 release notes (dependency lifecycle scripts blocked by default)",
      "url": "https://github.com/npm/cli/releases/tag/v12.0.0",
      "read": "2026-10-10"
    },
    {
      "title": "GitHub compare v2.1.294...v2.1.296 (CLI surface and changelog comparison)",
      "url": "https://github.com/anthropics/claude-code/compare/v2.1.294...v2.1.296",
      "read": "2026-10-10"
    },
    {
      "title": "GitHub compare v2.1.285...v2.1.294 (source-derived surface context)",
      "url": "https://github.com/anthropics/claude-code/compare/v2.1.285...v2.1.294",
      "read": "2026-10-10"
    },
    {
      "title": "MCP specification 2026-07-28 changelog (stateless protocol, server/discover)",
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/changelog",
      "read": "2026-10-10"
    },
    {
      "title": "anthropics/claude-code repository (stars)",
      "url": "https://github.com/anthropics/claude-code",
      "read": "2026-10-10"
    }
  ],
  "fixes": []
}
