browse

browse is a skill for Claude Code from forjd/agent-skills. It costs 80 tokens per session (1,598 once invoked), scanned A, original, MIT.

A command-line browser automation tool that controls web pages through a real browser.

In plain words
What is it for?
Use it to interact with websites, extract page data, test web interfaces, and run browser-based health checks.
Why use it?
It removes repetitive manual browser work when a task requires navigation, form entry, clicks, screenshots, or checking a rendered page.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Use it to interact with websites, extract page data, test web interfaces, and run browser-based health checks.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/forjd/agent-skills/browse
Install

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.

Any agent
npx skills add forjd/agent-skills --skill browse
Clone the repo
git clone --depth 1 https://github.com/forjd/agent-skills

Made for: Claude Code.

Wrote 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.

agentmods badge for browse

README.md
[![agentmods](https://agentmods.dev/badge/skills/forjd/agent-skills/browse.svg)](https://agentmods.dev/skills/forjd/agent-skills/browse)
Your own site
<a href="https://agentmods.dev/skills/forjd/agent-skills/browse"><img src="https://agentmods.dev/badge/skills/forjd/agent-skills/browse.svg" alt="Measured on agentmods" height="20"></a>
Per session 80 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,598 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00080 $0.01598
Opus 5 $0.00040 $0.00799
Sonnet 5 $0.00016 $0.00320
Haiku 4.5 $0.00008 $0.00160

Measured 7d ago against content hash b3aa87978e89, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

browse 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 7d 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.

skills/browse/SKILL.md · 136 lines

How it starts

The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Browse — Browser Automation for Agents

Setup

Check if browse is installed:

browse version

If not installed, ask the user before installing. Prefer a pinned release artifact with a published checksum or signature. Do not pipe a mutable remote script directly into bash. If the user approves a convenience installer, download it to a temporary file, show the source URL, inspect or verify it where possible, then execute the local file.

How it works

browse is a CLI that wraps Playwright behind a persistent daemon on a Unix socket. The daemon cold-starts in ~3s on first use, then every command runs in sub-200ms. Session state (cookies, localStorage, auth tokens) persists across commands within a session.

All output is plain text. Objects are JSON-stringified. Commands return non-zero on failure with an error message.

Important constraints:

  • Commands are sequential — do not run multiple browse commands in parallel. The daemon handles one command at a time.
  • Run browse help for the full command list, or browse help <command> for detailed usage and flags.

The ref system — read this first

Refs (@e1, @e2, ...) are how you target elements. They replace CSS selectors for most interactions.

Rules:

  1. Always browse snapshot before interacting. Refs only exist after a snapshot.
  2. Refs are ephemeral. Every snapshot call regenerates them. Old refs are invalid.
  3. Refs go stale after navigation. Any goto or click that changes the page invalidates refs. You'll get a clear error — just browse snapshot again.

Core interaction loop:

browse snapshot              # see what's on the page — get refs
browse fill @e3 "test"       # fill the search field
browse click @e4             # click a button
browse snapshot              # re-snapshot after the page changes

Workflow

The standard pattern for any browser task:

  1. Navigate: browse goto <url>
  2. Observe: browse snapshot for page structure (interactive elements with refs). Use browse snapshot -i to include structural elements (headings, text), or -f for the full accessibility tree.
  3. Check for errors: browse console --level error after navigation.
  4. Interact: browse fill @eN "value", browse click @eN, browse hover @eN, browse press Tab, browse select @eN "option", browse scroll @eN (scroll into view).
    • Use browse press <key> for keyboard navigation (Tab, Escape, Enter, ArrowDown, Shift+Tab, etc.). Multiple keys: browse press Tab Tab Tab.
    • Use browse scroll down/up to page through content, browse scroll top/bottom to jump to extremes.
    • After clicks that trigger SPA navigation, use browse wait url /path, browse wait text "Expected", or browse wait visible .selector before snapshotting.
  5. Verify: browse snapshot or browse screenshot after each interaction to confirm the result.
  6. Repeat: Move through pages and flows.

Read the full file on GitHub · 136 lines

Changes

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.

  1. 7d ago First seen · 136 lines · 80 tokens per session scan A b3aa87978e89

Subscribe to this mod's changes

browse is a skill published in the GitHub repository forjd/agent-skills (2 stars, last pushed 3mo ago), licensed MIT. It adds 80 tokens to every session and 1,598 once invoked, about $0.0004 per session on Opus 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.

Related

Other skills, from other repositories

playwright-recording

Record browser interactions as video using Playwright. Use for capturing demo videos, app walkthroughs, and UI flows for Remotion videos. Triggers include recording a demo, capturing browser video, screen recording a website, or creating walkthrough footage.

digitalsamba/claude-code-video-toolkit · 53 tokens

unix_computer_use

Local and remote desktop observation/input tools with coordinate normalization (local macOS/Linux by default; optional OSWorld HTTP and SSH Mac backends).

razzant/ouroboros · 33 tokens

memstack-development-webapp-testing

Use when the user says 'write browser tests', 'test this page', 'playwright test', 'e2e test', 'end to end test', 'browser test', 'test the UI', or needs Playwright-based browser testing for a web application. Do NOT use for unit tests, API tests, or non-browser testing.

cwinvestments/memstack · 75 tokens

ask-opencli

A helper for asking Grok or Gemini through OpenCLI, which uses an already signed-in Chrome browser session instead of a paid API.

majiayu000/spellbook · 95 tokens

browser-doctor

Read-only health check on browser-control setup. Verifies browser binary, Playwright MCP Bridge extension presence, token file mode/contents, AIWG MCP registration, provider config injection, and optional workspace allow-list. Outputs pass/fail per check with remediation commands.

jmagly/aiwg · 56 tokens

e2e

Generate and run Playwright E2E tests traced to spec.md acceptance criteria, with an optional accessibility audit. Use when saying "e2e tests" or "a11y audit".

anton-abyzov/specweave · 38 tokens