browser-cdp

Real Chrome browser automation via CDP Proxy — access pages with full user login state, bypass anti-bot detection, perform interactive operations (click/fill/scroll), extract dynamic JavaScript-rendered content, take screenshots. Triggers (satisfy ANY one): - Target URL is a search results page (Bing/Google/YouTube search) - Static fetch (agent-reach/WebFetch) is blocked by anti-bot (captcha/intercept/empty) - Need to read logged-in user's private content - YouTube, Twitter/X, Xiaohongshu, WeChat public accounts, etc. - Task involves "click", "fill form", "scroll", "drag" - Need screenshot or dynamic-rendered page capture

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "browser-cdp" with this command: npx skills add adapted from eze-is/web-access (MIT licensed)/browser-cdp

What is browser-cdp?

browser-cdp connects directly to your local Chrome via Chrome DevTools Protocol (CDP), giving the AI agent:

  • Full login state — your cookies and sessions are carried through
  • Anti-bot bypass — pages that block static fetchers (search results, video platforms)
  • Interactive operations — click, fill forms, scroll, drag, file upload
  • Dynamic content extraction — read JavaScript-rendered DOM
  • Screenshots — capture any page at any point

Architecture

Chrome (remote-debugging-port=9222)
    ↓ CDP WebSocket
CDP Proxy (cdp-proxy.mjs) — HTTP API on localhost:3456
    ↓ HTTP REST
OpenClaw AI Agent

Setup

1. Start Chrome with debugging port

# macOS — must use full binary path (not `open -a`)
pkill -9 "Google Chrome"; sleep 2
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-port=9222 \
  --user-data-dir=/tmp/chrome-debug-profile \
  --no-first-run &

Verify:

curl -s http://127.0.0.1:9222/json/version

2. Start CDP Proxy

node ~/.openclaw/skills/browser-cdp/scripts/cdp-proxy.mjs &
sleep 3
curl -s http://localhost:3456/health
# {"status":"ok","connected":true,"sessions":0,"chromePort":9222}

API Reference

# List all tabs
curl -s http://localhost:3456/targets

# Open URL in new tab
curl -s "http://localhost:3456/new?url=https://example.com"

# Execute JavaScript
curl -s -X POST "http://localhost:3456/eval?target=TARGET_ID" \
  -d 'document.title'

# JS click (fast, preferred)
curl -s -X POST "http://localhost:3456/click?target=TARGET_ID" \
  -d 'button.submit'

# Real mouse click
curl -s -X POST "http://localhost:3456/clickAt?target=TARGET_ID" \
  -d '.upload-btn'

# Screenshot
curl -s "http://localhost:3456/screenshot?target=TARGET_ID&file=/tmp/shot.png"

# Scroll (lazy loading)
curl -s "http://localhost:3456/scroll?target=TARGET_ID&direction=bottom"

# Navigate
curl -s "http://localhost:3456/navigate?target=TARGET_ID&url=https://..."

# Close tab
curl -s "http://localhost:3456/close?target=TARGET_ID"

Tool Selection: Three-Layer Strategy

ScenarioUseReason
Public pages (GitHub, Wikipedia, blogs)agent-reachFast, low token, structured
Search results (Bing/Google/YouTube)browser-cdpagent-reach blocked
Login-gated contentbrowser-cdpNo cookies in agent-reach
JS-rendered pagesbrowser-cdpReads rendered DOM
Simple automation, isolated screenshotsagent-browserNo Chrome setup
Large-scale parallel scrapingagent-reach + parallelbrowser-cdp gets rate-limited

Decision flow:

Public content → agent-reach (fast, cheap)
Search results / blocked → browser-cdp
Still fails → agent-reach fallback + record in site-patterns

Known Limitations

  • Chrome must use a separate profile (/tmp/chrome-debug-profile)
  • Same-site parallel tabs may get rate-limited
  • Node.js 22+ required (native WebSocket)
  • macOS: use full binary path to start Chrome, not open -a

Site Patterns & Usage Log

~/.openclaw/skills/browser-cdp/references/site-patterns/   # per-domain experience
~/.openclaw/skills/browser-cdp/references/usage-log.md    # per-use tracking

Origin

Adapted from eze-is/web-access (MIT) for OpenClaw. A bug in the original (require() in ES module, reported here) is fixed in this version.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Notebooklm Skill Factory

Orchestrate NotebookLM research into SKILL.md generation and Claude Code validation in a single automated pipeline. Use when user asks to create a new Claude...

Registry SourceRecently Updated
Coding

mobile-app-developer

Expert mobile app developer specializing in native and cross-platform development for iOS and Android. Masters performance optimization, platform guidelines,...

Registry SourceRecently Updated
Coding

mobile-developer

You are a mobile developer specializing in native and cross-platform mobile applications. Use when: ios development, android development, cross-platform fram...

Registry SourceRecently Updated
Coding

Video Editor Eddie

Turn a 2-minute unedited screen recording into 1080p polished edited clips just by typing what you need. Whether it's automatically editing raw footage into...

Registry SourceRecently Updated