From 2fbe7b487b860da4e67c0e04cdb78a61501f4d54 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 21 Mar 2026 12:32:51 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20bin/chrome-cdp=20=E2=80=94=20quit=20Chr?= =?UTF-8?q?ome=20and=20relaunch=20with=20CDP=20in=20one=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quits Chrome gracefully, waits for full exit, relaunches with --remote-debugging-port, polls until CDP is ready. Usage: chrome-cdp [port] Co-Authored-By: Claude Opus 4.6 (1M context) --- bin/chrome-cdp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 bin/chrome-cdp diff --git a/bin/chrome-cdp b/bin/chrome-cdp new file mode 100755 index 00000000..a0b7e8bb --- /dev/null +++ b/bin/chrome-cdp @@ -0,0 +1,49 @@ +#!/bin/bash +# Launch Chrome with CDP (remote debugging) enabled. +# Usage: chrome-cdp [port] +# +# Chrome MUST be fully quit before running this — if it's already running, +# it ignores --remote-debugging-port and opens in the existing session. + +PORT="${1:-9222}" +CHROME="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" + +if ! [ -f "$CHROME" ]; then + echo "Chrome not found at $CHROME" >&2 + exit 1 +fi + +# Check if Chrome is running +if pgrep -f "Google Chrome" >/dev/null 2>&1; then + echo "Chrome is still running. Quitting..." + osascript -e 'tell application "Google Chrome" to quit' 2>/dev/null + + # Wait for it to fully exit + for i in $(seq 1 20); do + pgrep -f "Google Chrome" >/dev/null 2>&1 || break + sleep 0.5 + done + + if pgrep -f "Google Chrome" >/dev/null 2>&1; then + echo "Chrome won't quit. Force-killing..." >&2 + pkill -f "Google Chrome" + sleep 1 + fi +fi + +echo "Launching Chrome with CDP on port $PORT..." +"$CHROME" --remote-debugging-port="$PORT" --restore-last-session & +disown + +# Wait for CDP to be available +for i in $(seq 1 30); do + if curl -s "http://127.0.0.1:$PORT/json/version" >/dev/null 2>&1; then + echo "CDP ready on port $PORT" + echo "Run: \$B connect chrome" + exit 0 + fi + sleep 1 +done + +echo "CDP not available after 30s. Chrome may have started without debug port." >&2 +exit 1