项目文件夹

0
Alezander9 6e86f7cf2b feat(ipc): split BH_RUNTIME_DIR (sock) from BH_TMP_DIR (logs/screenshots)
A single BH_TMP_DIR conflated two storage concerns with opposite
constraints: sock/port/pid files are bound by AF_UNIX sun_path (104
bytes on macOS, 108 on Linux) and must live in a short path; log files
and screenshots have no length limit and benefit from a deep, indexable,
persistent location. Forcing both into one dir means callers either
bury screenshots under /tmp or risk silently overrunning sun_path.

Decouple with a new BH_RUNTIME_DIR for sock/port/pid. BH_TMP_DIR keeps
log/screenshot duty. BH_RUNTIME_DIR falls back to BH_TMP_DIR, then to
/tmp on POSIX or tempfile.gettempdir() on Windows, so single-dir callers
keep working unchanged.
2026-05-06 14:37:03 -07:00
2026-05-06 01:31:23 -07:00
2026-04-18 15:25:45 -07:00

Browser Harness

Browser Harness ♞

Connect an LLM directly to your real browser with a thin, editable CDP harness. For browser tasks where you need complete freedom.

One websocket to Chrome, nothing between. The agent writes what's missing during execution. The harness improves itself every run.

  ● agent: wants to upload a file
  │
  ● agent-workspace/agent_helpers.py → helper missing
  │
  ● agent writes it                         agent_helpers.py
  │                                                       + custom helper
  ✓ file uploaded

You will never use the browser again.

Setup prompt

Paste into Claude Code or Codex:

Set up https://github.com/browser-use/browser-harness for me.

Read `install.md` and follow the steps to install browser-harness and connect it to my browser.

The agent will open chrome://inspect/#remote-debugging. Tick the checkbox so the agent can connect to your browser:

Remote debugging setup

Click Allow when the per-attach popup appears (Chrome 144+):

Allow remote debugging popup

See agent-workspace/domain-skills/ for example tasks.

Free Browser Use Cloud browsers

Stealth, sub-agents, or headless deployment.
Browser Use Cloud free tier: 3 concurrent browsers, proxies, captcha solving, and more. No card required.

Architecture (~1k lines across 4 core files)

  • install.md — first-time install and browser bootstrap
  • SKILL.md — day-to-day usage
  • src/browser_harness/ — protected core package
  • agent-workspace/agent_helpers.py — helper code the agent edits
  • agent-workspace/domain-skills/ — reusable site-specific skills the agent edits

Contributing

PRs and improvements welcome. The best way to help: contribute a new domain skill under agent-workspace/domain-skills/ for a site or task you use often (LinkedIn outreach, ordering on Amazon, filing expenses, etc.). Each skill teaches the agent the selectors, flows, and edge cases it would otherwise have to rediscover.

  • Skills are written by the harness, not by you. Just run your task with the agent — when it figures something non-obvious out, it files the skill itself (see SKILL.md). Please don't hand-author skill files; agent-generated ones reflect what actually works in the browser.
  • Open a PR with the generated agent-workspace/domain-skills/<site>/ folder — small and focused is great.
  • Bug fixes, docs tweaks, and helper improvements are equally welcome.
  • Browse existing skills (github/, linkedin/, amazon/, ...) to see the shape.

If you're not sure where to start, open an issue and we'll point you somewhere useful.

Domain skills

Set BH_DOMAIN_SKILLS=1 to enable agent-workspace/domain-skills/ — community-contributed per-site playbooks goto_url surfaces by domain. Contribute via PR.


The Bitter Lesson of Agent Harnesses · Web Agents That Actually Learn