Browser Harness
BuiltSignature capability
The self-healing design: when a helper the agent needs does not exist (say upload_file()), the agent edits helpers.py mid-task, adds it, and continues, so the toolset grows to fit the task instead of the task bending to a fixed API.
What it is
It talks to Chrome directly over the Chrome DevTools Protocol via a single websocket, with no Playwright or Selenium layer in between. A tiny daemon bootstraps a dedicated debug-profile Chrome (sidestepping the Chrome 136+ remote-debugging prompt), and run.py execs plain Python with the CDP helpers preloaded, so the agent just writes Python against a live browser. helpers.py holds the primitive tool calls (navigate, click, type, screenshot, JS eval, file upload, iframe targeting) and is deliberately editable: the agent extends it when something is missing. It also supports free remote/cloud browsers for parallel sub-agents and stealth, and a growing library of agent-written domain skills that capture the durable shape of a site so the next run does not re-pay the discovery cost.
Highlights
- Built directly on CDP via cdp-use 1.4.5, no Playwright/Selenium abstraction; one websocket to Chrome and nothing between
- Self-healing: the agent edits helpers.py mid-task to add missing functions, so the harness grows to fit the task
- Core is genuinely thin, roughly 900 lines of Python across helpers.py (394), daemon.py (417), and run.py (65)
- Dedicated debug-profile Chrome (~/.browser-harness-chrome) auto-launched by the daemon to dodge the Chrome 136+ remote-debugging prompt that wedges the CDP port
- Free remote browsers for parallel sub-agents, proxies, and captcha solving, each isolated via a distinct BU_NAME
- Agent-authored domain-skills and interaction-skills (iframes, shadow-DOM, downloads, drag-drop) that agents contribute back via PR after each run
Tech · Python 3.11+, Chrome DevTools Protocol (cdp-use 1.4.5), websockets 16.0, fetch-use 0.4.0, browser-use cloud for remote browsers