← all repositories
browser-use/browser-harness

Your browser, but the LLM holds the reins

A 1k-line CDP harness that lets an agent write its own helpers while it runs your actual Chrome instance.

14.5k stars Python AgentsCoding Assistants
browser-harness
Velocity · 7d
+277
★ / day
Trend
steady
star history

What it does

Browser Harness opens a websocket to your real Chrome via the Chrome DevTools Protocol and hands the steering wheel to an LLM. The agent can click, type, navigate, and upload files through your browser as you watch. When it hits a wall—say, a site-specific flow it doesn’t know—it writes a helper function or “domain skill” to agent_helpers.py and keeps going.

The interesting bit

The harness is deliberately thin and editable: ~1,000 lines across four files, with a protected core and an agent-workspace/ folder the agent is expected to mutate. The “self-healing” claim isn’t magic; it’s just the agent generating and persisting its own glue code between runs. The project explicitly asks humans not to hand-write skills, because agent-generated ones reflect what actually worked in the browser.

Key highlights

  • Direct CDP connection to your local Chrome—no sandboxed puppet browser
  • Agent writes missing helpers and site-specific skills into editable workspace files during execution
  • Optional cloud tier (3 free concurrent browsers, proxies, captcha solving) for headless or stealth deployment
  • Setup prompt provided for Claude Code / Codex: paste and let the agent bootstrap itself
  • Community skill contributions accepted, but only agent-generated ones—PR a domain-skills/<site>/ folder after the agent figures the site out

Caveats

  • Requires enabling Chrome remote debugging and clicking through a per-attach permission popup (Chrome 144+)
  • The “you will never use the browser again” tagline is aspirational; your mileage will vary with site complexity and agent capability
  • Domain skills are off by default; flip BH_DOMAIN_SKILLS=1 to enable community playbooks

Verdict

Worth a look if you want an LLM to operate your actual browser with minimal abstraction, and you’re comfortable letting it iteratively patch its own tooling. Skip if you need guaranteed reliability today, or if the idea of an agent editing live Python files in your workspace makes you nervous.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.