webbrowser

webbrowser is a skill for Claude Code, Codex from aduermael/herm. It costs 33 tokens per session (3,460 once invoked), scanned A, original, MIT.

A browser interaction skill for searching the web, opening pages, using authenticated sites, submitting forms, uploading or downloading files, and taking screenshots.

In plain words
What is it for?
Use it for web research, browser-based tasks, form submission, file transfer, visual page inspection, or handing control to the user.
Why use it?
It provides a defined way to inspect and operate websites, including pages that need JavaScript or a logged-in session.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions subagents.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /home/herm/report.pdf.

Install

Getting it into your agent

There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.

Made for: Claude Code, Codex.

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 webbrowser

README.md
[![agentmods](https://agentmods.dev/badge/skills/aduermael/herm/webbrowser.svg)](https://agentmods.dev/skills/aduermael/herm/webbrowser)
Your own site
<a href="https://agentmods.dev/skills/aduermael/herm/webbrowser"><img src="https://agentmods.dev/badge/skills/aduermael/herm/webbrowser.svg" alt="Measured on agentmods" height="20"></a>
Per session 33 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,460 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00033 $0.03460
Opus 5 $0.00016 $0.01730
Sonnet 5 $0.00007 $0.00692
Haiku 4.5 $0.00003 $0.00346

Measured 6d ago against content hash 4ac95e91e53c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

webbrowser 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 6d 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.

app/apple/herm/Skills/webbrowser/SKILL.md · 279 lines

How it starts

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

Webbrowser

Use this skill when a task needs web search, page browsing, browser interaction, screenshots, or a handoff where the user needs to see or operate the browser.

Prefer webbrowser over raw HTTP when the page needs JavaScript, logged-in state, form interaction, or visual inspection.

Cookbook (do this first)

You are reading this file because the skill was loaded into context. The webbrowser API is a global (like fs). Do not require("webbrowser").

Happy path — stay in the background and read the page yourself:

-- 1) Open (mobile layout + lean resources by default). Capture the return value.
local opened = webbrowser.open("https://www.google.com/search?q=barber+shop+near+Menlo+Park+CA")
print(opened) -- JSON: browser id, layoutMode, page snapshot
local browser = opened.browser

-- 2) Read content with page() — this is how you "see" the site without show().
local snap = webbrowser.page(browser, { fields = {"title", "url", "text", "actions"} })
print(snap)

-- 3) Answer the user from snap.page.text / actions. Do NOT call show() for this.

Rules that fix the common failures

  1. Never call webbrowser.show() for ordinary search/browse. The browser runs offscreen. show() is only for user handoff (login, CAPTCHA, payment, or the user asked to see the window).
  2. Always capture open/create results. local opened = webbrowser.open(url) then opened.browser. Discarding the return loses the id and the first page snapshot.
  3. Use webbrowser.page(browser) to read sites. Do not invent current_page, get, inspect, or search. If unsure, print(webbrowser.help()) once.
  4. Mobile by default. New browsers use phone viewport + mobile Safari UA (layoutMode="mobile"). Switch the same instance with webbrowser.set_layout(browser, "desktop") only when a site needs a desktop UI; switch back with "mobile" if helpful.
  5. Prefer working in the main agent for one search + one page() read. Use a sub-agent only for multi-page research, and give it this same recipe (global webbrowser, openpage, no show).

Read the full file on GitHub · 279 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. 6d ago First seen · 279 lines · 33 tokens per session scan A 4ac95e91e53c

Subscribe to this mod's changes

webbrowser is a skill published in the GitHub repository aduermael/herm (232 stars, last pushed 24d ago), licensed MIT. It adds 33 tokens to every session and 3,460 once invoked, about $0.0002 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-30.

Related

Other skills, from other repositories

computer-use

Use Orca's computer-use CLI for OS/window-level inspection and input in visible local app windows. Use when a task must read or operate a native app or an external browser window (for example, Chrome, Edge, or Safari) or an app webview. Do not use for Orca's embedded browser or page-only browser automation. Use…

stablyai/orca · 99 tokens

computer-use

Full desktop control on macOS, Windows, Linux, and HarmonyOS — accessibility-first observation and actions with pixel fallback, screenshots, zoom, screen recording, and switching between registered computers as a default.

Hmbown/Codewhale · 43 tokens

webapp-testing

Start/reuse a local app, wait for readiness, inspect rendered state/console/network, act from observed selectors, and verify with evidence.

Hmbown/CodeWhale · 32 tokens

browse

Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch/search, diagnostics, and Browse.sh skill discovery/installation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase…

rivet-dev/agentos · 109 tokens

verify

Drive an engine app headlessly in a pty, record a video of the whole verification, and open a summary page (video + timeline + checks) with pixel open.

zenbu-labs/terminal-browser · 37 tokens

h5i

Use when browsing the web or a local app on behalf of a user, or when work should run inside a disposable, confined development box instead of on the host — opening a browser session and reading a page as an outline with @ref handles, auditing what that session actually reached, reviewing a pull request or any…

h5i-dev/h5i · 106 tokens