Skip to content
Agentmart
Submit a tool

browser-use

Control the user's existing signed-in Chrome: callable Codex Chrome plugin first, then OpenClaw extension-backed mcporter, with direct DevTools attachment…

Skill by steipete

IndexedMIT★ 7,401
Write a review

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/steipete-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.

We use your email only for this newsletter. Privacy

About

Control the user's existing signed-in Chrome: callable Codex Chrome plugin first, then OpenClaw extension-backed mcporter, with direct DevTools attachment only as a last fallback.

Use cases: agent-building

No 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
Runs as
Python package

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
Control the user's existing signed-in Chrome: callable Codex Chrome plugin first, then OpenClaw extension-backed mcporter, with direct DevTools attachment only as a last fallback.
License
MIT
Instructions
287 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (3)

  • SKILL.md
  • auto-allow.py
  • mcporter-config.md

SKILL.md (first lines)

# Browser Use

Control the user's existing real Chrome profile, especially for login-dependent work and live UI verification.

## Route

1. Use the Codex `Chrome` or `Chrome [Internal]` plugin when it is callable in
   the active session. Installed on disk is not enough.
2. Otherwise prefer the OpenClaw extension-backed mcporter route.
3. Use legacy direct DevTools attachment only as the explicit last fallback.

For mcporter, the MCP call remains the agent-facing control interface. The
OpenClaw extension is the transport underneath it, not a separate tool. Set
`chromeDevtoolsRelay: "require"` on the canonical global Chrome server definition
to enforce relay-only routing. Keep the caller policy explicit as well:

```bash
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.<tool>
```

Seeing an agent request the `chrome-devtools` MCP tool is therefore expected.
A Chrome **Allow remote debugging?** prompt or a relay-policy error indicates
that the extension transport was not used. The shared daemon retains canonical
policy; a shell environment prefix alone cannot change that policy.

Never use isolated Chrome, the Codex in-app browser, Playwright, Puppeteer,
AppleScript, `osascript`, generic GUI scripting, or macOS `open` as a browser-control
substitute unless the user explicitly asks for an isolated or new browser.
Peekaboo is allowed only for Chrome or extension setup and visible prompts.
Login-heavy sites often depend on the real profile's cookies, SSO, device trust,
and extensions.

For a rendered-browser bug, prove behavior through this real profile. Treat
`curl`, source inspection, API checks, and isolated test browsers as supporting
evidence, not substitutes for live UI proof.

## Extension Relay Model

OpenClaw creates a random per-host relay key in its mode-`0600` credentials
directory. The extension and same-host clients use nonce-bound mutual HMAC
proofs. The reusable key is never sent to an unverified loopback listener,
placed in a URL, or passed to the child MCP process. Keep credentials out of
configuration, command output, chat, logs, and screenshots.

On a same-host relay, mcporter authenticates `/json/version` and upgrades the
same retained socket to `/cdp`, then gives `chrome-devtools-mcp` a protected
one-use local handoff. Agents still call the standard MCP tools; successful
relay routing is what removes direct DevTools attachment and Chrome's approval
prompt.

New pairings default to **All tabs**: every ordinary eligible tab is exposed
except tabs explicitly paused in the popup. Existing pairings keep their stored
mode. In **Selected tabs** mode, membership in the Chrome tab group titled
**OpenClaw** is the sharing boundary. Restricted/internal pages, incognito,
other profiles, and tabs without an eligible URL remain excluded in both modes.

### Topology Boundary

Direct remote Gateway pairing over `wss://` lets OpenClaw's Gateway-side
browser tool control local Chrome. It does not create a local relay for a local
mcporter process. Do not routinely copy remote secrets or build ad-hoc SSH
tunnels around this boundary.

If local mcporter cannot authenticate to a local relay, the extension-backed
mcporter route is unavailable. Report that clearly or use the labeled legacy
fallback; never represent remote Gateway control or direct attachment as local
relay success.

## Setup and Repair

- Run `openclaw browser extension install` before **Load unpacked**. It copies
  the extension to the stable OpenClaw-owned path, pre-registers that path's
  deterministic Chrome ID, and prints the path to load. The first native call
  then pairs automatically for local or browser-node topology.
- Use `openclaw browser extension status --json` to verify the installed copy,
  exact origins, and native-host registrations. Status must report no issues and
  `manualSetupRequired: false`.
- Confirm Settings reports automatic setup ready and the popup reports
  **Connected**. New installs should show **All tabs** unless the user changes
  the access mode; no copied pairing string or popup setup is part of the normal
  local flow.
- A previous native-host miss is cached for the Chrome process. If the extension
  attempted native messaging before installation, restart Chrome once after
  installing; repeated retries in the same process cannot repair that cache.
- After pairing or changing the relay route, stop the mcporter daemon before
  re-running relay-only proof. A Gateway restart can leave the Chrome DevTools
  child alive with a dead upstream socket; `mcporter daemon stop` retires it
  before the next call creates a fresh connection.
- Direct remote Gateway pairing remains an Advanced manual flow. It serves the
  Gateway browser path and does not create a local relay for local mcporter.

### Discovery Timeout and Daemon Configuration

MCPorter discovers the actual relay through
`openclaw browser extension cdp --json`. Even packaged OpenClaw can take more
than five seconds to cold-start. In mcporter 0.13.10, discovery failure falls
back to port 18799; a timeout can therefore appear as `network-error` at the
wrong endpoint, or as `browser_owner_conflict` when a later discovery returns
the real endpoint. Do not interpret that sequence as proof that another Chrome
owner or credential rotation caused the failure.

For the shared Chrome owner, use the OS account's canonical
`~/.mcporter/mcporter.json` (or `mcporter.jsonc` only when the JSON file is absent).
Merge these fields into its existing Chrome definition, preserving its command,
arguments and other settings:

```json
{
  "chromeDevtoolsRelay": "require",
  "env": {
    "MCPORTER_CHROME_DEVTOOLS_RELAY_TIMEOUT_MS": "20000"
  }
}
```

The relay timeout bounds each discovery or authentication step; it does not
extend the client's total operation deadline. Initial Chrome startup can run
several discovery checks before MCP initialization and the requested tool call.
On older installed clients, pair the canonical `20000` per-step setting with

From steipete/agent-scripts, MIT.

More from steipete/agent-scripts

Compare and alternatives

    Featured in

    Signals

    Stars
    7,401
    Forks
    646
    Open issues
    0
    Last commit (this folder)
    Sep 12, 2026 (1 month ago)
    Last release
    Jul 17, 2026 (3 months ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from steipete

    Cite this page

    browser-use skill. Agent Mart. https://agentmart.dev/skills/steipete-browser-use (last updated 2026-10-24)