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/lordmacu-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.
About
Reviews
Write a reviewNo 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
- Drive a managed Chrome session via CDP. Navigate, click, fill forms, read the DOM, take screenshots, run JS.
- License
- Apache-2.0
- Instructions
- 86 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "Browser" does not match folder "browser"
Files (1)
- SKILL.md
SKILL.md (first lines)
# Browser
Controls a real Chrome/Chromium instance managed by the agent process.
Use for tasks that require reading or interacting with a live web page:
research, scraping structured data, filling forms, downloading files,
grabbing a visual reference. Every tool call maps 1:1 to a Chrome
DevTools Protocol command, so actions are immediate — no sandbox.
## Use when
- "Open example.com and tell me what the homepage says"
- "Log in to this page and grab my account balance"
- "Screenshot the dashboard for me"
- "Find the cheapest flight on this comparison site"
- "Click the Accept cookies button before you read the page"
- "Fill this form with my saved details and submit"
## Do not use when
- You can answer with a simple HTTP GET — use `fetch-url` skill instead.
The browser is heavy; spinning it up for plain JSON is wasteful.
- Sites that ship a proper API (GitHub, Gmail, Slack). Use the matching
skill (`github`, `google`, etc.) which talks the API directly.
- Anti-bot protected sites (Cloudflare JS challenge, hCaptcha). The
browser can technically get past some, but you're one bot-detection
update from breaking. Ask the user first.
## Tools exposed
| Tool | When to call |
|---|---|
| `browser_navigate {url}` | Go to an absolute URL. Wait for load. Call first on any new page. |
| `browser_snapshot` | Text representation of the DOM with element refs (`@e1`, `@e2`…). Primary way to "see" a page. Refresh refs by calling again after any navigate/click. |
| `browser_screenshot` | Base64 PNG of the viewport. For vision-capable models, or when layout matters. Don't call blindly — snapshot is cheaper. |
| `browser_click {target}` | Click an element. `target` is an `@eN` from the latest snapshot or a CSS selector. Prefer `@eN`. |
| `browser_fill {target, value}` | Replace the contents of an input / textarea. `value` is literal — special keys don't work here. |
| `browser_press_key {key}` | Dispatch a keyboard event on the focused element. Names: `Enter`, `Tab`, `Escape`, `Arrow{Up,Down,Left,Right}`. Anything else is treated as a literal char. |
| `browser_scroll_to {target}` | Scroll an element into view. Do this before clicking items the snapshot flagged as below the fold. |
| `browser_wait_for {selector, timeout_ms?}` | Poll until a CSS selector appears. Use between `browser_click` and the next `browser_snapshot` when the page triggers an XHR/SPA transition. |
| `browser_evaluate {script}` | Run arbitrary JS. Escape hatch for anything the other tools can't express. Returned value is in `result`. |
| `browser_current_url` | Shortcut for `browser_evaluate{ 'location.href' }`. |
| `browser_go_back` / `browser_go_forward` | Step through the history stack. |
## Canonical workflow
```
1. browser_navigate({url: "https://example.com"})
2. browser_snapshot() ← read the page, collect refs
3. browser_fill({target: "@e12", value: "user@example.com"})
4. browser_fill({target: "@e13", value: "s3cret"})
5. browser_click({target: "@e14"}) ← submit
6. browser_wait_for({selector: ".dashboard"})
7. browser_snapshot() ← confirm logged in, collect new refs
```
Element refs (`@eN`) are only valid inside the snapshot that produced
them — as soon as the DOM changes, re-call `browser_snapshot` before
referencing more refs. CSS selectors stay valid across snapshots, but
the LLM usually gets better accuracy with refs.
## Failure modes
- `{ok: false, error: "navigate timed out"}` — page didn't fire `load`
within the timeout. Retry once with a longer implicit timeout via
evaluate, or check if the URL is wrong.
- `{ok: false, error: "element not found"}` — the `@eN` is stale or the
selector doesn't match. Call `browser_snapshot` again.
- `{ok: false, error: "circuit breaker ... open"}` — the plugin is
cooling off after repeated failures. Wait a few seconds or ask the
user to retry.
## Gotchas
- The browser is shared across agents that have `plugins: [browser]` —
actions interleave. For side-effect-free reads it's fine; for stateful
sessions (logins), give each agent its own `user_data_dir` in
`config/plugins/browser.yaml`.
- Screenshots are PNG base64, usually 100–500 KB. Don't pipe them
through `browser_evaluate` — hit the tool directly.
- `browser_evaluate` returns the value of the last expression. Wrap
complex objects in `JSON.stringify(...)` if you need the full shape.
- Headless mode is opt-in via `browser.headless: true`. With a visible
window the user sees exactly what you're doing — useful for trust,
expensive in CPU.From lordmacu/nexo-rs, Apache-2.0.
More from lordmacu/nexo-rs
- 0.525score
Google OAuth
lordmacu
Authenticate against the user's own Google account (Gmail, Drive, Calendar, Sheets, etc.) via the installed-application OAuth 2.0 flow and make authenticated…
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Google
lordmacu
Gmail, Calendar, Tasks, Drive, Contacts (People), and Photos via Google APIs with OAuth refresh tokens.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenStreetMap
lordmacu
Forward and reverse geocoding via Nominatim (no API key, ~1 req/sec).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
DNS Tools
lordmacu
Resolve DNS records (A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA), PTR reverse, and WHOIS.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Fetch URL
lordmacu
HTTP GET/POST utility with size cap, SSRF guard, retries, and circuit breaker.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Cloudflare
lordmacu
Manage Cloudflare zones, DNS records, and cache via API token.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
1Password
lordmacu
Read 1Password secrets via the `op` CLI with a service-account token.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenAI Whisper
lordmacu
Transcribe audio files (≤25 MB) to text via OpenAI-compatible Whisper API.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
PDF Extract
lordmacu
Extract plain UTF-8 text from local PDF files; pipeline input for summarize.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Remember
lordmacu
Memory hygiene workflow to classify, deduplicate, and promote durable knowledge across local memory layers.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Endpoint Check
lordmacu
HTTP probe (status + latency) and TLS certificate inspection (expiry, issuer, SANs).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
GitHub
lordmacu
Read pull requests, issues and CI checks via GitHub REST API.
SkillCFreshness: C★ 8Claude Code +9
Signals
- Stars
- 8
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Apr 24, 2026 (6 months ago)
- Last release
- May 11, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/lordmacu/nexo-rs
- Website
- lordmacu.github.io/nexo-rs/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lordmacu
- 0.525score
Google OAuth
lordmacu
Authenticate against the user's own Google account (Gmail, Drive, Calendar, Sheets, etc.) via the installed-application OAuth 2.0 flow and make authenticated…
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Cloudflare
lordmacu
Manage Cloudflare zones, DNS records, and cache via API token.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
DNS Tools
lordmacu
Resolve DNS records (A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA), PTR reverse, and WHOIS.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Fetch URL
lordmacu
HTTP GET/POST utility with size cap, SSRF guard, retries, and circuit breaker.
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
OpenStreetMap
lordmacu
Forward and reverse geocoding via Nominatim (no API key, ~1 req/sec).
SkillCFreshness: C★ 8Claude Code +9 - 0.522score
Google
lordmacu
Gmail, Calendar, Tasks, Drive, Contacts (People), and Photos via Google APIs with OAuth refresh tokens.
SkillCFreshness: C★ 8Claude Code +9
Cite this page
Browser skill. Agent Mart. https://agentmart.dev/skills/lordmacu-browser (last updated 2026-10-24)