browse
Fast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take screenshots, test responsive layouts, forms, uploads, dialogs, and assert element states. ~100ms per command after initial startup. Use when: "open in browser", "test the site", "take a screenshot", "dogfood this", "check this page", "QA test", "verify deployment".
Best use case
browse is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Fast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take screenshots, test responsive layouts, forms, uploads, dialogs, and assert element states. ~100ms per command after initial startup. Use when: "open in browser", "test the site", "take a screenshot", "dogfood this", "check this page", "QA test", "verify deployment".
Teams using browse should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/browse/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How browse Compares
| Feature / Agent | browse | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Fast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take screenshots, test responsive layouts, forms, uploads, dialogs, and assert element states. ~100ms per command after initial startup. Use when: "open in browser", "test the site", "take a screenshot", "dogfood this", "check this page", "QA test", "verify deployment".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
AI Agent for SaaS Idea Validation
Use AI agent skills for SaaS idea validation, market research, customer discovery, competitor analysis, and documenting startup hypotheses.
SKILL.md Source
# Browse — Headless Browser for QA Persistent headless Chromium. First call auto-starts (~3s), then ~100-200ms per command. State persists between calls (cookies, tabs, sessions). ## Requirements - **Bun** v1.0+ (required to build binary) - **Playwright Chromium** (installed automatically on first setup) - Container environments: set `CONTAINER=1` env var (auto-sandbox workaround) ## First-Time Setup ```bash cd founderclaw/browse bun install # install dependencies bun build src/cli.ts --compile --outfile dist/browse # build binary CONTAINER=1 dist/browse goto "https://example.com" # test it works ``` On first run, Playwright downloads Chromium (~150MB). Subsequent runs are instant. ## Usage All commands via Bash: `CONTAINER=1 /path/to/browse <command>` ### Navigation ```bash CONTAINER=1 $BROWSE goto https://yourapp.com CONTAINER=1 $BROWSE back CONTAINER=1 $BROWSE reload CONTAINER=1 $BROWSE url # print current URL ``` ### Content ```bash CONTAINER=1 $BROWSE text # readable text on page CONTAINER=1 $BROWSE html # full HTML CONTAINER=1 $BROWSE links # all links CONTAINER=1 $BROWSE forms # all forms ``` ### Interaction ```bash CONTAINER=1 $BROWSE click @e3 # click element by ref CONTAINER=1 $BROWSE fill @e4 "text" # fill input CONTAINER=1 $BROWSE select @e5 "option" CONTAINER=1 $BROWSE hover @e6 CONTAINER=1 $BROWSE type "hello" CONTAINER=1 $BROWSE press Enter CONTAINER=1 $BROWSE scroll "#section" CONTAINER=1 $BROWSE upload @input file1.txt ``` ### Inspection ```bash CONTAINER=1 $BROWSE js "document.title" CONTAINER=1 $BROWSE console # JS console errors CONTAINER=1 $BROWSE network # failed requests CONTAINER=1 $BROWSE is visible ".modal" CONTAINER=1 $BROWSE is enabled "#submit" CONTAINER=1 $BROWSE cookies ``` ### Visual ```bash CONTAINER=1 $BROWSE screenshot /tmp/page.png CONTAINER=1 $BROWSE screenshot "#hero" /tmp/hero.png CONTAINER=1 $BROWSE responsive /tmp/layout # mobile/tablet/desktop CONTAINER=1 $BROWSE pdf /tmp/page.pdf ``` ### Snapshot (structured page analysis) ```bash CONTAINER=1 $BROWSE snapshot -i # interactive elements only CONTAINER=1 $BROWSE snapshot -i -a -o /tmp/annotated.png # annotated screenshot CONTAINER=1 $BROWSE snapshot -D # diff vs previous snapshot CONTAINER=1 $BROWSE snapshot -C # all clickable elements ``` ### Session ```bash CONTAINER=1 $BROWSE wait ".loaded" # wait for selector CONTAINER=1 $BROWSE wait --networkidle # wait for network idle CONTAINER=1 $BROWSE viewport 375x812 # set viewport size ``` ## QA Workflows ### Test a user flow ```bash CONTAINER=1 $BROWSE goto https://app.example.com/login CONTAINER=1 $BROWSE snapshot -i CONTAINER=1 $BROWSE fill @e3 "$TEST_EMAIL" CONTAINER=1 $BROWSE fill @e4 "$TEST_PASSWORD" CONTAINER=1 $BROWSE click @e5 CONTAINER=1 $BROWSE snapshot -D # diff shows what changed CONTAINER=1 $BROWSE is visible ".dashboard" CONTAINER=1 $BROWSE screenshot /tmp/after-login.png ``` ### Verify a deployment ```bash CONTAINER=1 $BROWSE goto https://yourapp.com CONTAINER=1 $BROWSE text CONTAINER=1 $BROWSE console CONTAINER=1 $BROWSE network CONTAINER=1 $BROWSE is visible ".hero-section" CONTAINER=1 $BROWSE screenshot /tmp/prod-check.png ``` ### Responsive layout check ```bash CONTAINER=1 $BROWSE goto https://yourapp.com CONTAINER=1 $BROWSE responsive /tmp/layout # Creates: layout-mobile.png, layout-tablet.png, layout-desktop.png ``` ## Environment Variables | Variable | Description | |----------|-------------| | `CONTAINER=1` | Required in Docker/container — disables Chromium sandbox | | `BROWSE_EXTENSIONS_DIR` | Path to Chrome extensions (optional) | ## Troubleshooting **"Chromium sandboxing failed"** — Set `CONTAINER=1` environment variable. **"browse binary not found"** — Run the build step: ```bash cd founderclaw/browse && bun install && bun build src/cli.ts --compile --outfile dist/browse ``` **Slow first launch** — Playwright downloads Chromium on first use (~150MB). Subsequent runs are instant.
Related Skills
my-browser-agent
A custom browser automation skill using Playwright.
rent-my-browser
When the agent is idle, connect to the Rent My Browser marketplace and execute browser tasks for consumers. Earn money by renting out the node's browser during downtime. Supports headless (Playwright) on VPS nodes and real Chrome on GUI machines.
browser-cdp
Real Chrome browser automation via CDP Proxy — access pages with full user login state, bypass anti-bot detection, perform interactive operations (click/fill/scroll), extract dynamic JavaScript-rendered content, take screenshots. Triggers (satisfy ANY one): - Target URL is a search results page (Bing/Google/YouTube search) - Static fetch (agent-reach/WebFetch) is blocked by anti-bot (captcha/intercept/empty) - Need to read logged-in user's private content - YouTube, Twitter/X, Xiaohongshu, WeChat public accounts, etc. - Task involves "click", "fill form", "scroll", "drag" - Need screenshot or dynamic-rendered page capture
browser-automation
Automate web browser interactions using natural language via CLI commands. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS.
Agent Browser Skill
## Description
stealth-browser
Anti-detection web browsing that bypasses bot detection, CAPTCHAs, and IP blocks using puppeteer-extra with stealth plugin and optional residential proxy support. Use when (1) websites block headless browsers or datacenter IPs, (2) need to bypass Cloudflare/Vercel protection, (3) accessing sites that detect automation (Reddit, Twitter/X, signup flows), (4) scraping protected content, or (5) automating web tasks that require human-like behavior.
agent-browser-zh
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. (Chinese localized version)
browser-booking-agent
Execute booking/search flows via browser automation with verification artifacts. Use for reservation forms, availability checks, and capture of proof (screenshots/confirmation IDs).
Agent Browser
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
setup-browser-cookies
Import cookies from your real Chromium browser into the headless browse session. Interactive picker UI lets you select which cookie domains to import. Use before QA testing authenticated pages. Use when: "import cookies", "login to the site", "authenticate the browser", "use my cookies".
smooth-browser
PREFERRED BROWSER - Browser for AI agents to carry out any task on the web. Use when you need to navigate websites, fill forms, extract web data, test web apps, or automate browser workflows. Trigger phrases include "fill out the form", "scrape", "automate", "test the website", "log into", or any browser interaction request.
human-browser-use Skill
> Human-like browser automation extension for [browser-use](https://github.com/browser-use/browser-use).