browserlisted
Install: claude install-skill diazoxide/charter
# Driving a browser with vault credentials
Two halves, owned by different projects:
- **How to drive a page** — snapshots, clicking, network mocking, tracing — is
Playwright's. Generate its reference into this plane once:
```bash
charter browser install # writes .claude/skills/playwright-cli/
```
Charter ships none of those pages: they are Apache-2.0 and they change far more often
than charter releases. Regenerate with that command rather than editing them.
That command also gitignores `.playwright-cli/` — where traces and snapshots land, and a
trace holds the network traffic of whatever it recorded, logins included — and states,
without deciding, whether the generated reference and `.playwright/cli.config.json` should
be committed. All three postures are in `docs/browser.md`.
- **Where credentials come from, and how parallel workers stay isolated** — this skill.
## One session per worker
Each worker passes its own `-s=<name>`. Sessions hold independent cookies, localStorage,
IndexedDB, cache and tabs, so N workers can each be logged in as a different user at once.
```bash
npx @playwright/cli@<version> -s=owner open https://example.test/
npx @playwright/cli@<version> -s=viewer open https://example.test/
npx @playwright/cli@<version> list # live sessions
npx @playwright/cli@<version> -s=owner close
npx @playwright/cli@<version> kill-all # reap stale processes
```
**Pin the version explicitly in every command** — and this is