From browser-harness
Drives the user's real Chrome via CDP for automation, scraping, testing and web interaction. Uses screenshots + coordinate clicks by default, with fallback to DOM selectors.
How this skill is triggered — by the user, by Claude, or both
Slash command
/browser-harness:browser-harnessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Direct browser control via CDP. You drive the user's real browser with a Rust-native CLI through the `browser-harness` command.
Direct browser control via CDP. You drive the user's real browser with a Rust-native CLI through the browser-harness command.
This skill is instructions only. It assumes the browser-harness command is already on $PATH. If command -v browser-harness fails, do the one-time install in references/install.md first, then continue. Installation and browser-connection setup are a prerequisite; once browser-harness page-info prints page info, never run install/connection steps again as part of normal work.
browser-harness new-tab <<'JSON'
{"daemon_name":"default","url":"https://docs.browser-use.com"}
JSON
browser-harness page-info <<'JSON'
{"daemon_name":"default"}
JSON
browser-harness — it's on $PATH after install. No cd, no cargo run.<<'JSON' for every multi-line command. It prevents shell quote mangling.new-tab(url), not goto(url) — goto runs in the user's active tab and clobbers their work.browser-harness screenshot to understand the page, find visible targets, and decide whether you need a click, a selector, or more navigation.browser-harness screenshot → read the pixel off the image → browser-harness click-at-xy → browser-harness screenshot to verify. Suppress the Playwright-habit reflex of "locate first, then click" — no getBoundingClientRect, no selector hunt. Drop to DOM only when the target has no visible geometry. Hit-testing happens in Chrome's browser process, so clicks pass through iframes / shadow DOM / cross-origin without extra work.browser-harness http-get. No browser needed for static pages.browser-harness wait-for-load.browser-harness ensure-real-tab.browser-harness page-info is the simplest "is this alive?" check; screenshots are the default way to verify whether a visible action worked.browser-harness js for inspection/extraction when a screenshot shows coordinates are the wrong tool.browser-harness wait-for-element, browser-harness fill-input, browser-harness wait-for-network-idle.browser-harness cdp.After every meaningful action, re-screenshot before assuming it worked.
Use remote for parallel sub-agents (each gets an isolated browser via a distinct BU_NAME) or on a headless server. BROWSER_USE_API_KEY must be set.
browser-harness create-browser <<'JSON'
{"timeout":120}
JSON
BU_NAME=work browser-harness ensure-daemon <<'JSON'
{"name":"work","env":{"BU_CDP_WS":"<cdpWsUrl-from-create-browser>","BU_BROWSER_ID":"<browser-id>"}}
JSON
BU_NAME=work browser-harness new-tab <<'JSON'
{"daemon_name":"work","url":"https://example.com"}
JSON
create-browser returns id, cdpWsUrl, and liveUrl. Share liveUrl with the user if they need to watch. Running remote daemons bill until timeout.
If you struggle with a specific UI mechanic, read the matching file under ${CLAUDE_PLUGIN_ROOT}/interaction-skills/ before inventing an approach. Available: browser-wall, connection, cookies, cross-origin-iframes, dialogs, downloads, drag-and-drop, dropdowns, iframes, network-requests, print-as-pdf, profile-sync, screenshots, scrolling, shadow-dom, tabs, uploads, viewport.
Community per-site playbooks live in ${CLAUDE_PLUGIN_ROOT}/domains/<host>/ and are off by default. Set BH_DOMAIN_SKILLS=1 to enable them; when enabled and the task is site-specific, read every file in the matching <site>/ directory before inventing an approach.
Input.dispatchMouseEvent goes through iframes/shadow/cross-origin at the compositor level.interaction-skills/ only when those are the wrong tool.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub yangchuansheng/browser-harness-rust --plugin browser-harness