browser-use
Browser automation in cmux or signed-in Chrome; fail-closed relay fallback.
Skill by BramVR
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/bramvr-browser-use
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/browser-use
What's inside
- Skill name
browser-use- Description
- Browser automation in cmux or signed-in Chrome; fail-closed relay fallback.
- License
- MIT
- Instructions
- 152 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Browser Use
_Source: [steipete/agent-scripts](https://github.com/steipete/agent-scripts), browser-use through `2e320ff0`; combined with Bram's cmux-first routing._
Control a browser without AppleScript or generic GUI scripting. Preserve the user's signed-in state when the task depends on cookies, SSO, device trust, or extensions.
## Route
1. Use `cmux browser` when `cmux browser status` reports `enabled`.
2. Otherwise use the callable Codex `Chrome` or `Chrome [Internal]` plugin when available in the active session. Installed on disk is not enough.
3. Otherwise use the OpenClaw extension-backed Chrome DevTools MCP route through mcporter.
4. Use full-profile direct DevTools attachment only as an explicit last fallback.
Never substitute an isolated browser, Playwright, Puppeteer, AppleScript, `osascript`, generic GUI scripting, or macOS `open` unless the user explicitly asked for a new or isolated browser. Peekaboo is allowed only for Chrome or extension setup, native browser chrome, and visible prompts.
For a rendered-browser bug, prove behavior in the selected real browser. Treat `curl`, source inspection, API checks, and isolated tests as supporting evidence, not live UI proof.
## cmux browser
```bash
cmux browser status
cmux --json browser open https://example.com --focus false
```
Use the returned `surface_ref`:
```bash
cmux browser surface:25 get url
cmux browser surface:25 wait --load-state complete --timeout-ms 15000
cmux browser surface:25 snapshot --interactive
cmux browser surface:25 click e2 --snapshot-after
cmux browser surface:25 fill e1 --text "text" --snapshot-after
cmux browser surface:25 type e1 --text "more text" --snapshot-after
cmux browser surface:25 select e3 --value ship --snapshot-after
cmux browser surface:25 eval 'document.title'
cmux browser surface:25 screenshot --out /tmp/cmux-browser.png
```
Use explicit `--text` and `--value` when a mutating command also has flags. Otherwise trailing flags can be parsed as input text. Run actions sequentially and re-snapshot after DOM changes because older refs can go stale.
Use `cmux identify --json` when caller workspace, window, or surface context matters. If snapshot or evaluation returns `js_error`, fall back to:
```bash
cmux browser surface:25 get text body
cmux browser surface:25 get html body
```
cmux uses WKWebView. Known gaps include viewport and offline emulation, tracing, screencast, network interception, and low-level raw input.
## OpenClaw extension relay
The Chrome DevTools MCP call is the agent-facing interface. The OpenClaw extension is its authenticated transport. Require relay-only routing so a missing relay cannot silently become direct DevTools attachment:
```bash
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.<tool>
```
A Chrome "Allow remote debugging?" prompt or relay-policy error means the extension transport was not used.
OpenClaw creates a random per-host relay key. The extension and same-host clients use nonce-bound mutual HMAC proofs. The reusable key must not enter URLs, child process arguments, configuration, command output, chat, logs, or screenshots.
New pairings default to all eligible ordinary tabs except tabs paused in the popup. Existing pairings keep their stored mode. In selected-tabs mode, membership in the Chrome tab group named `OpenClaw` is the sharing boundary. Restricted pages, incognito tabs, other profiles, and ineligible URLs stay excluded.
Direct remote Gateway pairing does not create a local relay for local mcporter. Do not copy remote secrets or create ad-hoc SSH tunnels around that boundary.
### Setup and repair
- Run `openclaw browser extension install` before loading the unpacked extension. It installs a stable copy and registers its deterministic Chrome ID.
- Use `openclaw browser extension status --json`. Require no reported issues and `manualSetupRequired: false`.
- Confirm Settings reports automatic setup ready and the popup reports connected.
- If the extension attempted native messaging before installation, restart Chrome once. Chrome caches the miss for the process lifetime.
- After pairing or route changes, run `npx -y mcporter daemon stop`. A restart can reuse a child with a dead upstream socket; a stop forces a clean child on the next call.
- MCPorter discovers the relay through `openclaw browser extension cdp --json`. A source-checkout launcher may need `MCPORTER_CHROME_DEVTOOLS_RELAY_TIMEOUT_MS=15000` for its freshness build.
Do not run the CDP discovery command or inspect process arguments as routine diagnostics because either can expose relay credentials.
### Fail-closed readiness proof
Require every condition:
1. Extension status reports the stable copy and exact native registrations with no issues.
2. The popup reports connected and the target tab is eligible and not paused.
3. The mcporter daemon was stopped after pairing or route changes.
4. A call with `MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require` succeeds.
5. Selection and evaluation both succeed in a known disposable tab.
```bash
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.list_pages --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.select_page --args '{"pageId":9}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.evaluate_script --args '{"function":"() => ({title: document.title, href: location.href})"}' --output json
```
A relay-policy error means the extension route is unavailable. Report or repair it instead of retrying without `require`.
## Chrome DevTools flow
Use current snapshot UIDs. Prefer DOM snapshots over screenshots unless layout matters.
```bash
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.list_pages --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.select_page --args '{"pageId":9}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.take_snapshot --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.click --args '{"uid":"1_38","includeSnapshot":true}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.fill --args '{"uid":"1_13","value":"text","includeSnapshot":true}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.evaluate_script --args '{"function":"() => document.title"}' --output json
```
Capture state before the action, perform the requested interaction, then snapshot or evaluate the rendered result. Keep secrets out of DOM, input, network, console, and screenshot output. Return only safe shapes for credential checks, such as present or absent, length, status code, or account name.
If automation is unavailable, report the verification gap instead of switching to prohibited or isolated tooling.
## Argument and output mechanics
`--args` accepts inline JSON only. It does not read `@file`. Flag-style named arguments do:
```bash
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.navigate_page url=@/tmp/target-url.txt --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require npx -y mcporter call chrome-devtools.evaluate_script function=@/tmp/probe.js --output json
```From BramVR/mac-agent-scripts, MIT.
More from BramVR/mac-agent-scripts
- 0.561score
codex-first
BramVR
Claude Code-only routing: delegate implementation, fixing, exploration, git mechanics to Codex CLI; Claude specs, decides, reviews, verifies.
SkillAFreshness: AClaude Code +9 - 0.541score
architect
BramVR
Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in.
SkillAFreshness: AClaude Code +9 - 0.541score
create-verification-skill
BramVR
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
SkillAFreshness: AClaude Code +9 - 0.539score
correct
BramVR
Find the mistakes agents keep repeating in this repo and make each one impossible.
SkillAFreshness: AClaude Code +9 - 0.536score
arena
BramVR
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.
SkillAFreshness: AClaude Code +9 - 0.529score
agent-performance-audit
BramVR
Audit local Codex agent histories for a repository, record separate Claude activity coverage, compare correction and efficiency trends, and generate…
SkillBFreshness: BClaude Code +9 - 0.523score
bram-maintainer-loop-v2
BramVR
Cross-repository maintainer orchestration: Codex app workers, work recovery, dependencies, vision, releases.
SkillBFreshness: BClaude Code +9 - 0.479score
craft-prompt
BramVR
Turn rough notes, source text, or an existing prompt into a production-ready GPT-5.6 prompt through a one-question-at-a-time interview.
SkillCFreshness: CClaude Code +9 - 0.469score
codex-huge-context
BramVR
Codex 1M context: direct OpenAI Responses API route, safe input window, Keychain auth, preflight.
SkillCFreshness: CClaude Code +9 - 0.469score
codex-debugging
BramVR
Codex source debugging: ~/Projects/codex, codex-rs core/tui/exec/cli/app-server/config.
SkillCFreshness: CClaude Code +9 - 0.469score
beeper
BramVR
Local Beeper cache: contact hints, room lookup, WhatsApp/iMessage traces, message FTS.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Aug 19, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/BramVR/mac-agent-scripts
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from BramVR
- 0.561score
codex-first
BramVR
Claude Code-only routing: delegate implementation, fixing, exploration, git mechanics to Codex CLI; Claude specs, decides, reviews, verifies.
SkillAFreshness: AClaude Code +9 - 0.541score
architect
BramVR
Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in.
SkillAFreshness: AClaude Code +9 - 0.541score
create-verification-skill
BramVR
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
SkillAFreshness: AClaude Code +9 - 0.539score
correct
BramVR
Find the mistakes agents keep repeating in this repo and make each one impossible.
SkillAFreshness: AClaude Code +9 - 0.536score
arena
BramVR
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.
SkillAFreshness: AClaude Code +9 - 0.529score
agent-performance-audit
BramVR
Audit local Codex agent histories for a repository, record separate Claude activity coverage, compare correction and efficiency trends, and generate…
SkillBFreshness: BClaude Code +9
Cite this page
browser-use skill. Agent Mart. https://agentmart.dev/skills/bramvr-browser-use (last updated 2026-10-24)