- 🔴 先探测、能复用就复用:动手第一件事查 9223 上有没有已在跑的实例, 有就直接连(netstat / curl /json/version 两种探法),⛔ 不再起第二个。 专治「为了量一次尺寸就另起一个 headless 实例」这类小活 (用户原话:「为什么要重新开浏览器,先检查之前是否开过浏览能否复用」) - 🔴 一个页面只开一个标签:同一页面全程一个标签,换路由改 hash、换视口走 Emulation, 只有并排对比两个不同页面才开第二个、用完立刻关;收工前 list_tabs() 复核, 不给自己留尾巴、也不关别人的页 (用户原话:「后续调试网页 一个页面开一个标签就行了不要反复开」) - ⛔ 别自建取数通道:要 DOM 数值就用 js(...),别为「量一个高度」另写脚本去起 Chrome 同文件另有 2026-10-07 定案的「用 browser-harness 调 AI 工具(ChatGPT 等)的提问方法」一节, 一直是未提交状态,随本次一并入库(常驻后台任务守端口、独立实例 9223、profile 复用保登录态)。
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.
Try browser-harness in Browser Use Cloud or paste the setup prompt into your coding agent.
● 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:
Install or upgrade browser-harness to the latest stable version with uv using Python 3.12, register the skill from `browser-harness skill`, and connect it to my browser. Ask whether I want local browser recordings enabled; default to no and preserve my existing preference on upgrades. Follow https://github.com/browser-use/browser-harness/blob/main/install.md if setup or connection fails.
The agent will open chrome://inspect/#remote-debugging. Tick the checkbox so the agent can connect to your browser:
Click Allow when the per-attach popup appears (Chrome 144+):
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.
- Grab a key at cloud.browser-use.com/new-api-key
- Or let the agent sign up itself via docs.browser-use.com/llms.txt (setup flow + challenge context included).
Architecture (~1k lines across 4 core files)
install.md— first-time install and browser bootstrapSKILL.md— day-to-day usagesrc/browser_harness/— protected core package${XDG_CONFIG_HOME:-~/.config}/browser-harness/agent-workspace/agent_helpers.py— helper code the agent edits${XDG_CONFIG_HOME:-~/.config}/browser-harness/agent-workspace/domain-skills/— reusable site-specific skills the agent edits
Plain browser-harness helper calls attach to the running Chrome/Chromium CDP endpoint. For isolated automation, launch Chrome yourself with --remote-debugging-port and pass BU_CDP_URL, or use a Browser Use cloud browser.
Development
From a checkout, use ./browser-harness to run the current working tree without activating a virtualenv or depending on the globally installed command:
./browser-harness <<'PY'
print(page_info())
PY
Normal agent-facing docs should keep using browser-harness; the ./browser-harness launcher is only for local repo testing.
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
domain-skills/<site>/folder copied into this repo'sagent-workspace/domain-skills/examples — 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 domain skills from the agent workspace. This repo's agent-workspace/domain-skills/ directory contains examples to contribute via PR.
The Bitter Lesson of Agent Harnesses · Web Agents That Actually Learn