auto-approve

SKILL.md

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:

  1. Compare installed version: grep "^VERSION=" ~/.claude/auto-approve/auto-approve.sh
  2. Compare to skill directory version: grep "^VERSION=" "$SKILL_DIR/auto-approve.sh"
  3. If skill directory is newer, copy and replace

Uninstall

  1. Confirm with user
  2. Remove hook from ~/.claude/settings.json
  3. Optionally delete ~/.claude/auto-approve/ directory
  4. 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":

  1. Create directories:
mkdir -p ~/.claude/auto-approve/cache
  1. 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
  1. 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).

  1. Add Stop hook to ~/.claude/settings.json:
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "/home/username/.claude/auto-approve/continue-check.sh",
            "timeout": 35000
          }
        ]
      }
    ]
  }
}
  1. Copy continue-check script:
cp "$SKILL_DIR/continue-check.sh" ~/.claude/auto-approve/continue-check.sh
chmod +x ~/.claude/auto-approve/continue-check.sh
  1. Update this skill file: Change the Status line to **Status: installed** so future invocations skip installation.

  2. Confirm installation complete.

Weekly Installs
5
First Seen
Jan 25, 2026
Installed on
opencode5
claude-code5
codex3
gemini-cli3
windsurf2
antigravity2