Skip to content
Agentmart
Submit a tool

avad-browse

Fast headless browser for QA testing and site dogfooding.

Skill by agwacom

IndexedMIT
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/agwacom-avad-browse

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

Fast headless browser for QA testing and site dogfooding. Navigate any URL, interact with elements, verify page state, diff before/after actions, take annotated screenshots, check responsive layouts, test forms and uploads, handle dialogs, assert element states, and import cookies from your real browser for authenticated page testing. ~100ms per command. Use when you need to test a feature, verify a deployment, dogfood a user flow, or file a bug with evidence. Do NOT use for automated CI pipelines, non-browser tasks, or general code execution — this is an interactive browser tool for QA and dogfooding.

Use cases: testing, devops

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
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/avad-browse

What's inside

Skill name
avad-browse
Description
Fast headless browser for QA testing and site dogfooding. Navigate any URL, interact with elements, verify page state, diff before/after actions, take annotated screenshots, check responsive layouts, test forms and uploads, handle dialogs, assert element states, and import cookies from your real browser for authenticated page testing. ~100ms per command. Use when you need to test a feature, verify a deployment, dogfood a user flow, or file a bug with evidence. Do NOT use for automated CI pipelines, non-browser tasks, or general code execution — this is an interactive browser tool for QA and dogfooding.
License
MIT
Instructions
278 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions call the network

Agent Skills spec issues

  • allowed-tools: must be a space-separated string

Files (45)

  • ARCHITECTURE.md
  • BROWSER.md
  • SKILL.md
  • SKILL.md.tmpl
  • find-browse · bin/
  • remote-slug · bin/
  • .version · dist/
  • avad-browse · dist/
  • find-browse · dist/
  • browser-manager.ts · src/
  • buffers.ts · src/
  • cli.ts · src/
  • commands.ts · src/
  • config.ts · src/
  • cookie-import-browser.ts · src/
  • cookie-picker-routes.ts · src/
  • cookie-picker-ui.ts · src/
  • find-browse.ts · src/
  • meta-commands.ts · src/
  • read-commands.ts · src/
  • server.ts · src/
  • snapshot.ts · src/
  • url-validation.ts · src/
  • write-commands.ts · src/
  • commands.test.ts · test/
  • config.test.ts · test/
  • cookie-import-browser.test.ts · test/
  • cookie-picker-routes.test.ts · test/
  • find-browse.test.ts · test/
  • basic.html · test/fixtures/
  • cursor-interactive.html · test/fixtures/
  • dialog.html · test/fixtures/
  • empty.html · test/fixtures/
  • forms.html · test/fixtures/
  • qa-eval-checkout.html · test/fixtures/
  • qa-eval-spa.html · test/fixtures/
  • qa-eval.html · test/fixtures/
  • responsive.html · test/fixtures/
  • snapshot.html · test/fixtures/
  • spa.html · test/fixtures/
  • states.html · test/fixtures/
  • upload.html · test/fixtures/
  • snapshot.test.ts · test/
  • test-server.ts · test/
  • url-validation.test.ts · test/

SKILL.md (first lines)

<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

# avad-browse: QA Testing & Dogfooding

Persistent headless Chromium. First call auto-starts (~3s), then ~100ms per command.
State persists between calls (cookies, tabs, login sessions).

## SETUP (run this check BEFORE any browse command)

