{"name":"tool.describe","slug":"tool-describe","family":"setting","title":"Settings keys","noun":"settings key","description":"Plugin hooks are limited in what they may rewrite, and cannot take over question prompts.","description_source":"entry","described_by":{"version":"2.1.242","anchor":"each-hook-event-enforces-what-a-plugin-is-allowed-to-change"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.323","builds":0,"mined_builds":162,"first_cited":{"version":"2.1.259","released_at":"2026-09-02 21:21:42","spans":4}},"aliases":[],"entries":[{"version":"2.1.323","anchor":"hookevent-surface-gains-toollist","heading":"Add-ons can now hook into the list of tools","line":"Add-on code can now respond to a `tool.list` event when Claude Code lists its tools","released_at":"2026-11-12 20:29:28","reason":"named in this entry, found in this entry's text"},{"version":"2.1.317","anchor":"tooldescribe-hooks-module-capability-and-input-host-mid-tur","heading":"Two internal name lists in Claude Code each gain an entry","line":"A list holding command.describe, env.get and prompt.section now also holds tool.describe, and a list of input sources gains a mid-turn prompt entry","released_at":"2026-11-02 23:57:53","reason":"found in this entry's text"},{"version":"2.1.269","anchor":"new-toolcheck-hook-event-wired-into-the-tool-approval-pip","heading":"New tool.check hook event wired into the tool-approval pipeline","line":"New tool.check hook can override a hook's earlier 'deny' decision on a tool call","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text"},{"version":"2.1.269","anchor":"new-toolconfig-sdk-operations-pass-through-unmodified","heading":"New tool\/config SDK operations pass through unmodified","line":"SDK gains tool.check, config.set, and config.describe pass-through operations","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text"},{"version":"2.1.267","anchor":"hooks-engine-gains-sessioncompact-sessionreceive-uireso","heading":"Hooks engine gains session.compact, session.receive, ui.resolve event contracts","line":"The plugin hooks system adds validated event types for session compaction, session receive, and UI resolution","released_at":"2026-09-09 18:25:42","reason":"found in this entry's text"},{"version":"2.1.265","anchor":"uiinvalidate-now-supports-invalidating-commanddescribe","heading":"ui.invalidate now supports invalidating command.describe","line":"The ui.invalidate plugin operation can now also invalidate command.describe","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text"},{"version":"2.1.265","anchor":"hook-registry-gains-commanddescribe-as-a-core-hook-event","heading":"Hook registry gains command.describe as a core hook event","line":"Claude Code adds a new internal hook event called command.describe","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text"},{"version":"2.1.259","anchor":"new-functionhooks-event-promptcontext","heading":"New functionHooks event: prompt.context","line":"A new prompt.context hook event lets plugins add named context blocks to a prompt, capped at 32 blocks and 32000 characters.","released_at":"2026-09-02 21:21:42","reason":"found in this entry's text"},{"version":"2.1.259","anchor":"plugin-ui-hooks-can-now-invalidate-on-promptcontext-not-ju","heading":"Plugin UI hooks can now invalidate on prompt.context, not just prompt.section","line":"Plugins can now invalidate prompt.context specifically through ui.invalidate, alongside ui.render and prompt.section.","released_at":"2026-09-02 21:21:42","reason":"found in this entry's text"},{"version":"2.1.242","anchor":"each-hook-event-enforces-what-a-plugin-is-allowed-to-change","heading":"Each hook event enforces what a plugin is allowed to change","line":"Plugin hooks are limited in what they may rewrite, and cannot take over question prompts.","released_at":"2026-08-24 19:16:14","reason":"found in this entry's text"}],"entries_total":11,"docs":[{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"plugins\/mods\/admin","title":"Manage mods for your organization","documented":false},{"source":"claude-code","path":"plugins\/mods\/reference","title":"Mods reference","documented":false}],"docs_total":3,"gates":[],"related":[{"name":"tool.call","slug":"tool-call","description":"Tools a plugin registers reach the model through a local loopback MCP server."},{"name":"tool.check","slug":"tool-check","description":"Plugin hooks can now react to tool-call dry-runs, config changes, and session attach\/detach events."},{"name":"tool.list","slug":"tool-list","description":"Plugins can install code that intercepts tool calls and repaints parts of the terminal interface."},{"name":"tool.output","slug":"tool-output","description":"A tool.output telemetry event can carry file contents, diffs and bash commands after a successful tool call, behind a gate."},{"name":"toolAliases","slug":"toolaliases","description":"The internal per-session context object gained many new fields covering effort, hooks, tools, and skills"},{"name":"toolCalls","slug":"toolcalls","description":null},{"name":"toolCount","slug":"toolcount","description":"When an `mcp_status` live reply would be too large, it now sends a count of each server's tools instead of the full list"},{"name":"toolPermissionContext","slug":"toolpermissioncontext","description":"The auto-mode suggestion dialog now just dismisses itself instead of switching your session to auto."},{"name":"toolPolicy","slug":"toolpolicy","description":"Legacy managed MCP server config fields now have a formal deprecation and rewrite system."},{"name":"toolResultCopiesOnDisk","slug":"toolresultcopiesondisk","description":"A slim mode can blank file contents and command output in the copies of tool results Claude Code saves to disk"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/tool-describe","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}