Agent skill · software engineering · aradotso
browser-harness-self-healing
browser-harness-self-healing — an agent skill for coding agents.
Why this skill is useful
Adds a self-healing browser automation framework with executable scripts that allow LLMs to perform complex web tasks via CDP.
What it needs
Requires python installed locally. About 5k tokens when loaded. Last updated 2026-07-09. 70 stars on the source repository.
What this skill does
bash git clone https://github.com/browser-use/browser-harness cd browser-harness cat install.md bash pip install -r requirements.txt bash macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port=9222 \ --user-data-dir=/tmp/chrome-debug Linux google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug Windows "C:\Program Files\Google\Chrome\Application\chrome.exe" ^ --remote-debugging-port=9222 --user-data-dir=C:\tmp\chrome-debug bash python daemon.py bash python run.py python Inside run.py context — helpers are already imported navigate("https://github.com/browser-use/browser-harness") click('[aria-label="Star this repository"]') python navigate("https://example.com/form") typetext("#name", "Jane Doe") typetext("#email", "jane@example.com") click('button[type="submit"]') waitforselector(".success-message") python Navigate to a URL navigate(url: str) Click an element by CSS selector click(selector: str) Type text into an input typetext(selector: str, text: str) Wait for an element to appear waitforselector(selector: str, timeout: int = 5000) Get text content of an element gettext(selector: str) -> str Evaluate arbitrary JS in the page evaluate(js: str) -> Any Take a screenshot (returns base64 PNG) screenshot() -> str Scroll the page scroll(x: int, y: int) Upload a file (agent writes this if missing) uploadfile(selector: str, path: str) ● agent: wants to upload a file │ ● helpers.py → uploadfile() missing │ ● agent edits helpers.py helpers.py 192 → 199 lines │ + uploadfile() ✓ file uploaded Agent (Python) → run.py → helpers.py │ socket bridge │ daemon.py │ CDP WebSocket (port 9222) │ Chrome browser python Set your key before starting daemon import os os.environ["BROWSERUSEAPIKEY"] = "your-key-here" # use env var, never hardcode bash export BROWSERUSEAPIKEY=$BROWSERUSEAPIKEY python daemon.py domain-skills/ github/ linkedin/ amazon/ ... text Set up https://github.com/browser-use/browser-harness for me. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aradotso/browser-harness-self-healing