```bash
_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
B=""
# Primary tiers — new name (7 tiers)
[ -n "$_ROOT" ] && [ -x "$_ROOT/skills/avad-browse/dist/avad-browse" ] && B="$_ROOT/skills/avad-browse/dist/avad-browse"
[ -z "$B" ] && [ -n "$_ROOT" ] && for _D in "$_ROOT"/*/skills/avad-browse/dist/avad-browse; do [ -x "$_D" ] && B="$_D" && break; done 2>/dev/null
[ -z "$B" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/avad-browse/dist/avad-browse" ] && B="$_ROOT/.claude/skills/avad-browse/dist/avad-browse"
[ -z "$B" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/avadbot/avad-browse/dist/avad-browse" ] && B="$_ROOT/.claude/skills/avadbot/avad-browse/dist/avad-browse"
[ -z "$B" ] && [ -x ~/.claude/skills/avad-browse/dist/avad-browse ] && B=~/.claude/skills/avad-browse/dist/avad-browse
[ -z "$B" ] && [ -x ~/.claude/skills/avadbot/avad-browse/dist/avad-browse ] && B=~/.claude/skills/avadbot/avad-browse/dist/avad-browse
[ -z "$B" ] && for _P in ~/.claude/plugins/*/skills/avad-browse/dist/avad-browse; do [ -x "$_P" ] && B="$_P" && break; done 2>/dev/null
# Legacy fallbacks — old name (backward compat, 6 tiers)
[ -z "$B" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/skills/browse/dist/browse" ] && B="$_ROOT/skills/browse/dist/browse"
[ -z "$B" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/browse/dist/browse" ] && B="$_ROOT/.claude/skills/browse/dist/browse"
[ -z "$B" ] && [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/avadbot/browse/dist/browse" ] && B="$_ROOT/.claude/skills/avadbot/browse/dist/browse"
[ -z "$B" ] && [ -x ~/.claude/skills/browse/dist/browse ] && B=~/.claude/skills/browse/dist/browse
[ -z "$B" ] && [ -x ~/.claude/skills/avadbot/browse/dist/browse ] && B=~/.claude/skills/avadbot/browse/dist/browse
[ -z "$B" ] && for _P in ~/.claude/plugins/*/skills/browse/dist/browse; do [ -x "$_P" ] && B="$_P" && break; done 2>/dev/null
if [ -x "$B" ]; then
  echo "READY: $B"
else
  echo "NEEDS_SETUP"
fi
```

If `NEEDS_SETUP`:
1. Tell the user: "avadbot browse needs a one-time build (~10 seconds). OK to proceed?" Then STOP and wait.
2. Find the avadbot root (contains `package.json` with `"name": "avadbot"`): `AVADBOT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)/avadbot; [ -f "$AVADBOT_ROOT/package.json" ] || AVADBOT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null); [ -f "$AVADBOT_ROOT/package.json" ] || echo "Cannot find avadbot root"`
3. Build: `cd "$AVADBOT_ROOT" && bun install && bun run build`
4. If `bun` is not installed: `curl -fsSL https://bun.sh/install | bash`

## Cookie Import Workflow

To test authenticated pages, import cookies from your real browser:

### Quick (direct import)
```bash
$B cookie-import-browser comet --domain github.com
```

### Interactive (picker UI)
```bash
$B cookie-import-browser
```
Opens a picker UI — select domains to import, then verify:
```bash
$B cookies
```

**Notes:**
- First import per browser may trigger a macOS Keychain dialog — click "Allow"
- Supported browsers: Comet, Chrome, Arc, Brave, Edge
- Cookies persist for the session — import once, then browse authenticated pages

## Core QA Patterns

### 1. Verify a page loads correctly
```bash
$B goto https://yourapp.com
$B text                          # content loads?
$B console                       # JS errors?
$B network                       # failed requests?
$B is visible ".main-content"    # key elements present?
```

### 2. Test a user flow
```bash
$B goto https://app.com/login
$B snapshot -i                   # see all interactive elements
$B fill @e3 "user@test.com"
$B fill @e4 "password"
$B click @e5                     # submit
$B snapshot -D                   # diff: what changed after submit?
$B is visible ".dashboard"       # success state present?
```

### 3. Verify an action worked
```bash
$B snapshot                      # baseline
$B click @e3                     # do something
$B snapshot -D                   # unified diff shows exactly what changed
```

### 4. Visual evidence for bug reports
```bash
$B snapshot -i -a -o /tmp/annotated.png   # labeled screenshot
$B screenshot /tmp/bug.png                # plain screenshot
$B console                                # error log
```

### 5. Find all clickable elements (including non-ARIA)
```bash
$B snapshot -C                   # finds divs with cursor:pointer, onclick, tabindex
$B click @c1                     # interact with them
```

### 6. Assert element states
```bash
$B is visible ".modal"
$B is enabled "#submit-btn"
$B is disabled "#submit-btn"
$B is checked "#agree-checkbox"
$B is editable "#name-field"
$B is focused "#search-input"
$B js "document.body.textContent.includes('Success')"
```

### 7. Test responsive layouts
```bash
$B responsive /tmp/layout        # mobile + tablet + desktop screenshots

From agwacom/avadbot, MIT.

More from agwacom/avadbot

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Mar 24, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from agwacom

Cite this page

avad-browse skill. Agent Mart. https://agentmart.dev/skills/agwacom-avad-browse (last updated 2026-10-24)