Claude Code 2.1.299 Release
Major update adding file mention environment variables, idle token compaction for prompt caching, new APIs for mods and plugins (including image attachment handling and session identity), improved agent and skill controls, better tool management for eval runs, and numerous behavioral changes to plugin hooks, MCP requests, and session handling.
Added
- Added
CLAUDE_CODE_DISABLE_FILE_MENTIONSenvironment variable: Claude gets the paths of@file mentions to read with its file tools, not the files' contents - Added idle compaction in the terminal: a 200K+ token conversation left idle for about 54 minutes is compacted before its one-hour prompt cache expires, so your next message doesn't reprocess it all
- Added
CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENSto change idle compaction's 200K-token minimum;"idleCompaction": falsein settings.json turns it off. Both need v2.1.290 or later - Added
$.prompt.mediaso aprompt.submithook of a mod installed by managed settings can read the bytes of an image or document attached to the prompt - Added
$.session.identity()for mods installed by managed settings: how the session is signed in, and its organization and email when managedforceLoginOrgUUIDlists that organization - Added
size,weight,monoandtabularto a mod'sTextand named spacing steps (xstoxl) to itsBox;boldis deprecated in favor ofweight - Added
--shutdown-drain-sectoclaude self-hosted-runner orchestrator: on SIGTERM it stops polling and gives the poll in flight and running spawn hooks up to that many seconds to finish - Added the skill's frontmatter, source, plugin name and file path to what a mod's
skill.prompthook receives - Added
/effortand/fastin agent view to set what new sessions start with; a bare/model,/effortor/fastthere now opens a picker - Added a "safe mode" line to the agents view peek panel for background sessions started with
--safe-mode - Added a one-time note when plan mode won't ask before most edits or commands because bypass permissions is available
- Added
--disallow-toolsand adisallowed_toolscase field toclaude plugin evalto keep specific built-in tools, such as Agent, out of eval runs - Added support for turning off the attribution block in Claude Desktop's Code tab: set
CLAUDE_CODE_ATTRIBUTION_HEADER=0in theenvof a Claude apps gateway'scodepolicy - Added a field to the attribution block in Claude Code sessions behind a Claude apps gateway; remove the block with
CLAUDE_CODE_ATTRIBUTION_HEADER=0 - Added a
queuedoor to thesession.appendmod hook, so a mod can make the transcript's queue records differ from the prompt as sent - Added a note in
/pluginandclaude plugin validatenaming a mod's hooks that are skipped where an organization manages Claude Code - Added
/usagewarnings for max effort, workflows, always-on context and large tool results - [Claude Tag] Added the ability for Claude in Slack to delete a canvas it created in a channel when someone asks it to
Changed
- Changed plugin hooks and workflow scripts to refuse values they hand back that nest deeper than 28,000 levels, with an error naming the limit (workflow scripts allowed 100,000)
- Changed actions a plugin hook can block to be refused, not let through, when the hook cannot be handed them or cannot hand back its answer; a tool that already ran has its result withheld
- Changed requests to claude.ai's connector proxy and to Anthropic-hosted MCP servers to no longer follow HTTP redirects; redirects by a connector's own server are unaffected
- Changed MCP requests in cloud and self-hosted runner sessions to no longer follow HTTP redirects from the session's MCP proxy
- Changed skill and command loading: one whose file or folder name has hidden, direction-changing or blank-like characters,
<or>is no longer offered until renamed; such aname:is ignored - Changed
ui.rendertrees inclaude plugin test: each mod's Box or Text root now carriespart: { plugin }naming the mod, so exact-tree assertions must include it - Changed WebFetch page reads to pick their effort as web searches do: the caller's level on the caller's own model, otherwise the level settings give the small model
- Changed
claude plugin testto fail a call to a mod's served$method that has not answered within ten seconds, as a session does - Changed MCP allow rules to reach only the server they name:
mcp__ano longer allows a server nameda__bora_; writemcp__<server>__*with the server's whole normalized name - Changed agent
tools:lists to take only the named MCP server's tools; list a server whose name contains__asmcp__<whole name>__* - Changed Claude in Chrome in Cowork cloud sessions outside auto mode: an approved-site action the safety classifier flags now asks you instead of being refused, unless managed settings apply
- Changed cloud session and Remote Control MCP connectors to negotiate MCP protocol version 2026-07-28 by default on installs that fetch no flags;
MCP_PROTOCOL_NEGOTIATION=legacyopts out - Changed MCP tool descriptions and server instructions from Anthropic's first-party MCP servers at
api.anthropic.comto reach Claude in full instead of being cut at 4,096 characters - Changed auto mode in Cowork cloud sessions: a
PermissionRequesthook can no longer approve shell commands or subagents; those prompts wait or are denied - Changed the resume command printed at exit: it names the session by its ID and no longer by its name, so that nothing in a session name can run when the line is pasted
- Changed the resume command printed at exit of a worktree session: it uses
-wand-rif the long flags do not fit the terminal. If neither fits a kept worktree, rows above it say where to run it - Changed
/btwside questions in non-interactive sessions to return a timeout error when still unanswered after 11 minutes - Changed
UserPromptSubmithooks to run before a skill or custom slash command expands, so a hook that blocks the prompt now also stops its embedded shell commands - Changed a skill's own front-matter
UserPromptSubmithook to first run on the prompt after the one that invokes the skill - Changed the
turn.startmod hook to also hear subagents' and teammates' turns, not only the main loop's; tell them apart bye.agentId(absent on the main loop) - Changed the errors shown when
/ultrareviewcan't upload a repository to stop suggestinggit add ., which could stage or commit untracked files such as.env - Changed the cyber safeguard notice to no longer ask people to apply to the Cyber Verification Program
- [Cloud sessions] Changed deleting a self-hosted environment to turn off its routines right away, with the reason shown on each routine, instead of leaving their runs to fail
- [Claude Tag] Changed how Claude in Slack corrects a message it got wrong: it edits the message in place and adds a short "Edited" note instead of striking through the old text
- [Claude Tag] Changed Claude in Slack to join channels with more than 100 members quietly, with no intro message
Source: original entry ↗
More from Claude Code
Follow Claude Code to get its new changes in your feed and email digest.
Claude Code 2.1.296
This release adds new configuration options for managed policies, subagent behavior, workflow models, and retry handling. It includes improvements to the Claude apps gateway, Desktop Code tab settings, file reading capabilities, and session management across cloud and self-hosted environments. Pricing for Sonnet 5.5 cache reads has been updated to $0.10 per million tokens, and various UI and behavior refinements have been made to Claude Tag, VSCode, Chrome, and Slack integrations.
Claude Code 2.1.295 Release
This release adds onFailure blocking for hooks, Program Status Protocol support for terminal status display, upstream timeout configuration, improved tool descriptions, and numerous UX enhancements including file handling in chat, better error messages, and protocol improvements across VSCode, Claude Tag, and MCP integrations.
Claude Code 2.1.287
Claude Code 2.1.287 introduces Claude Mods for deeper plugin behavior customization, adds the "You should know" built-in mod for monitoring, and brings URL prompts from MCP servers, improved filtering in the agents view, and numerous UX enhancements. The update also includes support for 1M context windows, background shell execution in VSCode, and security improvements for file operations.