Agent Browser
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
Use the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host.
$ npx skills add Peiiii/nextclaw --skill browser-control -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Peiiii/nextclaw browser-control --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/Peiiii/nextclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/browser-control .claude/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .claude/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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/Peiiii/nextclaw/tree/master/skills/browser-controlType 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 Peiiii/nextclaw --skill browser-control -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Peiiii/nextclaw browser-control --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Peiiii/nextclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/browser-control .agents/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .agents/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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 Peiiii/nextclaw --skill browser-control -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Peiiii/nextclaw browser-control --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Peiiii/nextclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/browser-control .cursor/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .cursor/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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/Peiiii/nextclaw.git --path skills/browser-control--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 Peiiii/nextclaw --skill browser-control -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Peiiii/nextclaw browser-control --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Peiiii/nextclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/browser-control .gemini/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .gemini/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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 Peiiii/nextclaw browser-controlInstalls 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 Peiiii/nextclaw --skill browser-control -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Peiiii/nextclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/browser-control .github/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .github/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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 Peiiii/nextclaw --skill browser-control -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Peiiii/nextclaw browser-control --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Peiiii/nextclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/browser-control .opencode/skills/browser-control && 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-control" agent skill from https://github.com/Peiiii/nextclaw/tree/master/skills/browser-control into .opencode/skills/browser-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-control", 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-controlUse the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host.
Browser Control is an agent skill from Peiiii/nextclaw. Use the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host. Use when the user asks to list open browser pages, read a current page, capture a screenshot, or perform controlled browser interactions from NextClaw.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `marketplace.json`).
It sits in Productivity & Automation, covering Browser automation. The repository describes itself as: A human-centered long-term AI partner—not a task-centered assistant. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 973722e. 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.
Shell commands in SKILL.md call:
pnpmnpxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, npx and npm, which can reach the network depending on how they are called.
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 Control loads about 3.6k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 1,403 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 Peiiii/nextclaw at commit 973722e, republished under its MIT licence (© Peiiii). 1,403 words, ~3,604 tokens.
.claude/skills/browser-control/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill when the user wants the AI to inspect or operate Chrome pages that are already open in the user's normal browser.
This is a wrapped external tool skill:
browser-connector owns the Chrome Extension, Native Messaging Host, tab lease, JSON contract, screenshots, DOM snapshots, and browser actions.First check whether browser-connector is available:
command -v browser-connector
browser-connector --versionIf it is not installed, install the published package:
npm install -g @nextclaw/browser-connectorIf global install is not appropriate, use npx for one-off diagnostics:
npx -y @nextclaw/browser-connector@latest --versionPrefer a stable installed binary for multi-step browser workflows because tab leases and Native Host IPC depend on consistent local state.
Use the one-step setup command first. If the current workspace is the NextClaw source repo and contains packages/browser-connector/package.json, prefer the local source setup script:
pnpm browser-connector:setup:openOtherwise use the installed CLI:
browser-connector setup chrome --open --jsonIf ready is true, proceed to the workflow.
If ready is false, follow only the returned nextSteps. Usually the command already opened chrome://extensions and the extension directory; the user only needs to load the returned nativeHost.extensionDir as an unpacked extension. Then rerun the same setup command.
If chrome-extension-capabilities is false while chrome-extension is true, the CLI and Native Host are connected but Chrome is still running an older unpacked extension background script. Prefer:
browser-connector extension reload --reason "refresh extension capabilities after CLI update" --json
browser-connector setup chrome --jsonIf extension reload itself returns UNSUPPORTED_COMMAND, the currently loaded extension is too old to self-reload. Reload it once in chrome://extensions, then rerun setup. Do not continue with newer commands until this check is true.
For local NextClaw source testing, rerun:
pnpm browser-connector:setupFor installed CLI testing, rerun:
browser-connector setup chrome --jsonUse doctor only for troubleshooting or when setup did not become ready:
browser-connector doctor --jsonDo not ask the user to manually run the full lower-level command chain unless debugging setup failure.
Always follow this order:
browser-connector tabs open "https://example.com/" --reason "<why opening>" --json
browser-connector tabs open "https://example.com/" --reason "<why opening>" --foreground --jsontabs open keeps the new tab in the background by default so AI evaluation does not interrupt the user's active Chrome tab. Use --foreground only when the user explicitly asks to open and view the page now, or when the next action truly needs the new page to become active. --background is accepted as an explicit no-focus signal, but it is no longer required.
browser-connector tabs list --jsonUse these helpers when the task depends on the currently focused tab or a specific returned tab:
browser-connector tabs selected --json
browser-connector tabs get "<tabRef>" --jsonIf setup or doctor says the extension is stale after a local build or package update, reload it from the CLI:
browser-connector extension reload --reason "refresh extension after update" --jsonChoose the target tab from the returned tabRef, title, URL, and active state. Never guess a tabRef.
Claim the tab:
browser-connector tabs claim "<tabRef>" --reason "<why this tab is needed>" --jsonbrowser-connector page snapshot --lease "<leaseId>" --jsonWhen locating a button, link, input, or custom clickable element without relying on screenshots, prefer structured candidates before choosing a selector:
browser-connector page locate --lease "<leaseId>" --text "<visible label>" --json
browser-connector page snapshot --lease "<leaseId>" --interactive --jsonUse the returned ref, role, kind, text, ariaLabel, placeholder,
visible, disabled, unique, and boundingBox fields to disambiguate repeated
labels such as multiple Create controls.
Before filling, clicking, checking, selecting, or waiting on a complex element,
use page inspect when uniqueness or enabled/editable state is not already clear:
browser-connector page inspect --lease "<leaseId>" --ref "<ref>" --json
browser-connector page inspect --lease "<leaseId>" --selector "<selector>" --jsonUse screenshot only when visual layout matters:
browser-connector page screenshot --lease "<leaseId>" --json
browser-connector page screenshot --lease "<leaseId>" --output /tmp/browser-connector-page.png --jsonbrowser-connector page goto --lease "<leaseId>" --url "https://example.com/" --reason "<why navigating>" --json
browser-connector page reload --lease "<leaseId>" --reason "<why reloading>" --json
browser-connector page back --lease "<leaseId>" --reason "<why going back>" --json
browser-connector page forward --lease "<leaseId>" --reason "<why going forward>" --json
browser-connector page click --lease "<leaseId>" --selector "<selector>" --reason "<why clicking>" --json
browser-connector page click --lease "<leaseId>" --ref "<ref>" --reason "<why clicking>" --json
browser-connector page fill --lease "<leaseId>" --selector "<selector>" --text "<text>" --reason "<why filling>" --json
browser-connector page fill --lease "<leaseId>" --selector "<selector>" --mode paste --text "<text>" --reason "<why filling rich editor>" --json
browser-connector page fill --lease "<leaseId>" --ref "<ref>" --text "<text>" --reason "<why filling>" --json
browser-connector page type --lease "<leaseId>" --selector "<selector>" --text "<text>" --reason "<why typing legacy field>" --json
browser-connector page check --lease "<leaseId>" --selector "<selector>" --reason "<why checking>" --json
browser-connector page uncheck --lease "<leaseId>" --selector "<selector>" --reason "<why unchecking>" --json
browser-connector page select --lease "<leaseId>" --selector "<selector>" --value "<value>" --reason "<why selecting>" --json
browser-connector page scroll --lease "<leaseId>" --y 600 --reason "<why scrolling>" --json
browser-connector page wait --lease "<leaseId>" --text "<expected text>" --timeout-ms 5000 --reason "<why waiting>" --json
browser-connector page wait-url --lease "<leaseId>" --url "<expected-url-text>" --reason "<why waiting>" --json
browser-connector page wait-load --lease "<leaseId>" --reason "<why waiting>" --json
browser-connector page wait-element --lease "<leaseId>" --text "<expected text>" --reason "<why waiting>" --json
browser-connector page logs --lease "<leaseId>" --level error --limit 20 --jsonFor normal form entry, prefer page fill over page type because fill returns
post-input evidence such as valueLength, preview, changed, and
matchedExpectedText. Start with the default direct mode for native inputs.
When a complex editor returns field-level success but the visible page/editor
model still lacks the text, retry explicitly with page fill --mode paste and
verify pageTextMatched, a follow-up page inspect, or page wait-element.
For complex editors that already contain text, also verify old text disappeared;
if the editor appended instead of replaced, stop and report the limitation
rather than submitting or publishing.
Do not use OS clipboard paste as a hidden text-entry fallback.
Verify the result with the action result first, then snapshot, screenshot, wait, URL, title change, or logs only when the next decision still needs more evidence.
Always finalize:
browser-connector tabs finalize --lease "<leaseId>" --json--confirmed only after the user explicitly confirms the exact action.page locate / page snapshot --interactive and click --ref for complex pages, repeated labels, custom button-like elements, and pages where CSS selectors are not obvious.browser-connector not foundInstall @nextclaw/browser-connector globally or use npx -y @nextclaw/browser-connector@latest.
Run:
browser-connector setup chrome --jsonCheck that the Browser Connector extension is enabled in Chrome. If it is unpacked, reload the extension, then rerun:
browser-connector doctor --jsonIf a command exists in the installed CLI but the extension returns Unsupported browser connector command, the unpacked Chrome extension is running old background code.
First try:
browser-connector extension reload --reason "refresh stale extension command set" --jsonIf that command is also unsupported, reload the Browser Connector extension once in chrome://extensions, then rerun:
browser-connector setup chrome --jsonIf setup or doctor returns chrome-extension=true but chrome-extension-capabilities=false, the extension is connected but stale. Prefer CLI self-reload:
browser-connector extension reload --reason "refresh stale extension capabilities" --json
browser-connector setup chrome --jsonIf self-reload is not supported by the loaded extension, reload the unpacked Browser Connector extension once in chrome://extensions, then rerun:
browser-connector setup chrome --jsonProceed only after ready=true.
If page snapshot, page click, or page type returns PAGE_SCRIPT_FAILED or PAGE_SCRIPT_RESULT_MISSING, reload the page or use screenshot to inspect the visible state. Do not claim success from an empty snapshot.
This usually means Chrome launched the Native Host in a non-shell environment and the host executable could not find Node.
Rerun setup so the Native Host manifest points at the generated wrapper with an absolute Node runtime path:
browser-connector setup chrome --jsonIf testing from the local NextClaw source repo, use:
pnpm browser-connector:setupThen reload the unpacked Browser Connector extension in chrome://extensions and rerun doctor.
Run tabs list and tabs claim again. Do not reuse old lease ids.
Run page locate --text "<label>" or page snapshot --interactive again and choose a current ref. If selector mode is still needed, choose a selector from the fresh snapshot. Do not guess selectors in a loop.
The skill succeeds when:
browser-connector --version runs,browser-connector doctor --json reports Native Host and extension readiness,chrome-extension-capabilities is true when setup or doctor reports it,tabs list returns the user's current Chrome tabs,page locate or page snapshot --interactive before action,© Peiiii, 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 1 other file in skills/browser-control of Peiiii/nextclaw.
Open the folder on GitHubat commit 973722e
Browser Control 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 Control this skillPeiiii/nextclaw | 260 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 42 repos | ~3.3k | Automated safety check: Pass | None | |
| Dev-Browser CLI AutomationSawyerHood/dev-browser | 6.7k | 1 repos | ~455 | Automated safety check: Pass | MIT | |
| Agent Browsersuperagent-ai/grok-cli | 3.5k | 1 repos | ~633 | Automated safety check: Pass | MIT | |
| Browser Automationopenclaw/openclaw | 392k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Camoufox CLIBin-Huang/camoufox-cli | 350 | 1 repos | ~4.5k | 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…
superagent-ai/grok-cli
Use the host-side agent-browser CLI for local browser smoke tests, screenshots, snapshots, and simple UI validation against forwarded localhost URLs.
openclaw/openclaw
A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
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.
Peiiii/nextclaw
A skill your agent uses when a user wants to browse, apply, inspect, create, refine, switch, or remove a NextClaw skin; wants a personal skin with arbitrary CSS, JavaScript, images, SVG, DOM…
Peiiii/nextclaw
A skill your agent uses when a development task needs visible phase tracing, task-level or phase-level Token measurement, model/effort comparison, or a deterministic usage report or local dashboard…
Peiiii/nextclaw
当 NextClaw 产品更新后需要生成、替换、挑毛病或检查官网、GitHub README、用户文档或社交传播中的真实截图、AI 宣传视觉、整页 HTML 宣传预览、社区二维码等对外视觉资产时使用;也用于“更新截图”“重新截一批图”“做宣传页”“生成 campaign 页面”“视觉审稿”“五星挑刺法”或发布前检查视觉资产。普通站点布局开发或只写文章不触发。
Peiiii/nextclaw
A skill your agent uses when the user wants professional UI/UX design guidance, design-system generation, UX review, or stack-specific frontend guidance through a bundled local UI/UX Pro Max dataset…
Peiiii/nextclaw
A skill your agent uses when the user wants distinctive, production-grade frontend design, anti-generic AI aesthetics, UX critique, technical UI audits, or final polish through bundled Impeccable…
Peiiii/nextclaw
Curate NextClaw skill resources, including OpenClaw and community sources.
Categories
Use the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host. Browser Control is an agent skill from Peiiii/nextclaw. Use the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host.
Browser Control fits situations like: the user asks to list open browser pages; read a current page; capture a screenshot; perform controlled browser interactions from NextClaw.
Run `npx skills add Peiiii/nextclaw --skill browser-control -a claude-code`. Or copy the skill folder (skills/browser-control in Peiiii/nextclaw) into .claude/skills/browser-control in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Peiiii/nextclaw --skill browser-control -a codex`. Or copy the skill folder (skills/browser-control in Peiiii/nextclaw) into .agents/skills/browser-control 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 Peiiii/nextclaw --skill browser-control -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-control, .gemini/skills/browser-control, .github/skills/browser-control and .opencode/skills/browser-control in your project.
Going by SKILL.md and its folder, Browser Control needs the command-line tools its instructions call (pnpm, npx and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. 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 Control 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.6k tokens (SKILL.md is roughly 14k 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 Control: Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Dev-Browser CLI Automation (SawyerHood/dev-browser, 6.7k stars), Agent Browser (superagent-ai/grok-cli, 3.5k stars) and Browser Automation (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Peiiii (a GitHub user) maintains it in Peiiii/nextclaw, which has 260 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 7, 2026.
Source: Peiiii/nextclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.