Skip to content
Agentmart
Submit a tool

browser

Navigate web pages, read content, and interact with elements via headless Chrome.

Skill by Calhooon

IndexedApache-2.0★ 6
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/calhooon-browser

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Navigate web pages, read content, and interact with elements via headless Chrome.

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/browser

What's inside

Skill name
browser
Description
Navigate web pages, read content, and interact with elements via headless Chrome.
License
Apache-2.0
Instructions
57 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Browser Automation

Use the `browser` tool for JavaScript-heavy sites, form filling, clicking buttons, and reading dynamic content. For simple HTTP fetches, prefer `web_fetch` (free, no Chrome needed).

## Core Pattern: Snapshot-Ref-Act

1. **Navigate** to a URL
2. **Snapshot** to get the accessibility tree with element refs (e1, e2, ...)
3. **Interact** using refs: click, type, select
4. **Snapshot again** after each interaction to see the updated state

```json
browser({"action": "navigate", "url": "https://example.com"})
browser({"action": "snapshot"})
browser({"action": "click", "ref": "e3"})
browser({"action": "snapshot"})
browser({"action": "type", "ref": "e4", "text": "hello"})
```

## Actions

| Action | Required params | Description |
|--------|----------------|-------------|
| `navigate` | `url` | Open a URL (http/https only). Invalidates refs. |
| `snapshot` | | Get accessibility tree with interactive element refs. |
| `click` | `ref` | Click an element by ref. Invalidates refs. |
| `type` | `ref`, `text` | Type text into a field by ref. Invalidates refs. |
| `select` | `ref`, `value` | Select dropdown option by text or value. Invalidates refs. |
| `evaluate` | `expression` | Run JavaScript and return the result. |
| `screenshot` | | Save a PNG screenshot to workspace. |
| `close` | | Close current page. Use `page: "all"` to shut down Chrome. |

## Tips

- **Use URLs exactly as given** — NEVER correct, fix typos, or modify URLs the user provides. If they say `teragun.com`, navigate to `teragun.com`, not `theragun.com`.
- **Always snapshot after interactions** — refs are invalidated by click/type/select/evaluate.
- **Refs like `[e1]`** only appear on interactive elements (buttons, links, inputs, etc.).
- **Stale ref error** means you need a fresh snapshot.
- **Chrome launches lazily** on first `navigate` (~2-3s cold start).
- **Chrome auto-closes at task end** — you don't need to call close manually, but you can to free resources mid-task.
- **Multiple pages**: Pass `"page": "mypage"` to navigate/snapshot/close named pages (default is "main", max 3).

## When NOT to Use

- Simple HTTP GET → use `web_fetch` (free, faster)
- API calls → use `x402_call` or `web_fetch`
- Static HTML → use `web_fetch`

## Gotchas

- **ALWAYS snapshot before clicking or typing.** You need ref IDs from the accessibility tree — without a fresh snapshot, you have no valid refs.
- **Use ref IDs from snapshot (e.g. `[e1]`, `[e2]`), NOT CSS selectors.** The browser tool only accepts refs like `"e3"`, not selectors like `".btn-submit"`.
- **The browser tool is discoverable via `search_tools`, not always-on.** It won't appear in your tool list until you search for it.
- **`file://` and `javascript:` URLs are blocked** for security. Only `http://` and `https://` are allowed.
- **Max 3 concurrent pages — close pages when done.** Use `browser({"action": "close"})` to free resources, or `"page": "all"` to shut down Chrome entirely.

From Calhooon/dolphinmilk, Apache-2.0.

Signals

Stars
6
Forks
2
Open issues
0
Last commit (this folder)
Apr 15, 2026 (6 months ago)
Last release
Apr 17, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Calhooon

Cite this page

browser skill. Agent Mart. https://agentmart.dev/skills/calhooon-browser (last updated 2026-10-24)