{"version":"2.1.309","anchor":"hook-asked-tools-skip-the-interactive-permission-path","canonical_anchor":"hook-asked-tools-skip-the-interactive-permission-path","heading":"A hook that answers \"ask\" no longer lets its updated input auto-allow a tool","tier":"notice","area":"Hooks","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309\/e\/hook-asked-tools-skip-the-interactive-permission-path","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309","markdown":"### A hook that answers \"ask\" no longer lets its updated input auto-allow a tool\n\nWhen a hook decides 'ask', the permission check now gets hookAsked and no longer auto-allows the tool from the hook's updated input\n\n**What**\n\nA hook is a script you configure to run at set points, for example before a tool is used. A hook can answer that the user should be asked before the tool runs. Claude Code now passes this to its permission check as `hookAsked: true` when the hook's decision was \"ask\", next to the existing `planModeWriteFloor`.\n\n- The check that uses a hook's updated tool input now also requires that the hook did not ask.\n\n- The exception is a tool that needs user interaction anyway.\n\n- When a hook asked, the tool is no longer allowed automatically just because the hook supplied new input.\n\n**Why**\n\nIf your PreToolUse hooks return \"ask\" together with changed input, expect to be prompted rather than having the tool go ahead on its own.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}