All skills
am-will avatar

/agent-browser

@e653550
by am.willam-will/codex-skills1k stars
60

A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.

Use this Skill: https://skilld.dev/gh/am-will/codex-skills/agent-browser

This session only. Nothing lands on disk.

SKILL.md

≈45 tokens always: the name and description. ≈1.3k when used: this file. ≈37 more on demand in 1 file.

Agent Browser

A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.

Installation

npm recommended

npm install -g agent-browser
agent-browser install
agent-browser install --with-deps

From Source

git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build
agent-browser install

Quick Start

agent-browser open example.com
agent-browser snapshot
agent-browser click @e2
agent-browser fill @e3 "test@example.com"
agent-browser get text @e1
agent-browser screenshot page.png
agent-browser close

Using Real Chrome Profile (for OAuth/Logged-in Sessions)

For sites requiring Google/Discord/etc login (like star-swap.com):

Method 1: Launch Chrome with custom profile, connect via CDP

# Terminal 1: Launch Chrome with your real profile and remote debugging
google-chrome --remote-debugging-port=9222 --user-data-dir=/home/willr/.config/google-chrome/Default &

# Terminal 2: Connect agent-browser to that Chrome instance
agent-browser --cdp 9222 open "https://star-swap.com"
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 click e2

# This reuses your existing Google session - no re-login needed!
# Works for: Google OAuth, Discord OAuth, any site you're logged into in Chrome

Method 2: Session persistence (first-time manual login)

# First time: headed mode, login manually
agent-browser --headed --session starswap open "https://star-swap.com"
# Complete Google OAuth manually in the browser window
# Close when done

# Future runs: cookies persist!
agent-browser --session starswap open "https://star-swap.com"
# Already logged in automatically

am.will.ryan Chrome profile: /home/willr/.config/google-chrome/Default

Core Commands

Navigation

agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser reload

Interaction

agent-browser click <sel>
agent-browser dblclick <sel>
agent-browser focus <sel>
agent-browser type <sel> <text>
agent-browser fill <sel> <text>
agent-browser clear <sel>
agent-browser press <key>
agent-browser keydown <key>
agent-browser keyup <key>
agent-browser hover <sel>
agent-browser select <sel> <val>
agent-browser check <sel>
agent-browser uncheck <sel>
agent-browser drag <src> <tgt>
agent-browser upload <sel> <files>

Extraction and Info

agent-browser snapshot
agent-browser get text <sel>
agent-browser get html <sel>
agent-browser get value <sel>
agent-browser get attr <sel> <attr>
agent-browser get title
agent-browser get url
agent-browser get count <sel>
agent-browser get box <sel>
agent-browser screenshot [path]
agent-browser pdf <path>

Check State

agent-browser is visible <sel>
agent-browser is enabled <sel>
agent-browser is checked <sel>

Find Elements

  • agent-browser find role <role> <action> [value]
  • agent-browser find text <text> <action>
  • agent-browser find label <label> <action> [value]
  • agent-browser find placeholder <ph> <action> [value]
  • agent-browser find alt <text> <action>
  • agent-browser find title <text> <action>
  • agent-browser find testid <id> <action> [value]

Actions include click, fill, check, hover, and text.

Wait and Timing

agent-browser wait <selector>
agent-browser wait <ms>
agent-browser wait --text "Welcome"
agent-browser wait --url "**/dash"
agent-browser wait --load networkidle

Advanced Control

agent-browser scroll <dir> [px]
agent-browser scrollintoview <sel>
agent-browser eval <js>
agent-browser mouse move <x> <y>
agent-browser cookies
agent-browser storage local
agent-browser tab new [url]
agent-browser frame <sel>
agent-browser dialog accept [text]

Sessions

Run multiple isolated browser instances.

agent-browser --session agent1 open site-a.com
agent-browser --session agent2 open site-b.com

Snapshot Options

The snapshot command supports filtering to reduce output size.

  • agent-browser snapshot -i
  • agent-browser snapshot -c
  • agent-browser snapshot -d 3
  • agent-browser snapshot -s "#main"

Selectors and Refs

Refs provide deterministic element selection from snapshots. Use the @ref syntax.

agent-browser snapshot
agent-browser click @e2

Agent Mode

Use --json for machine readable output.

agent-browser snapshot --json

Optimal AI Workflow

  • Navigate with agent-browser open <url>
  • Observe with agent-browser snapshot -i --json
  • Act with @ref from the snapshot
  • Verify with agent-browser snapshot

Troubleshooting

  • If the command is not found on Linux ARM64, use the full path in the bin folder.
  • If an element is not found, use snapshot to find the correct ref.
  • If the page is not loaded, add a wait command after navigation.
  • Use --headed to see the browser window for debugging.

Options

  • --session <name> uses an isolated session.
  • --json provides JSON output.
  • --full takes a full page screenshot.
  • --headed shows the browser window.
  • --timeout sets the command timeout in milliseconds.

Notes

  • Refs are stable per page load but change on navigation.
  • Always snapshot after navigation to get new refs.
  • Use fill instead of type for input fields to ensure existing text is cleared.

Source: SKILL.md on GitHub

2 alerts5mo5 checks · Risk HIGH
  • Gen Agent Trust Hub7mo

    This skill provides browser automation capabilities but introduces significant security risks by encouraging the use of local Chrome user profiles (containing cookies and session data) and providing an 'eval' command for arbitrary JavaScript execution. It is also highly vulnerable to indirect prompt injection from malicious websites.

  • Socket6mo

    No alerts

  • Snyk7mo

    Risk: CRITICAL · No issues

  • Runlayer7mo

    2/2 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at e653550. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Steadyupdated 9 months ago
Other metadata
read_when
[
  "Automating web interactions",
  "Extracting structured data from pages",
  "Filling forms programmatically",
  "Testing web UIs"
]
metadata
{
  "clawdbot": {
    "emoji": "🌐",
    "requires": {
      "bins": [
        "node",
        "npm"
      ]
    }
  }
}
  • Rust
  • CLI
  • browser-automation
  • headless
  • web-scraping
  • form-filling
  • web-testing
  • nodejs
  • chromium

README badge

README badge for am-will/codex-skills/agent-browser

A Rust-based headless browser automation CLI that executes structured commands to navigate, click, type, and extract data from web pages. Designed for AI agents to automate form filling, web scraping, and UI testing without writing browser automation code.

Generated from the current SKILL.md.

Does this work with OAuth and logged-in sessions?
Yes. You can connect to a real Chrome profile via Chrome DevTools Protocol (CDP) to reuse existing Google, Discord, or other OAuth sessions, or use session persistence to store cookies across runs.
What's the difference between the Rust CLI and Node.js fallback?
The skill uses a fast Rust-based CLI by default with a Node.js fallback if Rust is unavailable. Both expose the same command interface.
How do I select elements for clicking or filling?
Use @ref syntax from a snapshot (e.g., @e2), or use semantic finders like role, text, label, placeholder, testid, alt, and title to locate elements by their accessible properties.
Can I run multiple browser sessions simultaneously?
Yes. Use the --session flag to launch isolated browser instances that operate independently.
Does this support full-page screenshots and PDFs?
Yes. The skill supports screenshot [path] for PNG output and pdf <path> for PDF generation.

Generated from the current SKILL.md. These answers refresh after source changes.