"I didn't see a
--dangerously-skip-permissionsflag for Claude Chrome... so I made one."
You're vibing with Claude in Chrome, building something cool, when suddenly:
π PERMISSION REQUIRED
Claude wants to navigate to example.com
[Allow Once] [Allow for Session] [Deny]
Every. Single. Time.
You trust Claude. Claude trusts you. Why are we doing this dance?
An AppleScript that runs in the background and automatically smashes that approve button faster than you can say "I accept the consequences of my actions."
βββββββββββββββββββββββββββββββββββ
β Claude Permission Popup β
β β
β Claude wants to do a thing β
β β
β [Allow Once] [Allow Session] β
βββββββββββββββββββββββββββββββββββ
β
β 0.1 seconds later
βΌ
βββββββββββββββββββββββββββββββββββ
β β
β β¨ APPROVED β¨ β
β β
β You didn't even see it. β
β β
βββββββββββββββββββββββββββββββββββ
git clone https://github.com/chadboyda/claude-chrome-yolo.git
cd claude-chrome-yolomkdir -p ~/scripts
cp claude-auto-approve.scpt ~/scripts/
cp claude-auto-approve.sh ~/scripts/
chmod +x ~/scripts/claude-auto-approve.shThe script needs to click buttons on your behalf. macOS will ask for permission.
- Open System Settings β Privacy & Security β Accessibility
- Click the + button
- Navigate to
/usr/bin/osascript(pressCmd+Shift+Gand paste the path) - Enable the toggle
cp com.claude.autoapprove.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.claude.autoapprove.plistlaunchctl list | grep claude
# Should show: XXXX 0 com.claude.autoapproveThat's it. There is no usage. It just works.
Every time a Claude for Chrome permission popup appears, it gets auto-approved via Cmd+Return (the keyboard shortcut for "Allow for Session").
# Start manually (if not using LaunchAgent)
~/scripts/claude-auto-approve.sh
# Stop the LaunchAgent
launchctl unload ~/Library/LaunchAgents/com.claude.autoapprove.plist
# Restart the LaunchAgent
launchctl unload ~/Library/LaunchAgents/com.claude.autoapprove.plist
launchctl load ~/Library/LaunchAgents/com.claude.autoapprove.plistThe main AppleScript that polls for Claude permission windows every 0.5 seconds:
on run
repeat
try
tell application "System Events"
tell process "Google Chrome"
set claudeWindows to (every window whose name starts with "Claude for Chrome")
if (count of claudeWindows) > 0 then
set claudeWindow to item 1 of claudeWindows
set frontmost to true
perform action "AXRaise" of claudeWindow
delay 0.1
keystroke return using command down
log "Auto-approved Claude permission"
end if
end tell
end tell
on error errMsg
end try
delay 0.5
end repeat
end runShell wrapper for running the AppleScript in the background:
#!/bin/bash
osascript ~/scripts/claude-auto-approve.scpt &
echo "Claude Auto-Approve running in background (PID: $!)"LaunchAgent for auto-starting on login:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.claude.autoapprove</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Users/YOUR_USERNAME/scripts/claude-auto-approve.scpt</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/claude-auto-approve.log</string>
<key>StandardErrorPath</key>
<string>/tmp/claude-auto-approve.err</string>
</dict>
</plist>Note: Replace
YOUR_USERNAMEwith your actual macOS username, or just run the install commands above which use~.
- Check if it's running:
launchctl list | grep claude - Check logs:
cat /tmp/claude-auto-approve.log - Verify accessibility permissions are granted for
/usr/bin/osascript
The script matches windows starting with "Claude for Chrome". Different Chrome profiles append their name (e.g., "Claude for Chrome - Work"). This is handled automatically.
Test detection manually:
osascript -e 'tell application "System Events" to tell process "Google Chrome" to get name of (every window whose name starts with "Claude for Chrome")'*Adjusts reading glasses*
By using this software, you acknowledge that:
-
You are disabling a security feature. The permission prompts exist to protect you from malicious websites that might try to hijack Claude to do bad things. By auto-approving everything, you're trusting that:
- Every website you visit is benign
- Claude won't be tricked by prompt injection
- You're okay with Claude having free reign over your browser
-
This is basically
sudofor your browser. Remember how your sysadmin told you not to run everything as root? Same energy. -
The author(s) are not responsible for any:
- Accidentally purchased plane tickets to Tahiti
- Embarrassing emails sent to your entire contact list
- Cryptocurrency "investments" made on your behalf
- Browser tabs opened to websites you can't explain to HR
- Existential crises caused by AI autonomy
-
You should probably only use this on trusted networks and maybe not while logged into your bank, your work Slack, or that one website you told your partner you stopped visiting.
For the security-minded folks who made it this far:
- The script only sends
Cmd+Return(Allow for Session), not permanent allows - Permissions reset when you close the Claude tab group
- The script only activates for windows named "Claude for Chrome*"
- It doesn't read any data, just sends a keyboard shortcut
But still, you know, caveat emptor and all that.
If you want some safety rails:
- Use a dedicated Chrome profile for Claude automation
- Keep sensitive accounts logged out in that profile
- Review Claude's actions periodically
- Don't leave it running when you're not actively using Claude
Or don't. I'm a README, not a cop.
MIT License - Do whatever you want, just don't blame me.
Found a bug? Want to add Windows/Linux support? PRs welcome.
Want to tell me this is a bad idea? You're probably right, but here we are.
Made with reckless abandon by someone who got tired of clicking "Allow"