**Self-Healing Browser Agent Infrastructure for LLMs**

[Browser Harness](https://github.com/browser-use/browser-harness) is a thin, editable CDP (Chrome DevTools Protocol) harness that connects an LLM directly to a real browser. Unlike traditional browser automation tools that require pre-scripted actions, Browser Harness lets the agent discover what's missing during execution — and writes its own helper code to fill the gaps. Every run improves the harness; you will never touch the browser again.

**Core Architecture (~592 lines of Python)**

The project is remarkably lean. The `install.md` handles first-time browser bootstrap, `SKILL.md` manages day-to-day usage, `src/browser_harness/` contains the protected core, and `agent-workspace/` is where the agent writes its own custom helpers and domain-specific skills. This separation means the agent can teach itself site-specific workflows — LinkedIn outreach, Amazon ordering, expense filing — and persist those skills for future runs.

The harness also ships with a free cloud browser tier: 3 concurrent browsers, proxy rotation, and CAPTCHA solving, no credit card required. For stealth operations, sub-agents, or headless deployments, this removes a significant operational burden.

---

## Key Technical Highlights

- **CDP WebSocket Direct Connect** — One persistent WebSocket to Chrome, zero intermediary layers. The agent retains full DOM control and can execute arbitrary JavaScript at any point.
- **Self-Healing Agent Workspace** — When the agent encounters an unsupported action, it writes a custom helper into `agent-workspace/agent_helpers.py` or a domain skill in `agent-workspace/domain-skills/`. The harness improves itself on every run.
- **Domain Skills Framework** — Reusable, site-specific knowledge bases that teach the agent selectors, edge cases, and flows for complex sites (Wellfound, G2, Capterra, TradingView, etc.). Skills are written by the harness during execution, not hand-crafted by humans.

---

## Real English Community Discussions

**Issue #191 — Setup challenges: Snap confinement and environment-specific blockers** *(3 comments, open)*
> "[yousefbassem95]: I spent a good chunk of time tearing this harness apart on a Linux setup, and I can tell you for a fact: it's not you, it's the tool. The 'auto-connect' logic for local instances is effectively a ghost in these environments—it spawns the process but then completely loses track of it, usually failing to find the DevToolsActivePort."
>
> "[gavmor]: I wasn't attempting to use a cloud browser, so my process never failed to establish remote connections—rather, it failed to establish a *local* connection. But `BU_CDP_WS` looks like it might work if I run the firefox lifecycle myself."

*Takeaway*: Local browser connections can fail silently in restricted environments (Snap, Lubuntu). The `BU_CDP_WS` environment variable offers a workaround by taking manual control of the browser lifecycle.

---

**Issue #155 — Hermes Agent integration: domain-skills aren't indexable; main SKILL.md rule is lazy-loaded** *(2 comments)*
> "[truffle-dev]: The footnote that 'Claude Code's `@`-import still works unchanged' is accurate but understates the overlap. Claude Code's auto-discovery has a similar shape to what you describe for Hermes, but the exact requirement is filename and path, not just frontmatter. Each skill is a directory with `SKILL.md` as the entrypoint. Personal skills must live at `~/.claude/skills//SKILL.md`; project skills at `.claude/skills/`."
>
> "[ElderOrb]: I'm also interested in browser-harness integration with Hermes. Would be awesome to get an official guide or script."

*Takeaway*: The skill discovery mechanism varies between agent runtimes. Hermes users need explicit setup guidance; the current README's brief mention undersells the integration complexity.

---

**Pull Request #55 — Add domain skills: Wellfound, G2, Capterra, TradingView, Macrotrends** *(merged)*
> "[sauravpanda]: Wellfound — DataDome + Cloudflare dual stack blocks all http_get; browser CDP resolves DataDome silently; look for `window.__APOLLO_STATE__` not `__NEXT_DATA__`; old api.angel.co is shut down. Capterra — ClaudeBot UA returns pre-rendered Markdown (not HTML!) — deliberate AI-accessibility feature; parse Markdown with regex."

*Takeaway*: Real-world domain skills reveal that many sites actively block automated scraping but expose data through CDP and AI-friendly routes. The PR demonstrates how browser-harness successfully handles sites that defeat traditional HTTP-based crawlers.

---

## Summary

Browser Harness is a minimalist but powerful approach to LLM-driven browser automation. Its self-healing architecture means the agent never hits the same wall twice, and the domain skills framework creates a compounding knowledge base. With free cloud browser access and a MIT license, it's a compelling choice for developers building autonomous web agents — especially when sites actively resist traditional scraping. The community is actively working through setup edge cases and exploring integrations with Hermes, Claude Code, and other agent runtimes.

**@browser-use** · [github.com/browser-use/browser-harness](https://github.com/browser-use/browser-harness) · ⭐ 8,967