From bopen-tools
Connects to a live Chrome browser session via DevTools Protocol to inspect pages, read console logs, execute JavaScript, click elements, and navigate. Requires explicit user approval.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:chrome-cdpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Lightweight Chrome DevTools Protocol CLI. Connects directly via WebSocket — no Puppeteer, no extensions, instant connection, handles 100+ tabs. Operates on the user's **live browser session** with existing logins and state.
Lightweight Chrome DevTools Protocol CLI. Connects directly via WebSocket — no Puppeteer, no extensions, instant connection, handles 100+ tabs. Operates on the user's live browser session with existing logins and state.
Chrome with remote debugging enabled. If list fails with "Chrome remote debugging not enabled", run the enable command to open the settings page:
bun ${SKILL_PATH}/scripts/cdp.ts enable
Then tell the user: "I've opened Chrome's remote debugging settings. Please toggle the switch to enable it, then I'll try again."
Bun runtime (already available in this environment).
Auto-setup flow: Always try list first. If it fails, run enable and ask the user to toggle. Then retry list.
Trigger on explicit user approval to:
Do NOT activate speculatively. The user must ask you to interact with Chrome.
All commands use bun ${SKILL_PATH}/scripts/cdp.ts. The <target> is a unique prefix of the targetId shown by list. Copy the prefix exactly as shown.
bun ${SKILL_PATH}/scripts/cdp.ts list
Always run list first to see available tabs and get target prefixes.
bun ${SKILL_PATH}/scripts/cdp.ts snap <target>
Returns a semantic tree of the page — roles, names, values. Best for understanding page structure without raw HTML noise.
bun ${SKILL_PATH}/scripts/cdp.ts eval <target> "document.title"
bun ${SKILL_PATH}/scripts/cdp.ts eval <target> "document.querySelectorAll('h1').length"
bun ${SKILL_PATH}/scripts/cdp.ts eval <target> "[...document.querySelectorAll('a')].map(a => a.href).join('\\n')"
Runs in the page context — full DOM access, can call page functions, read variables.
bun ${SKILL_PATH}/scripts/cdp.ts nav <target> "https://example.com"
Navigates and waits for page load (up to 30s).
bun ${SKILL_PATH}/scripts/cdp.ts click <target> "button.submit"
bun ${SKILL_PATH}/scripts/cdp.ts click <target> "[data-testid='login-btn']"
bun ${SKILL_PATH}/scripts/cdp.ts type <target> "Hello world"
Uses Input.insertText — works in cross-origin iframes where JS eval is blocked.
bun ${SKILL_PATH}/scripts/cdp.ts shot <target>
Saves to /tmp/screenshot.png.
bun ${SKILL_PATH}/scripts/cdp.ts html <target> # full page
bun ${SKILL_PATH}/scripts/cdp.ts html <target> ".sidebar" # specific selector
bun ${SKILL_PATH}/scripts/cdp.ts stop # all daemons
bun ${SKILL_PATH}/scripts/cdp.ts stop <target> # specific daemon
DevToolsActivePort file when remote debugging is enabled1. bun cdp.ts list # see what's open
2. bun cdp.ts snap 6BE827FA # understand the page
3. bun cdp.ts eval 6BE827FA "document.title" # extract specific data
4. bun cdp.ts click 6BE827FA ".btn-submit" # interact
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsConnects AI agents to a live Chrome session via CDP to interact with open tabs, logged-in accounts, and current page state. Supports screenshots, accessibility snapshots, HTML extraction, and JavaScript evaluation.
Browser automation via Chrome DevTools Protocol (CDP) without MCP server. Launches Chrome, navigates, executes JS, captures screenshots, and selects DOM elements.
Automates browser tasks via Chrome DevTools Protocol: launch Chrome, navigate pages, extract DOM, take screenshots, and pick elements interactively.