Skip to content
Skill

gsd-browser

by gsd-build

AI Summary

1. The daemon auto-starts. It starts on first command. Use to clean up. Use only if you need to pre-warm the browser before issuing commands. 2. Always re-snapshot after page changes. Refs are versioned (). After navigation, form submission, or dynamic content loading, old refs are stale. Run to

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to install the "gsd-browser" skill in my project.

Please run this command in my terminal:
# Install skill into your project
mkdir -p .claude/skills/gsd-browser && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/skills/gsd-browser/SKILL.md "https://raw.githubusercontent.com/gsd-build/gsd-browser/main/SKILL.md"

Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.

Description

Native Rust browser automation CLI for AI agents. Use when the user needs to interact with websites — navigating pages, filling forms, clicking buttons, taking screenshots, extracting structured data, running assertions, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", "visual regression test", "check for prompt injection", or any task requiring programmatic web interaction.

Critical Rules

• The daemon auto-starts. It starts on first command. Use daemon stop to clean up. Use daemon start only if you need to pre-warm the browser before issuing commands. • Always re-snapshot after page changes. Refs are versioned (@v1:e1). After navigation, form submission, or dynamic content loading, old refs are stale. Run gsd-browser snapshot to get fresh refs. • Use --json when parsing output. Use text mode when reading output yourself. Use --json when you need to extract values programmatically (e.g., checking assertion results, parsing snapshot refs). • Positional args have no flag prefix. Commands like click, type, hover take positional args — do NOT add --selector. See exact syntax in command reference below. • Prefer batch for multi-step flows. Batch executes all steps in a single daemon connection, avoiding any session edge cases. Use separate commands only when you need to parse intermediate output (e.g., snapshot to discover refs).

Core Workflow

Every browser automation follows this pattern: • Navigate: gsd-browser navigate <url> • Snapshot: gsd-browser snapshot (get versioned refs like @v1:e1, @v1:e2) • Interact: Use refs to click, fill, hover • Re-snapshot: After navigation or DOM changes, get fresh refs `bash gsd-browser navigate https://example.com/form gsd-browser snapshot

Output: @v1:e1 [input type="email"], @v1:e2 [input type="password"], @v1:e3 [button] "Submit"

gsd-browser fill-ref @v1:e1 "user@example.com" gsd-browser fill-ref @v1:e2 "password123" gsd-browser click-ref @v1:e3 gsd-browser wait-for --condition network_idle gsd-browser snapshot # REQUIRED — old refs are now stale `

Command Chaining

Commands can be chained with && in a single shell invocation. The browser persists between commands via a background daemon. `bash

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 6d ago
Active
Adoption100+ stars on GitHub
193 ★ · Growing
DocsREADME + description
Well-documented

GitHub Signals

Stars193
Forks13
Issues1
Updated6d ago
View on GitHub
Apache-2.0 License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code