Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add compnew2006/browser-controller --skill browser-automationgit clone --depth 1 https://github.com/compnew2006/browser-controllerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/compnew2006/browser-controller/browser-automation)<a href="https://agentmods.dev/skills/compnew2006/browser-controller/browser-automation"><img src="https://agentmods.dev/badge/skills/compnew2006/browser-controller/browser-automation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/compnew2006/browser-controller/browser-automation"><img src="https://agentmods.dev/badge/skills/compnew2006/browser-controller/browser-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.02870 |
| Opus 5.5 | $0.00014 | $0.01148 |
| Sonnet 5.5 | $0.00007 | $0.00574 |
| Haiku 4.5 | $0.00003 | $0.00287 |
Grade A, and why
browser-automation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser Automation with Browser Controller
Use this skill when you need to interact with the user's actual browser - clicking, typing, reading pages, taking screenshots, or navigating.
CRITICAL: Always target a tab explicitly (v2)
This is a multi-client server — other agents may be using other tabs. You MUST pass tabId to every page-interaction tool; actions never hit "the active tab" implicitly.
- First call
browser_tabswithaction: "list"to discover tabs and get atabId - Pass that same
tabIdtobrowser_snapshot,browser_click,browser_type, etc. - Refs from a snapshot are valid only for the tabId that produced them — never reuse a ref from tab 10 on tab 20
- If you need exclusive use of a tab,
browser_tabs { action: "lock", tabId }first, thenunlockwhen done
If tabId is missing you'll get: "tabId is required. Call browser_tabs list first."
Before You Start
- Verify the extension is connected:
browser_tabs { action: "list" }(returns the tab list) - If disconnected, ask the user to check the extension icon (should show green "ON")
- Never close tabs you didn't create
If only browser_tools is visible (progressive mode)
The server hides tool definitions until needed (BROWSER_CONTROLLER_PROGRESSIVE=1). Use browser_tools { action: "list" } or { action: "search", query: "…" } to discover tools, then { action: "details", tool: "browser_click" } to get the schema and activate it. A "Tool X disabled" error means activate it via details first; once activated it stays callable for the session.
Reading Pages
browser_snapshot { tabId } returns the accessibility tree with refs like "e12" that you use for interaction.
For large pages, scope with a selector: browser_snapshot { tabId, selector: "main" }.
When the default tree mislabels or misses a control (custom widgets, aria-labelledby chains, aria-hidden overlays), ask for Chrome's own accessibility tree: browser_snapshot { tabId, source: "native" }. Same output shape and the refs work with every tool; it attaches the debugger (yellow banner) and falls back to the default tree, with nativeUnavailable, if it can't.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +1 lines bed5747bfb22
- 7d ago Changed · +4 lines d9c7a78765a3
- 9d ago Changed · +71 lines 1ced7a3745b2
- 1mo ago First seen · 79 lines · 34 tokens per session scan A 0a700028b2c6
browser-automation is a skill published in the GitHub repository compnew2006/browser-controller (8 stars, last pushed yesterday), licensed MIT. It adds 34 tokens to every session and 2,870 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
chrome-bridge
Recipes for the user's real, logged-in Chrome through the chrome-bridge MCP tools and the zero-token chrome-bridge CLI. Use when a browser task needs a multi-step recipe — a form "until the email arrives", a checkout with a test card, a pixel/GTM check, a cookie-banner audit, redirects after a migration, a page…
signed-in-browser
Drive the browser the user is already signed into, instead of a cold automation profile. Use when a task lives behind a login — a dashboard, an admin console, an internal tool, a ticket queue, a bank or billing page, webmail, a social account — or when a scripted login is failing on SSO, MFA, CAPTCHA or bot detection.…
post-to-hacker-news
Submit to Hacker News, including Show HN, by driving a signed-in browser. Use when launching a product, tool or MCP server, or when a submission needs its customary author comment. Covers the title rules, when a Show HN is allowed, the url-or-text choice, and how to tell a real submission from a silent failure.
website-explorer
Discover website capabilities from user behaviors. Learn APIs and automate workflows.
website-explorer
A guide for exploring websites through user actions, discovering their APIs, and documenting reusable automation procedures. It stores findings as structured manuals covering pages, navigation, workflows, and API endpoints.
chrome-actuator
Drive the user's real Chrome from the agent. Use when browsing, clicking, filling forms, or verifying a web UI in the already-logged-in Chrome profile. Compatible with Grok Build. Not affiliated with xAI.