{"version":"2.1.311","anchor":"pretooluse-input-changed-by-hook-flagged-to-permission-chec","canonical_anchor":"pretooluse-input-changed-by-hook-flagged-to-permission-chec","heading":"Permission checks are told when a hook rewrote a tool's input","tier":"internal","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/pretooluse-input-changed-by-hook-flagged-to-permission-chec","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Permission checks are told when a hook rewrote a tool's input\n\nWhen a `PreToolUse` hook changes what a tool will be given, the permission check now learns it was changed\n\n**Unclear.** What the permission check does with this flag is not stated.\n\n**What**\n\nA hook is a command you configure to run at a set point while Claude works. A `PreToolUse` hook runs before a tool call, which is Claude using a tool such as running a command or editing a file. It can change the input the tool receives.\n\nClaude Code now compares the input after the hook against the input Claude originally asked for. When they differ, it passes a flag, `inputChangedByHook`, to the step that decides whether the tool call is allowed.\n\n**Why**\n\nThe permission check can now tell a hook's rewritten input apart from what Claude first requested, so rewritten input may be checked again or prompted for.\n\n- Area: Hooks\n- Names: `PreToolUse`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}