{"version":"2.1.300","anchor":"plugin-hook-origin-tracking-gated-by-tengu-plain-kestrel","canonical_anchor":"plugin-hook-origin-tracking-gated-by-tengu-plain-kestrel","heading":"Claude Code now tracks which plugin made a tool call when deciding about hooks","tier":"internal","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300\/e\/plugin-hook-origin-tracking-gated-by-tengu-plain-kestrel","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300","markdown":"### Claude Code now tracks which plugin made a tool call when deciding about hooks\n\nClaude Code now uses a call's origin to tell whether a plugin's own tool call was rewritten by another hook\n\n**Unclear.** It is not clear what this changes in practice for someone using plugins with hooks.\n\n**What**\n\nA hook is a script Claude Code runs automatically at certain points, for example before a tool is used. A tool call is one action Claude takes, such as running a command or editing a file. Plugins can bring their own hooks and make their own tool calls.\n\nClaude Code now uses the origin and caller of a hook to keep track of tool calls that a plugin makes itself. It compares what the plugin's call asked for with what reached the layer beneath it, to see whether another hook rewrote it on the way. When the call's input cannot be compared value for value, it is treated as rewritten. When the call cannot be copied, the plugin's hook is not asked about a rewrite of it.\n\nThis check sits behind a gate that falls back to on when the server sends nothing.\n\n**Why**\n\nThis affects how hooks from plugins are run again when one plugin's call sets off another, which matters if you use several plugins whose hooks change tool calls.\n\n- Flag `tengu_plain_kestrel`: Not enough to say (read for one account on one subscription tier against v2.1.300; this account: no value returned, anonymous baseline: no value returned, compiled default: on) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Hooks\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}