.claude/skills/chrome-remote-debugging-setup/SKILL.md
Fix Chrome --remote-debugging-port silently failing to open any port. Use when: (1) Chrome launches with --remote-debugging-port=9222 but curl to 127.0.0.1:9222 returns "exit code 7" (connection refused), (2) lsof shows no LISTEN on the debugging port despite Chrome having the flag in its process args, (3) Setting up chrome-devtools-mcp or any CDP-based tool with a real Chrome instance. The root cause is that Chrome requires --user-data-dir when --remote-debugging-port is used, and silently ignores the port flag without it (error only visible on stderr).
npx skillsauth add Dbochman/dotfiles chrome-remote-debugging-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Chrome silently ignores --remote-debugging-port unless --user-data-dir is also
specified. No error appears in the browser UI — the flag is simply dropped. The actual
error message ("DevTools remote debugging requires a non-default data directory") only
appears on stderr when Chrome is launched from a terminal.
curl -s http://127.0.0.1:9222/json/version returns connection refusedlsof -i :9222 shows nothing listening despite Chrome running with the flagpgrep -fl "remote-debugging" confirms the flag is in Chrome's process args/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.chrome-debug-profile"
Or for Chrome Canary:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.chrome-debug-profile"
The --remote-debugging-port flag is only honored by the first Chrome process.
If Chrome is already running, launching again just opens a new window in the existing
process (ignoring all command-line flags).
pkill -9 "Google Chrome" # or "Google Chrome Canary"
sleep 2
# Then launch with flags
curl -s http://127.0.0.1:9222/json/version
Should return JSON with Browser, Protocol-Version, webSocketDebuggerUrl fields.
In .claude/mcp.json:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--no-usage-statistics", "--browserUrl", "http://127.0.0.1:9222"]
}
}
}
Claude Code must be restarted after changing MCP config.
curl -s http://127.0.0.1:9222/json/version | python3 -m json.tool
--user-data-dir creates a separate Chrome profile. It won't have your existing
logins/extensions unless you point it at your real profile directory.--user-data-dir was the actual cause.alias chrome-debug='...' in ~/.zshrctools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.