Follow Discord
Sweep 29 Sep 2026 · 18:10Z Build v2.1.285 506 read Stable v2.1.280 Latest v2.1.285 Next v2.1.285 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.280 ·

New inline tool definitions for tools added mid-conversation

Tools added after a conversation starts can now be announced to the model with their full schema instead of just a name

Group of 3 Nothing to try yet In Development
JSON All of v2.1.280
Nothing to try yetTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Tool ListingArea: what it touches
In DevelopmentKind: in v2.1.280,
In DevelopmentSection of the release

What

  • Message normalization gained an inlineToolDefinitions option: when enabled and tool metadata is available, newly-added tools are announced to the model as full tool_definition blocks (including schema) instead of bare tool_reference names, with a fallback path (inlineToolsFallback) that strips this back to name-only announcements when needed.
  • Internal bookkeeping now tracks which tool additions were defined inline "by value" versus just named on the wire (definedByValue, a byValueNames set), used to decide how each tool addition is announced.
  • The behavior is controlled by a new inline_tools gate that layers on top of the existing mid_conv_tool_change gate, adding a second capability tag to the announced feature list and controlling whether inline tool declarations are surfaced or refused mid-conversation, with new state tracking refusals (inlineToolsRefusal.rejectedHeader, inlineToolsRefusal.announcementsByName).

Why Previously, tools added partway through a conversation were only referenced by name, which could leave the model without enough information (such as the tool's schema) to use them correctly. This lets the model see a tool's full definition when it's added later, when the feature is enabled.

See this entry in the whole of v2.1.280 →

Feedback