Skip to main content

browser-harness

Always use browser-harness for any web interaction: automation, scraping, testing, or site/app work.

Source facts

Repository
browser-use/browser-worlds-tinker-rl
Last source activity
August 8, 2026 at 10:12
Detected SKILL.md language
English
Stars
4
Forks
3

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
browser-harness
description
Always use browser-harness for any web interaction: automation, scraping, testing, or site/app work.
# browser-harness Direct browser control via CDP. ## Usage - Helpers are pre-imported. `run.py` calls `ensure_daemon()` before `exec`. - First navigation is `new_tab(url)`, not `goto_url(url)`. ## Page Workflow - Prefer to find elements with the accessibility tree, not screenshots: `cdp("Accessibility.getFullAXTree")["nodes"]` has every element's role, name, and `backendDOMNodeId` — filter in Python before printing (it is thousands of nodes). Coordinates: `q = cdp("DOM.getBoxModel", backendNodeId=n)["model"]["content"]; x, y = sum(q[0::2])/4, sum(q[1::2])/4` (viewport px, ready for `click_at_xy`; negative/oversized means scroll first). - Clicking: AX node -> box center -> `click_at_xy(x, y)` -> verify with a targeted `js(...)`/`page_info()` check. - Fall back to raw HTML via `js(...)` only when the AX tree lacks the element (canvas, exotic widgets); screenshot when layout or imagery matters. - After navigation, call `wait_for_load()`. - If the current tab is stale or internal, call `ensure_real_tab()`. - Use `js(...)` for DOM inspection or extraction when coordinates are the wrong tool. - Login walls: stop and ask. Exception: use available SSO automatically when Chrome is already signed in; still stop for passwords, MFA, consent, or ambiguous account choice. - Raw CDP is available with `cdp("Domain.method", ...)`.
View on GitHub