This guide provides a one-click solution to create a custom version of Chrome that bypasses the "Allow remote debugging?" prompt. This is ideal for developers using Chrome DevTools Protocol (CDP), Puppeteer, or Selenium on newer macOS versions like Tahoe.
Copy and paste the entire block below into your Terminal and hit Enter.
cat << 'EOF' > ~/Desktop/create_chrome_debug.sh
#!/bin/bash
APP_PATH="/Applications/Chrome Debug.app"
mkdir -p "$APP_PATH/Contents/MacOS"
mkdir -p "$APP_PATH/Contents/Resources"
# Create the launch script
cat << 'INNER_EOF' > "$APP_PATH/Contents/MacOS/core_script"
#!/bin/bash
# Launch Chrome with the required flags for CDP
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="$HOME/Documents/ChromeDebugProfile" &
INNER_EOF
chmod +x "$APP_PATH/Contents/MacOS/core_script"
# Create the app metadata
cat << 'INNER_EOF' > "$APP_PATH/Contents/Info.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>core_script</string>
<key>CFBundleIconFile</key>
<string>appIcon</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleName</key>
<string>Chrome Debug</string>
</dict>
</plist>
INNER_EOF
# Copy the official Chrome icon if it exists
if [ -f "/Applications/Google Chrome.app/Contents/Resources/appIcon.icns" ]; then
cp "/Applications/Google Chrome.app/Contents/Resources/appIcon.icns" "$APP_PATH/Contents/Resources/appIcon.icns"
fi
echo "✅ Success! 'Chrome Debug.app' is now in your Applications folder."
EOF
bash ~/Desktop/create_chrome_debug.sh && rm ~/Desktop/create_chrome_debug.sh- Locate the App: Open your Applications folder and find Chrome Debug.
- Add to Dock: Drag the icon to your Dock for quick access.
- The "Clean Start" Rule: To ensure the debugging flags are active, completely Quit any running instances of Google Chrome before clicking the Chrome Debug icon. If a "normal" version is already running, the flags will be ignored.
Once the app is running, use these methods to confirm the prompt has been bypassed and the port is open:
Open any browser and go to:
http://localhost:9222/json/version
- Success: You will see a JSON block with version details.
- Failure: "Site can't be reached" (Chrome was already open in standard mode).
Run this command to see if port 9222 is active:
lsof -i :9222- Success: You will see
Google Chorcore_scrilisted asLISTEN.
Type this into your Chrome address bar:
chrome://inspect/#devices
- Ensure "Discover network targets" is checked. You should see your open tabs listed under "Remote Target."
On macOS Tahoe, Chrome enforces stricter isolation for debugging. By using the --user-data-dir flag, we create a dedicated profile specifically for your debugging session. This tells Chrome the session is isolated from your primary data, which suppresses the manual security confirmation prompt.
Want to customize the port? Change
9222in the script to any available port (e.g.,9333) to avoid conflicts with other development tools.