Skip to contentllms.txt

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

ProviderSupportedMechanism
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
crush✓The exit-0 JSON envelope may include updated_input: a shallow-merge patch against tool_input. Included keys overwrite matching keys; omitted keys are preserved; nested objects are replaced wholesale. Patches from multiple hooks shallow-merge sequentially in config order (later hooks win on colliding keys) and are ignored if the final decision is deny or halt. Implemented as UpdatedInput in internal/hooks/hooks.go.
factory-droid✓PreToolUse hooks return updatedInput in JSON output to modify tool parameters before execution
pi✓tool_call handlers mutate event.input in place to modify tool arguments before execution; later handlers see prior mutations
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
cursor✗Cursor hooks are not documented to rewrite tool input before execution.
devin✗Devin Desktop hooks cannot modify tool input arguments 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
zed✗not documented