{"version":"2.1.288","anchor":"bundled-sdk-tool-runner-dynamic-addtoolsremovetools-and-co","canonical_anchor":"bundled-sdk-tool-runner-dynamic-addtoolsremovetools-and-co","heading":"The bundled Anthropic SDK can add and remove tools during a run","tier":"internal","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.288\/e\/bundled-sdk-tool-runner-dynamic-addtoolsremovetools-and-co","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.288","markdown":"### The bundled Anthropic SDK can add and remove tools during a run\n\nThe Anthropic SDK bundled in Claude Code can now add or remove tools mid-run and tells the model when the tool list changes\n\n**Unclear.** It is not clear whether Claude Code itself uses the new add and remove methods.\n\n**What**\n\nClaude Code includes a copy of Anthropic's SDK, the library programs use to talk to Claude. Its tool runner, the part that runs a loop of tool calls, can now change its tool list while it is running:\n\n- `addTools` adds tools.\n\n- `removeTools` removes tools.\n\nPreviously the tool list was fixed when the run started. Each change is now reported to the model as a system message of type `tool_addition` or `tool_removal`. When a conversation is compacted (shortened to save space), the record of tool changes is kept. Messages are also copied with a different method.\n\n**Why**\n\nThis mostly matters to developers who build their own programs on the SDK. For them, tools can change partway through a run without starting over.\n\n- Area: SDK\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}