Auto-Approve Skill
Status: not installed
Actions
Show this menu and wait for the user to choose:
-
Status - Show config, cache stats, recent decisions
-
View config - Display current configuration (global + project)
-
Add pattern - Add to Always Allow, Always Ask, Safe Tools, or Custom Rules
-
View activity - Show recent decisions from audit log
-
Suggest patterns - Find frequently approved patterns to add
-
Clear cache - Remove cached decisions
-
Continue-check status - Show if continue-check is enabled and recent activity
-
Enable continue-check - Enable the Stop hook for this project
-
Disable continue-check - Disable the Stop hook for this project
-
Update - Check for and apply hook updates
-
Uninstall - Remove the hook
Reference
Config Management
View config: Read and display merged config from:
-
Global: ~/.claude/auto-approve/config.md
-
Project: .claude/auto-approve.md (if exists)
Add to Always Allow:
-
Default to project level (.claude/auto-approve.md )
-
Create file if needed
-
Add pattern to ## Always Allow section
Add to Always Ask:
- Same as above, add to ## Always Ask section
Add Safe Tool:
- Add to ## Safe Tools section
Add Custom Rule:
- Add to ## Custom Rules section
Audit & Maintenance
View recent activity: Read ~/.claude/auto-approve/audit.log , show recent decisions.
Suggest patterns: Parse audit.log for frequently manually-approved patterns, suggest adding to config.
Clear cache:
rm -rf ~/.claude/auto-approve/cache/*
Show cache stats:
ls ~/.claude/auto-approve/cache/ | wc -l
Update Hook
Check for newer version:
-
Compare installed version: grep "^VERSION=" ~/.claude/auto-approve/auto-approve.sh
-
Compare to skill directory version: grep "^VERSION=" "$SKILL_DIR/auto-approve.sh"
-
If skill directory is newer, copy and replace
Uninstall
-
Confirm with user
-
Remove hook from ~/.claude/settings.json
-
Optionally delete ~/.claude/auto-approve/ directory
-
Change the Status line to Status: not installed
Continue Check Management
View continue-check status:
-
Check if enabled globally: grep -A2 "## Continue Check" ~/.claude/auto-approve/config.md
-
Check if enabled for project: grep -A2 "## Continue Check" .claude/auto-approve.md 2>/dev/null
-
Show recent activity: grep -E "CONTINUE|STOP" ~/.claude/auto-approve/audit.log | tail -20
Enable continue-check for project:
-
Create/update .claude/auto-approve.md
-
Add or update ## Continue Check section with - enabled: true
Disable continue-check for project:
-
Create/update .claude/auto-approve.md
-
Add or update ## Continue Check section with - enabled: false
Config File Locations
Scope File When to use
Global ~/.claude/auto-approve/config.md
User-wide defaults
Project .claude/auto-approve.md
Project-specific rules
Default to project level when adding patterns, unless:
-
User says "global" or "for all projects"
-
No .claude/ directory in project
FAQ
Q: Why did I have to approve that command? A: Check audit.log for the decision reason. The command either:
-
Wasn't in Safe Tools
-
Didn't match any Always Allow pattern
-
Haiku wasn't confident it was safe
Q: What's the difference between Safe Tools and Always Allow? A: Safe Tools matches exact tool names (Read, Glob, etc.). Always Allow matches patterns in the full tool_name:tool_input string.
Q: How do I always approve npm commands? A: Add npm to Always Allow section (matches any command containing "npm").
Q: How do I make Haiku more permissive for this project? A: Add Custom Rules like "Always approve writes to src/ and test/"
Installation (only when Status is "not installed")
Run these steps only if the Status line above says "not installed":
- Create directories:
mkdir -p ~/.claude/auto-approve/cache
- Copy files from skill directory:
cp "$SKILL_DIR/auto-approve.sh" ~/.claude/auto-approve/auto-approve.sh chmod +x ~/.claude/auto-approve/auto-approve.sh cp "$SKILL_DIR/config.md" ~/.claude/auto-approve/config.md
- Add PermissionRequest hook to ~/.claude/settings.json:
Read existing settings and merge this hook config. Use the expanded absolute path (not ~ ):
{ "hooks": { "PermissionRequest": [ { "hooks": [ { "type": "command", "command": "/home/username/.claude/auto-approve/auto-approve.sh", "timeout": 35000 } ] } ] } }
Replace /home/username with the actual home directory path (use $HOME to determine it).
- Add Stop hook to ~/.claude/settings.json:
{ "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "/home/username/.claude/auto-approve/continue-check.sh", "timeout": 35000 } ] } ] } }
- Copy continue-check script:
cp "$SKILL_DIR/continue-check.sh" ~/.claude/auto-approve/continue-check.sh chmod +x ~/.claude/auto-approve/continue-check.sh
Update this skill file: Change the Status line to Status: installed so future invocations skip installation.
Confirm installation complete.