{"version":"2.1.323","anchor":"toollist-hook-lets-plugin-hooks-modules-add-and-remove-sess","canonical_anchor":"toollist-hook-lets-plugin-hooks-modules-add-and-remove-sess","heading":"Plugin hooks can now add and remove the tools Claude has in a session","tier":"use","area":"Plugin Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/toollist-hook-lets-plugin-hooks-modules-add-and-remove-sess","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### Plugin hooks can now add and remove the tools Claude has in a session\n\nA new tool.list hook event lets a plugin's hooks module remove tools from a session or add new ones\n\n**What**\n\nA plugin's hooks module, a code file that runs at set moments, can now respond to a new `tool.list` event. Through it, the module can:\n\n- remove tools from the session\n\n- add new tools, each with a name, a description and a description of the input it takes\n\nAn added tool needs a `tool.call` hook to answer when Claude uses it. Without one, the call fails with a message saying no `tool.call` hook answered.\n\nClaude Code refuses, with a warning, any added tool whose name matches an existing tool or starts with `mcp__`. If handling the event takes longer than its time limit, it keeps running behind later events.\n\n**Why**\n\nPlugin authors can now shape the set of tools Claude has in a session, not just react to tool use.\n\n- Area: Plugin Hooks\n- Names: `tool.list`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}