skills/chrome-cdp/SKILL.md
This skill should be used when the user asks to "inspect this page in Chrome", "debug what's happening in my browser", "read the browser console logs", "interact with the page open in Chrome", or "attach to my live Chrome session". Interacts with the user's local Chrome browser session via Chrome DevTools Protocol — no extension, no Puppeteer — but only after explicit user approval to inspect, debug, or interact with an open tab.
npx skillsauth add b-open-io/prompts chrome-cdpInstall 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.
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
tools
This skill should be used when a Claude Code session needs to keep working after Anthropic usage runs out, or when the user asks to run the Claude Code harness on GPT-5.6 Sol. Trigger phrases include "my Anthropic usage ran out", "I'm out of Claude usage", "usage limit reached, what now", "keep working on another model", "run Claude Code on GPT-5.6 Sol", "use GPT-5.6 Sol as the model", "set up claudex", "claudex isn't working", "route the harness through CLIProxyAPI", or "bill against my ChatGPT/Codex subscription". It stands up a local proxy so the Claude Code CLI runs on OpenAI's Codex backend as an escape hatch, and diagnoses that setup when it drifts. macOS + Homebrew.
testing
This skill should be used when the user asks to "open Visual Wayfinder", "answer a Wayfinder ticket visually", "turn this decision into a configurator", "show Wayfinder choices as a dashboard", "prototype the Wayfinder questionnaire", or wants interactive choice cards, tradeoff controls, rankings, ranges, toggles, and consequence previews for one active Wayfinder decision. It wraps the Wayfinder skill and JSON Render; it never replaces the tracker or resolves more than the active decision.
development
This skill should be used when the user asks to "make a visual proposal", "write this up so I can share it", "present these options visually", "diagram the trade-offs", "turn this plan into something reviewable", or requests a shareable design pitch, architecture proposal, RFC, options comparison, or visual roadmap for work that has not been built. It produces one self-contained, theme-aware HTML page led by grounded diagrams. Use visual-review instead for completed code changes; do not use this skill for internal task tracking.
tools
This skill should be used when the user asks to "add plugin settings", "make a plugin configurable", "store per-project plugin configuration", "use settings.local.json", "create a plugin state file", "expose skill settings in Agent Master", or "add a skill interface". Distinguishes official Claude Code settings from project-owned configuration and documents bOpen Agent Master skill interface discovery.