browser-harness SKILL.md skillA
browser-harness from browser-use/browser-harness is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add browser-use/browser-harness/browser-harness@git:20261101.9abe45dPins git:20261101.9abe45d in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- browser-use/browser-harness
- Path
SKILL.md- Versions recorded
- 6
- Latest version
- git:20261101.9abe45d, committed Nov 1, 2026
- First version recorded
- Sep 4, 2026
- Size
- 14,519 bytes
- Repository stars
- 18,887
- License
- MIT
Control a real browser via CDP: clicking, typing, navigation, logged-in sessions, JS-rendered or bot-protected pages. Not for plain HTTP fetches of public content - use curl for those.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# browser-harness Direct browser control via CDP. For task-specific edits, use `agent-workspace/agent_helpers.py`. For setup, install, or connection problems, read https://github.com/browser-use/browser-harness/blob/main/install.md. ## When Not to Use A basic fetch of public information needs no browser. If a plain HTTP request can read it — a public page, an API, docs — use `curl` or your fetch tool, and leave the browser alone. Use browser-harness when the task needs interaction (click, type, navigate), the user's logged-in session, JS rendering, or a bot-protected page. If a direct fetch fails or returns a shell page, then escalate to the browser. Domain skills are off by default. Set `BH_DOMAIN_SKILLS=1` to enable them; see the bottom section. **If `BH_DOMAIN_SKILLS=1` and the task is site-specific, read every file in the matching `$BH_AGENT_WORKSPACE/domain-skills/<site>/` directory before inventing an approach.** ## Usage ```bash browser-harness <<'PY' print(page_info()) PY ``` - Invoke as `browser-harness`. Use heredocs for multi-line commands. - Helpers are pre-imported. `run.py` calls `ensure_daemon()` before `exec`. …
Read the whole file at its exact version.
How to install
mdr add browser-use/browser-harness/browser-harness@sha256:2e939c2e58707c57The line at the top of this page pins the label git:20261101.9abe45d, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_5jp46ppchugjj24r)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 6 versions of this file, between Sep 4, 2026 and Nov 1, 2026, about one every 12 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261101.9abe45d latest | 2026-11-01 | 9abe45d | 14,519 B | A | view · diff |
| git:20260905.7103d22 | 2026-09-05 | 7103d22 | 14,336 B | A | view · diff |
| git:20260905.5c5fedf | 2026-09-05 | 5c5fedf | 14,096 B | A | view · diff |
| git:20260904.a3d36f8 | 2026-09-04 | a3d36f8 | 13,897 B | A | view · diff |
| git:20260904.baef897 | 2026-09-04 | baef897 | 13,664 B | A | view · diff |
| git:20260904.d223c86 | 2026-09-04 | d223c86 | 12,402 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (14519 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
browser-use/browser-harness · 18,887 stars · license MIT · pushed 2026-11-05 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_5jp46ppchugjj24r GET https://markdownregistry.com/api/v1/resolve?ref=browser-use/browser-harness/browser-harness GET https://markdownregistry.com/api/v1/blob/2e939c2e58707c57338d5e479b885d694bc7e580ee4207aabd11c08003a41163
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.
More from browser-use/browser-harness
Every file in browser-use/browser-harness