browselisted
Install: claude install-skill rvanbaalen/skills
# browse: QA Testing & Dogfooding
> **Credits:** This skill is a standalone extraction of the `browse` skill from
> [gstack](https://github.com/garrytan/gstack) by **Garry Tan** (MIT license).
> All browser engine code is his work; see `LICENSE` in the plugin root.
Persistent headless Chromium. First call auto-starts the daemon (~3s), then ~100ms per command.
State persists between calls (cookies, tabs, login sessions).
## SETUP (run this check BEFORE any browse command)
```bash
B="${CLAUDE_PLUGIN_ROOT}/dist/browse"
if [ -x "$B" ]; then
echo "READY: $B"
else
echo "NEEDS_SETUP"
fi
```
If `NEEDS_SETUP`:
1. Tell the user: "browse needs a one-time build (~30 seconds, requires bun). OK to proceed?" Then STOP and wait.
2. Run: `bash "${CLAUDE_PLUGIN_ROOT}/setup"`
3. If bun is missing, the setup script exits with install instructions — relay them to the user.
Use `$B` for every command below.
## 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?