permission_control
Whether hooks can make or influence permission decisions determining whether a tool is available for invocation. Minimum qualification: supported when the provider allows hooks to return permission decisions of any kind (grant, deny, or ask). Boundary: permission_control governs whether a tool is available; see decision_control for invocation-flow control.
Type: bool Content type: hooks
Provider Support
Section titled “Provider Support”| Provider | Supported | Mechanism |
|---|---|---|
| amp | ✓ | permissions_system: Amp has a permissions system that hooks interact with to make tool availability decisions |
| claude-code | ✓ | hook_permission_update_entries: PermissionRequest hooks return updatedPermissions with addRules/replaceRules/removeRules/setMode entries |
| codex | ✓ | hook_permission_decision: Codex hooks can return permission decisions that grant or deny tool availability |
| cline | ✗ | Cline hooks can cancel tool invocations (decision_control) but cannot grant/deny tool availability |
| copilot-cli | ✗ | Copilot CLI hooks can deny tool invocations (decision_control) but do not govern tool availability |
| crush | ✗ | not documented |
| cursor | ✗ | Cursor hooks control allow/block via exit codes but do not govern tool availability through permission rule updates. |
| factory-droid | ✗ | Factory Droid hooks cannot make permission decisions about tool availability |
| gemini-cli | ✗ | Gemini CLI hooks control invocation flow via exit codes but do not govern tool availability |
| kiro | ✗ | Kiro hooks do not participate in permission decisions |
| opencode | ✗ | not documented |
| pi | ✗ | Pi hooks cannot make permission decisions about tool availability |
| roo-code | ✗ | not documented |
| windsurf | ✗ | Windsurf hooks do not participate in permission decisions |
| zed | ✗ | not documented |