with one click
yolo
Set up PermissionRequest hooks for the current project or user
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Set up PermissionRequest hooks for the current project or user
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | yolo |
| description | Set up PermissionRequest hooks for the current project or user |
Set up a PermissionRequest hook that auto-handles permission prompts.
/yolo approve-all — auto-approve everything (no security review)/yolo approve-websearch — auto-approve WebSearch and WebFetch only; all other tools fall through to the normal permission dialog/yolo review — route each permission request to Claude for security review via claude -p/yolo off — remove the PermissionRequest hook--global to any command to apply to ~/.claude/settings.json instead of the project's .claude/settings.local.jsonIf no argument is given, default to review.
Determine the target settings file:
--global is in the arguments: ~/.claude/settings.json.claude/settings.local.json in the project rootRead the target settings file. If it doesn't exist, start with {}.
Based on the mode:
approve-allSet hooks.PermissionRequest in the settings to:
[
{
"hooks": [
{
"type": "command",
"command": "INPUT=$(cat); TOOL=$(echo \"$INPUT\" | grep -o '\"tool_name\":\"[^\"]*\"' | head -1 | sed 's/\"tool_name\":\"//;s/\"//'); if [ \"$TOOL\" = \"AskUserQuestion\" ]; then echo '{}'; else echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PermissionRequest\",\"decision\":{\"behavior\":\"allow\"}}}'; fi"
}
]
}
]
approve-websearchSet hooks.PermissionRequest in the settings to:
[
{
"hooks": [
{
"type": "command",
"command": "INPUT=$(cat); TOOL=$(echo \"$INPUT\" | grep -o '\"tool_name\":\"[^\"]*\"' | head -1 | sed 's/\"tool_name\":\"//;s/\"//'); if [ \"$TOOL\" = \"AskUserQuestion\" ]; then echo '{}'; elif [ \"$TOOL\" = \"WebSearch\" ] || [ \"$TOOL\" = \"WebFetch\" ]; then echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PermissionRequest\",\"decision\":{\"behavior\":\"allow\"}}}'; else echo '{}'; fi"
}
]
}
]
reviewFirst, create .claude/hooks/permission-review.sh in the target location (project root or ~/.claude/hooks/ for global) with the contents of permission-review.sh. Make it executable.
Then set hooks.PermissionRequest in the settings to:
[
{
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/permission-review.sh",
"timeout": 30
}
]
}
]
For --global, use the absolute path ~/.claude/hooks/permission-review.sh instead of $CLAUDE_PROJECT_DIR.
offRemove the PermissionRequest key from hooks in the settings. If hooks is then empty, remove hooks too.
Write the updated settings file, preserving all other keys (permissions, etc.).
Tell the user to restart their Claude Code session for hooks to take effect.