Agent Browser
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
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.
$ npx skills add steipete/agent-scripts --skill browser-use -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install steipete/agent-scripts browser-use --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/browser-use .claude/skills/browser-use && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .claude/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/steipete/agent-scripts/tree/main/skills/browser-useType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add steipete/agent-scripts --skill browser-use -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install steipete/agent-scripts browser-use --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/browser-use .agents/skills/browser-use && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .agents/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add steipete/agent-scripts --skill browser-use -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install steipete/agent-scripts browser-use --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/browser-use .cursor/skills/browser-use && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .cursor/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/steipete/agent-scripts.git --path skills/browser-use--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add steipete/agent-scripts --skill browser-use -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install steipete/agent-scripts browser-use --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/browser-use .gemini/skills/browser-use && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .gemini/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install steipete/agent-scripts browser-useInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add steipete/agent-scripts --skill browser-use -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/browser-use .github/skills/browser-use && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .github/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add steipete/agent-scripts --skill browser-use -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install steipete/agent-scripts browser-use --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/steipete/agent-scripts.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/browser-use .opencode/skills/browser-use && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "browser-use" agent skill from https://github.com/steipete/agent-scripts/tree/main/skills/browser-use into .opencode/skills/browser-use/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-use", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
browser-useControl 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.
Browser Use is an agent skill from steipete/agent-scripts. 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.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `auto-allow.py` and `mcporter-config.md`).
It sits in Productivity & Automation, covering Browser automation. The repository describes itself as: Scripts for agents, shared between my repositories. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 79150cf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Browser Use loads about 3.9k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 1,991 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from steipete/agent-scripts at commit 79150cf, republished under its MIT licence (© steipete). 1,991 words, ~3,949 tokens.
.claude/skills/browser-use/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Control the user's existing real Chrome profile, especially for login-dependent work and live UI verification.
Chrome or Chrome [Internal] plugin when it is callable in
the active session. Installed on disk is not enough.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:
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.
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.
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.
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.openclaw browser extension status --json to verify the installed copy,
exact origins, and native-host registrations. Status must report no issues and
manualSetupRequired: false.mcporter daemon stop retires it
before the next call creates a fresh connection.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:
{
"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
an explicit --timeout 300000 on the initial call or schema listing. For example:
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.list_pages --timeout 300000 --output textNewer Chrome-specific outer defaults require an upgraded invoking client.
Explicit --timeout, MCPORTER_CALL_TIMEOUT, and MCPORTER_LIST_TIMEOUT
still override those defaults; a smaller override can cut startup short.
The daemon intentionally strips inherited MCPORTER_CHROME_DEVTOOLS_RELAY_*
and OPENCLAW_* controls from the canonical Chrome environment. Shell exports
do not update an existing owner and are not a durable fix for a respawn. Put
literal values in the canonical definition's env; do not use placeholders
that depend on those stripped variables. If an explicit endpoint is necessary,
set MCPORTER_CHROME_DEVTOOLS_RELAY_URL there to the verified credential-free
HTTP loopback base URL, for example http://127.0.0.1:28799 after verifying
that port. This override does not accept a WebSocket CDP URL such as
ws://127.0.0.1:28799/cdp. Prefer discovery with a sufficient timeout over a
guessed or hardcoded port, especially when several OpenClaw installations coexist.
After changing canonical settings, let active calls drain and run
mcporter daemon stop. If stop refuses because calls remain active, wait for
them to finish and retry stop; proceed only after it succeeds. The next call
starts a daemon with the saved settings, and subsequent respawns use the same
configuration. Verify the relay decision
with mcporter daemon status --json and repeat the readiness proof below.
Check the installed mcporter version before relying on newer timeout defaults
or explicit discovery-failure diagnostics; a source fix does not update an
already installed binary or running daemon.
Current openclaw browser extension cdp --json emits non-secret metadata by
default, but older versions and legacy-bearer options can expose credentials.
Prefer mcporter's redacted status for routine diagnostics, never request legacy
credentials, and do not dump process arguments. If credential exposure is
suspected, rotate the per-host secret and pair again.
Require every condition below before calling the extension route ready:
chromeDevtoolsRelay: "require", and
a call with MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require succeeds. The
canonical policy forbids direct DevTools fallback, so success is positive
relay proof.MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.list_pages --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.select_page --args '{"pageId":9}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.evaluate_script --args '{"function":"() => ({title: document.title, href: location.href})"}' --output jsonA relay-policy error means the extension transport is unavailable; report or
repair it instead of retrying without require. A blocking Allow remote
debugging? prompt proves legacy attachment was attempted.
List pages, select only a shared target, snapshot before acting, and use fresh snapshot UIDs. Prefer DOM snapshots over screenshots unless layout matters.
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.list_pages --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.select_page --args '{"pageId":9}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.take_snapshot --args '{}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.click --args '{"uid":"1_38","includeSnapshot":true}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.fill --args '{"uid":"1_13","value":"text","includeSnapshot":true}' --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.evaluate_script --args '{"function":"() => document.title"}' --output jsonFor live UI proof, capture the current page 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. For credential checks, return only safe shape such as present/absent, length, status code, or account/organization label.
If automation is unavailable, report the verification gap instead of silently switching to prohibited or isolated tooling.
--args accepts inline JSON only. It does not read @file. Flag-style named
arguments do:
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.navigate_page url=@/tmp/target-url.txt --output text
MCPORTER_CHROME_DEVTOOLS_RELAY_POLICY=require mcporter call chrome-devtools.evaluate_script function=@/tmp/probe.js --output jsonTreat this as a safety primitive, not just ergonomics. A sign-in URL, magic link, or callback URL is credential-equivalent: write it to a mode-0600 file and pass it by file reference so it never reaches shell history, process arguments, or captured tool output. The same form carries a multi-line JavaScript function without quoting or control-character errors.
Other call mechanics worth knowing before a login flow:
--timeout 300000 as described
above. Choose an explicit timeout for later interactive work when needed.take_screenshot with filePath is confined to the server's configured
workspace roots and refuses arbitrary paths. Omit filePath, read the
base64 image from --output json, and decode it locally.new_page can fail with a restricted/unavailable tab when the target is not
shared. Navigate an already-shared tab instead of creating one.mcporter list <server> --schema prints the real function signatures. Use it
rather than guessing parameter names.A click by uid can return success and still do nothing: some pages bind
their handlers so that a synthetic click is ignored. Silence is not proof of
action, so verify state after every activation rather than assuming it worked.
When a click no-ops, drive the control from the keyboard with press_key
(Tab, Shift+Tab, Enter) and confirm focus with a screenshot before
committing. Focus rings are the only reliable evidence of which control is
about to receive Enter, and consent screens routinely put the safe-looking
prominent button next to a low-emphasis link that is the one you actually want.
Blind Enter on such a page picks the wrong control.
Snapshot uid values are invalidated by any navigation or re-render. Re-run
take_snapshot and re-resolve the uid after every step; a stale uid
reports that the element no longer exists, which is a cue to re-snapshot rather
than to retry the same call.
The relay can stop exposing tabs partway through a task because eligible tabs
were closed, the current tab became restricted or paused, Selected tabs mode
lost its group members, or the extension disconnected. The failure can be
quiet: list_pages may return an empty result and later calls time out.
Treat an empty page list as "the relay has no eligible tabs", not "the browser is gone". Confirm Chrome is running, check the popup connection and current-tab Pause/Allow state, then check the access mode. Only Selected tabs mode requires restoring the OpenClaw group. Restarting mcporter cannot repair extension disconnection, tab eligibility, or access policy.
Do not escalate to a full-profile attachment or an isolated browser to route around it. When the task is a sign-in the user is present for, the faster and more honest move is to hand the URL to the browser the user is already sitting at, and if the flow's callback listens on another host, forward that port to the user's machine first. Otherwise report the access gap.
Use this only after the callable plugin and authenticated local extension relay are unavailable. It exposes the full real-profile tab set and can show Chrome's blocking Allow remote debugging? prompt.
When a visible, unambiguous Chrome prompt asks to allow the attachment, approve
it once, then rerun list_pages. If the prompt is absent, ambiguous, or the
retry fails, stop and ask the user or report that Chrome DevTools MCP is
unavailable. Do not loop approvals, repeatedly restart Chrome or mcporter, or
kill browser processes.
Verify that list_pages shows the intended real-profile tabs before acting. Always
label this path as full-profile direct attachment, never as OpenClaw extension relay success.
© steipete, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/browser-use of steipete/agent-scripts.
Open the folder on GitHubat commit 79150cf
Browser Use next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Browser Use this skillsteipete/agent-scripts | 7.3k | — | ~3.9k | Automated safety check: Pass | MIT | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 41 repos | ~3.3k | Automated safety check: Pass | None | |
| Dev-Browser CLI AutomationSawyerHood/dev-browser | 6.7k | 1 repos | ~455 | Automated safety check: Pass | MIT | |
| Camoufox CLIBin-Huang/camoufox-cli | 350 | 1 repos | ~4.5k | Automated safety check: Pass | MIT | |
| BrowserVibiumDev/vibium | 2.9k | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Use Agent Browser For Airimoeru-ai/airi | 50k | — | ~1.1k | Automated safety check: Pass | MIT |
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
SawyerHood/dev-browser
Browser automation with persistent named pages via the dev-browser CLI. Use when users ask to navigate websites, fill forms, take screenshots, extract web…
Bin-Huang/camoufox-cli
Anti-detect browser automation CLI & Skills for AI agents. An agent skill from Bin-Huang/camoufox-cli.
VibiumDev/vibium
Automate browsers with the Vibium CLI. An agent skill from VibiumDev/vibium.
moeru-ai/airi
Test AIRI display-model imports with agent-browser across stage-tamagotchi Electron, stage-web, and stage-pocket mobile web layouts.
browser-use/terminal
Direct browser control via the Browser Use Terminal CLI. An agent skill from browser-use/terminal.
steipete/agent-scripts
Inventories and maintains a fleet of Macs from a desired-state file: package updates, repo and Xcode sync, and disk, backup and security health reports.
steipete/agent-scripts
Finds a coding agent's session log, trims and redacts it, and inserts it into a GitHub PR or issue only when the user has asked for a transcript.
steipete/agent-scripts
Uses a clean Parallels macOS VM to test GUI automation, TCC permission prompts and screenshot tools like Peekaboo, verifying results from outside the guest.
steipete/agent-scripts
Reports ClawSweeper's status with a bundled script: workflow health, active workers, queue health and recently merged, reviewed, commented and closed items.
steipete/agent-scripts
Produces maintainer-facing triage cards for a project's GitHub issues and pull requests, each with its URL, risk, test state, blockers and a next action.
steipete/agent-scripts
Generates and edits images with Google's Nano Banana 2 (Gemini 3.1 Flash Image) through a uv script, with a draft-then-final workflow and sizes from 512 to 4K.
Categories
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. Browser Use is an agent skill from steipete/agent-scripts. 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.
Browser Use fits situations like: tasks that involve Browser automation.
Run `npx skills add steipete/agent-scripts --skill browser-use -a claude-code`. Or copy the skill folder (skills/browser-use in steipete/agent-scripts) into .claude/skills/browser-use in your project. Claude Code loads it when a task matches its description.
Run `npx skills add steipete/agent-scripts --skill browser-use -a codex`. Or copy the skill folder (skills/browser-use in steipete/agent-scripts) into .agents/skills/browser-use in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add steipete/agent-scripts --skill browser-use -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/browser-use, .gemini/skills/browser-use, .github/skills/browser-use and .opencode/skills/browser-use in your project.
Going by SKILL.md and its folder, Browser Use needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Browser Use is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Browser Use: Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Dev-Browser CLI Automation (SawyerHood/dev-browser, 6.7k stars), Camoufox CLI (Bin-Huang/camoufox-cli, 350 stars) and Browser (VibiumDev/vibium, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
steipete (a GitHub user) maintains it in steipete/agent-scripts, which has 7,259 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on October 4, 2026.
Source: steipete/agent-scripts on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.