Borrowing it
Nothing to install: this file belongs to irahardianto/rugged-gemini. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/irahardianto/rugged-gemini/main/.gemini/skills/browser-automation/SKILL.mdgit clone --depth 1 https://github.com/irahardianto/rugged-geminiWrote 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/irahardianto/rugged-gemini/browser-automation)<a href="https://agentmods.dev/skills/irahardianto/rugged-gemini/browser-automation"><img src="https://agentmods.dev/badge/skills/irahardianto/rugged-gemini/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/irahardianto/rugged-gemini/browser-automation"><img src="https://agentmods.dev/badge/skills/irahardianto/rugged-gemini/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.00039 | $0.04903 |
| Opus 5 | $0.00019 | $0.02452 |
| Sonnet 5 | $0.00008 | $0.00981 |
| Haiku 4.5 | $0.00004 | $0.00490 |
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 10d 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.
This is a copy
97% identical to browser-automation — 35 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 610 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser Automation (Playwright MCP)
Tool Hierarchy
PRIMARY — MCP tools (always prefer):
mcp_playwright_browser_snapshot— read page structure, get element refsmcp_playwright_browser_navigate— go to URLmcp_playwright_browser_click— click elementmcp_playwright_browser_type— type into elementmcp_playwright_browser_fill_form— fill multiple form fieldsmcp_playwright_browser_select_option— dropdown selectionmcp_playwright_browser_hover— hover elementmcp_playwright_browser_drag— drag and dropmcp_playwright_browser_drop— drop files/data onto elementmcp_playwright_browser_press_key— keyboard inputmcp_playwright_browser_evaluate— execute JS on pagemcp_playwright_browser_wait_for— wait for text/disappearance/timemcp_playwright_browser_console_messages— read console outputmcp_playwright_browser_network_requests— list network activitymcp_playwright_browser_network_request— inspect single requestmcp_playwright_browser_file_upload— upload filesmcp_playwright_browser_handle_dialog— accept/dismiss dialogsmcp_playwright_browser_tabs— manage tabsmcp_playwright_browser_resize— change viewportmcp_playwright_browser_run_code_unsafe— arbitrary Playwright code (escape hatch)
FALLBACK — CLI via run_command (only when MCP lacks capability):
- Tracing start/stop
- Video recording
- Persistent browser profiles
- Browser installation (
npx playwright install)
NEVER mix MCP and CLI for the same session. One approach per workflow.
Snapshot-First Workflow
Every browser interaction follows this loop:
- Snapshot —
mcp_playwright_browser_snapshotto understand current state - Act — click/type/navigate using refs from snapshot
- Verify — snapshot again to confirm mutation took effect
Rules:
- ALWAYS snapshot before first interaction on a page
- Use snapshot element refs (
ref="e5") for targeting — not CSS selectors - After navigation or state mutation, snapshot again to read new state
- Use
depthparam to limit snapshot size for large pages - Use
targetparam to scope snapshot to a subtree
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.
- 10d ago First seen · 610 lines · 39 tokens per session scan A 6a439a0d31a6
browser-automation is a skill published in the GitHub repository irahardianto/rugged-gemini (5 stars, last pushed 4mo ago), licensed MIT. It adds 39 tokens to every session and 4,903 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 97% identical to browser-automation, differing in 35 lines, and is treated as a copy.
Other skills, from other repositories
browse
Drive a real browser through Aside: open a page, read it, click through a flow, take screenshots, check console errors. (gstack).
playwright-cli
A command-line tool for controlling Chromium, Firefox, and WebKit browsers, including navigation, page interaction, screenshots, PDFs, and recorded actions.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
create-verification-skill
Create a repo-local verification skill and exhaustive feature map for driving a real app through its UI, CLI, or API. Use for "create a verification skill", "make a verify skill for this repo", or "document how agents can verify this app".
browser-qa
A browser-based quality check for deployed web pages and user flows. It uses browser automation to test rendering, navigation, forms, interactions, responsive behaviour, and accessibility-related issues.
test-electron-app
Drive the real running PostHog Electron app (live tRPC, workspace-server, real data) over CDP with agent-browser. Connect to the running app on port 9222, test desktop changes against a local Django stack, snapshot the accessibility tree, inspect network requests, and screenshot only when explicitly asked. Use when…