with one click
browser-harness
// Use Browser Harness for direct Chrome/Edge browser control, browser diagnostics, and durable domain-skill learning while preserving Bravo's business safety gates.
// Use Browser Harness for direct Chrome/Edge browser control, browser diagnostics, and durable domain-skill learning while preserving Bravo's business safety gates.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | browser-harness |
| description | Use Browser Harness for direct Chrome/Edge browser control, browser diagnostics, and durable domain-skill learning while preserving Bravo's business safety gates. |
| triggers | ["browser harness","use browser harness","run browser harness","use browser harness for direct chrome/edge browser control"] |
Browser Harness is Bravo's direct browser-control layer. Use it when a task needs a real logged-in browser, authenticated web app navigation, UI inspection, screenshots, form testing, or repeatable site-specific automation.
Bravo now treats browser work as compounding procedural memory: every time a site reveals a durable pattern, selector, wait, API route, auth wall, or trap, capture it in browser/domain-skills/ so the next agent starts smarter.
C:\Users\User\APPS\browser-harnessC:\Users\User\.local\bin\browser-harness.exeC:\Users\User\.codex\skills\browser-harness junctions to the checkoutbrowser/domain-skills/browser/interaction-skills/Run diagnostics before using it:
python scripts/browser_harness_doctor.py
If invoking the command directly fails in PowerShell, use the resolved executable path:
& (Get-Command browser-harness).Source --doctor
Before doing browser work:
browser/SAFETY.md.browser/domain-skills/ for the site.browser/interaction-skills/ only when the browser mechanic itself is the hard part.C:\Users\User\APPS\browser-harness\helpers.py.Use a new tab first so Bravo does not clobber CC's active tab:
@'
new_tab("https://example.com")
wait_for_load()
print(page_info())
'@ | & (Get-Command browser-harness).Source
Use new_tab(url) before goto(url) unless CC explicitly asks to operate in the current tab.
Browser Harness is high-trust. It can click real account UIs. That means Bravo's business safety rules override upstream convenience.
Always require explicit CC approval before:
When an official CLI/API exists, prefer it over browser clicks:
scripts/send_gateway.pyscripts/supabase_tool.pyscripts/stripe_tool.pyscripts/google_tool.pyscripts/n8n_tool.pyscripts/firecrawl_tool.pyBrowser Harness is the authenticated UI layer, not a bypass around logged, safer tools.
When a site teaches us something reusable:
browser/domain-skills/<site>.md.python scripts/browser_harness_doctor.py after editing browser infrastructure.Good domain skills are maps, not diaries.
Upstream Browser Harness assumed Unix sockets. The editable checkout at C:\Users\User\APPS\browser-harness has a local Windows compatibility patch that falls back to localhost TCP when socket.AF_UNIX is unavailable. Keep that patch unless upstream ships native Windows support.
Chrome/Edge still needs one-time remote-debugging profile approval before attach works. Run:
& (Get-Command browser-harness).Source --setup
If setup opens chrome://inspect/#remote-debugging, pick the normal Chrome profile, tick the remote debugging/discover targets option if shown, and click Allow if Chrome prompts.
Minimum verification for browser work:
python scripts/browser_harness_doctor.py
For a live attach smoke test after CC enables Chrome remote debugging:
@'
new_tab("https://github.com/browser-use/browser-harness")
wait_for_load()
print(page_info())
'@ | & (Get-Command browser-harness).Source