Stable Browser

v1.0.0

Set up reliable browser automation using Chrome DevTools Protocol (CDP) instead of the flaky browser extension relay. Use when browser relay keeps disconnect...

0· 378·1 current·1 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The SKILL.md and setup script consistently implement a direct Chrome CDP setup for OpenClaw: creating a dedicated profile, launching Chrome with --remote-debugging-port, and updating ~/.openclaw/openclaw.json. Minor mismatch: the included setup script is macOS-centric (hard-coded Chrome path and creates a macOS LaunchAgent), while the documentation also documents Linux/Windows commands.
Instruction Scope
Instructions stay within the stated purpose: they launch Chrome, create a separate profile, update OpenClaw config, and optionally install an auto-start agent. They do not access unrelated system files or network endpoints beyond localhost. Be aware the script instructs the user to sign into sites in the new profile, which will persist cookies and session tokens in the created profile directory (~/.chrome-debug-profile).
Install Mechanism
No remote downloads or package installs. The skill is instruction-only with a local shell script; it writes files under the user's home (profile dir, OpenClaw config, LaunchAgents) and runs local commands only.
Credentials
No environment variables, secrets, or external credentials are requested. The script modifies user-local config and creates a Chrome profile (where the user may choose to log into accounts), which is proportionate to the stated functionality.
Persistence & Privilege
The script creates a per-user LaunchAgent (macOS) to auto-start Chrome and updates ~/.openclaw/openclaw.json. This is within scope for providing a persistent CDP endpoint, but it does grant persistent auto-start behavior—users should be aware and can opt out by not loading the LaunchAgent.
Assessment
This skill appears coherent and implements what it promises, but review and consider the following before running: - Inspect scripts before running: scripts/setup-cdp.sh is local and will create ~/.chrome-debug-profile, update ~/.openclaw/openclaw.json, and on macOS create/load ~/Library/LaunchAgents/com.openclaw.chrome-cdp.plist. - Persistence: the LaunchAgent auto-starts Chrome at login (user-level). If you don't want that, skip the LaunchAgent step or remove the plist after setup. - Profile/cookies: you will be asked to log into sites in the new profile; session cookies and tokens will be stored under ~/.chrome-debug-profile. Treat that directory as sensitive and back it up or delete it if you no longer need persistent sessions. - Platform note: the included setup script assumes macOS Chrome path; on Linux/Windows you should follow the manual-setup instructions instead or edit the script to point to your Chrome binary. - Process killing: the script uses pkill -f 'remote-debugging-port=9222' if port is in use; this may terminate other processes that were using that flag—verify before running on shared systems. - Headless flags: the documentation shows using --no-sandbox for CI/headless. Be cautious: --no-sandbox reduces security and should only be used in controlled CI environments. - Network exposure: the CDP endpoint is bound to 127.0.0.1 in these instructions (local only). Ensure you do not expose the debug port to other hosts if you want to keep it local. If you're comfortable with the above and only want a dedicated, local CDP-backed browser for automation, this skill appears appropriate. If you need higher assurance, run the script line-by-line manually and verify the created files and LaunchAgent before enabling it.

Like a lobster shell, security has layers — review code before you run it.

latestvk972bg9wpfnv5ggjn5wp0s5e0x81wdsp

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Stable Browser

Replace the unreliable browser extension relay with a direct Chrome DevTools Protocol connection.

The Problem

The OpenClaw browser extension relay (profile="chrome") frequently breaks:

  • WebSocket 403 errors
  • Port confusion (gateway port vs relay port)
  • Dropped connections mid-automation
  • "Can't reach browser control service" errors
  • Badge/tab attachment confusion

The Fix: Chrome CDP

Launch Chrome with a debug port and connect directly. No extension needed.

Quick Setup

Run the setup script to configure everything:

bash scripts/setup-cdp.sh

This will:

  1. Create a dedicated Chrome profile at ~/.chrome-debug-profile
  2. Add browser.cdpUrl to your OpenClaw config
  3. Create a LaunchAgent (macOS) so Chrome starts on login
  4. Verify the connection works

Manual Setup

If you prefer to set things up manually, see references/manual-setup.md.

Usage

After setup, always use profile="openclaw" (not profile="chrome"):

browser(action="snapshot", profile="openclaw")
browser(action="navigate", profile="openclaw", targetUrl="https://example.com")
browser(action="screenshot", profile="openclaw")

Key Differences from Extension Relay

FeatureExtension RelayCDP Direct
StabilityFrequent disconnectsRock solid
SetupInstall extension + attach tabOne-time script
Auth/CookiesShares your main ChromeDedicated profile
SpeedExtra hop through extensionDirect protocol
HeadlessNoOptional (--headless=new)

Dedicated Profile

The CDP browser uses ~/.chrome-debug-profile — a separate Chrome profile. This means:

  • Log into sites once, stays logged in
  • Your main Chrome is untouched
  • No extension conflicts
  • Survives Chrome updates

Tips

  • First run: Log into any sites you need (Google, GitHub, X, LinkedIn, etc.)
  • Multiple tabs: CDP manages all tabs — use targetId to pin a specific tab
  • Headless mode: Add --headless=new to the launch command for invisible operation
  • Port conflict: If port 9222 is taken, change it in both the launch command and config
  • Restart Chrome: pkill -f 'remote-debugging-port=9222' && sleep 1 && bash scripts/setup-cdp.sh

Troubleshooting

  • "Can't reach browser": Chrome isn't running with debug port. Run setup-cdp.sh or launch manually
  • Port 9222 in use: Another Chrome or process grabbed it. Kill it: lsof -i :9222
  • Stale session: Chrome crashed. Kill and restart: pkill -f chrome-debug-profile
  • Profile corruption: Delete ~/.chrome-debug-profile and re-run setup

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…