input_modification
Whether hooks can modify tool input arguments before the tool executes. Safety-critical capability — silent degradation creates false security. Minimum qualification: supported when the provider provides any mechanism to modify tool input arguments before execution (e.g., hookSpecificOutput.updatedInput, plugin-mutable args, or equivalent).
Type: bool Content type: hooks
Provider Support
Section titled “Provider Support”| Provider | Supported | Mechanism |
|---|---|---|
| claude-code | ✓ | hook_input_modification: PreToolUse returns updatedInput in hookSpecificOutput; entire input object replaced; compatible with all permissionDecision values except defer |
| cline | ✓ | context_modification_output: Cline PreToolUse hooks can return modified context/input before tool execution |
| codex | ✓ | hook_updated_input: Codex PreToolUse hooks return modified input arguments that replace the original tool input |
| pi | ✓ | pi_extension_tool_call_blocking: Pi extensions can intercept and modify tool call inputs before execution |
| amp | ✗ | Amp hooks cannot modify tool input before execution; only substring match and cancel-with-message are documented |
| copilot-cli | ✗ | Copilot CLI hooks cannot modify tool input before execution |
| crush | ✗ | not documented |
| cursor | ✗ | Cursor hooks are not documented to rewrite tool input before execution. |
| factory-droid | ✗ | Factory Droid hooks cannot modify tool input before execution |
| gemini-cli | ✗ | Gemini CLI hooks cannot modify tool input before execution |
| kiro | ✗ | Kiro hooks cannot modify tool input before execution |
| opencode | ✗ | not documented |
| roo-code | ✗ | not documented |
| windsurf | ✗ | Windsurf hooks cannot modify tool input arguments before execution |
| zed | ✗ | not documented |