Browser Workbench Setup
Use this skill to configure a new repository for browser-based UI work with the smallest durable setup.
Default tool split:
playwright-interactive is the primary tool for iterative UI/UX work, auth flows, layout debugging, screenshots, and deeper investigation.
agent-browser is the secondary tool for quick smoke checks, annotated screenshots, fast snapshots, and lightweight CLI automation.
Do not create a custom framework, wrapper package, or shared browser helper layer unless the user explicitly asks for one.
Load references only as needed:
- Read references/playwright-interactive.md when setting up the primary interactive workflow.
- Read references/agent-browser.md when setting up CLI smoke checks, session persistence, or annotated screenshots.
- Read exactly one provider file when the repository auth stack is clear:
- references/auth-clerk.md
- references/auth-supabase.md
- references/auth-auth0.md
- references/auth-neon.md
If the repo uses Neon with an upstream identity provider such as Clerk or Auth0, read both auth-neon.md and the upstream provider file. Neon may be the database auth verifier while the browser login still belongs to the upstream provider.
Preconditions
- Confirm
playwright-interactive is installed and available in Codex.
- Confirm
agent-browser CLI is installed.
- Confirm Codex has
js_repl = true.
- Confirm the session can run with
danger-full-access when using playwright-interactive.
If any of those are missing, fix that first before touching the repository.
Setup Goals
For a normal web repository, finish with:
- repo-local Playwright dependency installed with the repository's package manager
- browser binaries installed
- stable artifact directories for screenshots, traces, and auth state
- ignore rules for local browser artifacts
- a clear convention for when to use
playwright-interactive vs agent-browser
Workflow
Inspect the repository first.
- Read
package.json, lockfiles, and any repo AGENTS.md.
- Detect the package manager from the repo, not from habit.
- Reuse existing test/artifact conventions if they already exist.
- Detect the auth provider from dependencies, env vars, routes, and middleware before making changes.
- Provider detection hints:
- Clerk:
@clerk/, CLERK_, NEXT_PUBLIC_CLERK_
- Supabase:
@supabase/, SUPABASE_URL, SUPABASE_, createBrowserClient, createServerClient
- Auth0:
@auth0/, AUTH0_, /auth/login, Auth0Client
- Neon Auth:
neon_auth, Neon auth endpoints, Neon JWT/JWKS setup, provider-owned auth integration
Install Playwright in the repo with the repo's package manager.
bun add -d playwright
bunx playwright install chromium
- For pnpm/npm/yarn repos, match the repo standard.
- Install only what is needed. Default browser is Chromium unless the user asked for more.
Create a minimal artifact convention.
- Preferred defaults:
output/playwright/screenshots/
output/playwright/traces/
output/playwright/auth/
output/agent-browser/
- Reuse an existing
reports/ or output/ convention if the repo already has one.
Add ignore rules for local-only artifacts.
output/playwright/
output/agent-browser/
playwright/.auth/
- Do not add duplicate ignore entries.
Standardize auth-state handling.
- Prefer Playwright
storageState for authenticated iteration and reusable test sessions.
- Use
agent-browser profiles or session names only for quick local smoke work.
- Keep auth files out of git.
- Prefer provider-supported test helpers when they exist.
- If the provider has no first-party Playwright helper, prefer seeded test users plus saved browser state.
- Avoid MFA in automated browser runs unless the provider explicitly supports it in test helpers.
Keep the responsibility split explicit.
- Use
playwright-interactive for:
- serious interactive debugging
- auth-heavy flows
- desktop/mobile passes
- console/network inspection
- screenshots and trace evidence
- Use
agent-browser for:
- quick smoke checks
- annotated screenshots
- fast snapshots
- simple DOM or screenshot diffs
Avoid unnecessary additions.
- Do not add Playwright test scaffolding unless the user asked for formal test coverage.
- Do not add helper scripts, custom CLIs, or wrapper packages by default.
- Do not add CI config unless the user asked for CI.
- For auth setup, add only the minimum repo changes needed to make interactive browser work repeatable.
- User-level tools such as
~/.agent-browser/config.json belong outside the repo.
Provider Routing
After the initial repo scan:
- Read
playwright-interactive.md for the primary workflow.
- Read
agent-browser.md for CLI setup and persistence.
- Read one provider auth file for the active identity stack.
- For Neon-backed repos:
- if Neon Auth owns the user lifecycle, read
auth-neon.md
- if Neon is only verifying JWTs from Clerk/Auth0/etc., read
auth-neon.md plus that upstream provider file
Do not load every provider reference by default.
Automation Standard
When the user asks to set this up in a repo, complete the work end to end:
- install the repo-local Playwright dependency
- install browser binaries
- create artifact directories
- add ignore rules
- add or align formal auth bootstrap only if the repo already has Playwright tests or the user asked for them
- configure
agent-browser persistence with either a profile path or a session name convention
- report the exact auth path chosen and why
Preferred Defaults
When no repo convention conflicts:
- install only
playwright
- install only Chromium first
- keep artifacts under
output/
- use repo-local ignores, not global git excludes
- keep setup changes small and reviewable
Deliverable
When you finish, report:
- package manager used
- dependency added
- directories added
- ignore rules added
- any user-level config that must exist outside the repo
- provider-specific auth path selected
- the exact command the user should run first with
playwright-interactive
First-Run Prompt
After setup, suggest a first real task such as:
Use $playwright-interactive to open the local app, verify sign-in, test theme persistence, run desktop and mobile passes, and capture screenshots.
1---2name: browser-workbench-setup3description: Set up browser automation and UI QA for a new repository using playwright-interactive as the primary interactive tool and agent-browser as the secondary CLI smoke-check tool. Use when a user wants to bootstrap browser testing, screenshots, auth-state reuse, or local UI debugging conventions in a fresh repo.4---5
6# Browser Workbench Setup
7
8Use this skill to configure a new repository for browser-based UI work with the smallest durable setup.
9
10Default tool split:
11
12- `playwright-interactive` is the primary tool for iterative UI/UX work, auth flows, layout debugging, screenshots, and deeper investigation.
13- `agent-browser` is the secondary tool for quick smoke checks, annotated screenshots, fast snapshots, and lightweight CLI automation.
14
15Do not create a custom framework, wrapper package, or shared browser helper layer unless the user explicitly asks for one.
16
17Load references only as needed:
18
19- Read [references/playwright-interactive.md](references/playwright-interactive.md) when setting up the primary interactive workflow.
20- Read [references/agent-browser.md](references/agent-browser.md) when setting up CLI smoke checks, session persistence, or annotated screenshots.
21- Read exactly one provider file when the repository auth stack is clear:
22 - [references/auth-clerk.md](references/auth-clerk.md)
23 - [references/auth-supabase.md](references/auth-supabase.md)
24 - [references/auth-auth0.md](references/auth-auth0.md)
25 - [references/auth-neon.md](references/auth-neon.md)
26
27If the repo uses Neon with an upstream identity provider such as Clerk or Auth0, read both `auth-neon.md` and the upstream provider file. Neon may be the database auth verifier while the browser login still belongs to the upstream provider.
28
29## Preconditions
30
31- Confirm `playwright-interactive` is installed and available in Codex.
32- Confirm `agent-browser` CLI is installed.
33- Confirm Codex has `js_repl = true`.
34- Confirm the session can run with `danger-full-access` when using `playwright-interactive`.
35
36If any of those are missing, fix that first before touching the repository.
37
38## Setup Goals
39
40For a normal web repository, finish with:
41
42- repo-local Playwright dependency installed with the repository's package manager
43- browser binaries installed
44- stable artifact directories for screenshots, traces, and auth state
45- ignore rules for local browser artifacts
46- a clear convention for when to use `playwright-interactive` vs `agent-browser`
47
48## Workflow
49
501. Inspect the repository first.
51 - Read `package.json`, lockfiles, and any repo `AGENTS.md`.
52 - Detect the package manager from the repo, not from habit.
53 - Reuse existing test/artifact conventions if they already exist.
54 - Detect the auth provider from dependencies, env vars, routes, and middleware before making changes.
55 - Provider detection hints:
56 - Clerk: `@clerk/`, `CLERK_`, `NEXT_PUBLIC_CLERK_`
57 - Supabase: `@supabase/`, `SUPABASE_URL`, `SUPABASE_`, `createBrowserClient`, `createServerClient`
58 - Auth0: `@auth0/`, `AUTH0_`, `/auth/login`, `Auth0Client`
59 - Neon Auth: `neon_auth`, Neon auth endpoints, Neon JWT/JWKS setup, provider-owned auth integration
60
612. Install Playwright in the repo with the repo's package manager.
62 - For Bun repos, prefer:
63 ```bash
64 bun add -d playwright
65 bunx playwright install chromium
66 ```
67 - For pnpm/npm/yarn repos, match the repo standard.
68 - Install only what is needed. Default browser is Chromium unless the user asked for more.
69
703. Create a minimal artifact convention.
71 - Preferred defaults:
72 - `output/playwright/screenshots/`
73 - `output/playwright/traces/`
74 - `output/playwright/auth/`
75 - `output/agent-browser/`
76 - Reuse an existing `reports/` or `output/` convention if the repo already has one.
77
784. Add ignore rules for local-only artifacts.
79 - Typical entries:
80 ```gitignore
81 output/playwright/
82 output/agent-browser/
83 playwright/.auth/
84 ```
85 - Do not add duplicate ignore entries.
86
875. Standardize auth-state handling.
88 - Prefer Playwright `storageState` for authenticated iteration and reusable test sessions.
89 - Use `agent-browser` profiles or session names only for quick local smoke work.
90 - Keep auth files out of git.
91 - Prefer provider-supported test helpers when they exist.
92 - If the provider has no first-party Playwright helper, prefer seeded test users plus saved browser state.
93 - Avoid MFA in automated browser runs unless the provider explicitly supports it in test helpers.
94
956. Keep the responsibility split explicit.
96 - Use `playwright-interactive` for:
97 - serious interactive debugging
98 - auth-heavy flows
99 - desktop/mobile passes
100 - console/network inspection
101 - screenshots and trace evidence
102 - Use `agent-browser` for:
103 - quick smoke checks
104 - annotated screenshots
105 - fast snapshots
106 - simple DOM or screenshot diffs
107
1087. Avoid unnecessary additions.
109 - Do not add Playwright test scaffolding unless the user asked for formal test coverage.
110 - Do not add helper scripts, custom CLIs, or wrapper packages by default.
111 - Do not add CI config unless the user asked for CI.
112 - For auth setup, add only the minimum repo changes needed to make interactive browser work repeatable.
113 - User-level tools such as `~/.agent-browser/config.json` belong outside the repo.
114
115## Provider Routing
116
117After the initial repo scan:
118
119- Read `playwright-interactive.md` for the primary workflow.
120- Read `agent-browser.md` for CLI setup and persistence.
121- Read one provider auth file for the active identity stack.
122- For Neon-backed repos:
123 - if Neon Auth owns the user lifecycle, read `auth-neon.md`
124 - if Neon is only verifying JWTs from Clerk/Auth0/etc., read `auth-neon.md` plus that upstream provider file
125
126Do not load every provider reference by default.
127
128## Automation Standard
129
130When the user asks to set this up in a repo, complete the work end to end:
131
132- install the repo-local Playwright dependency
133- install browser binaries
134- create artifact directories
135- add ignore rules
136- add or align formal auth bootstrap only if the repo already has Playwright tests or the user asked for them
137- configure `agent-browser` persistence with either a profile path or a session name convention
138- report the exact auth path chosen and why
139
140## Preferred Defaults
141
142When no repo convention conflicts:
143
144- install only `playwright`
145- install only Chromium first
146- keep artifacts under `output/`
147- use repo-local ignores, not global git excludes
148- keep setup changes small and reviewable
149
150## Deliverable
151
152When you finish, report:
153
154- package manager used
155- dependency added
156- directories added
157- ignore rules added
158- any user-level config that must exist outside the repo
159- provider-specific auth path selected
160- the exact command the user should run first with `playwright-interactive`
161
162## First-Run Prompt
163
164After setup, suggest a first real task such as:
165
166`Use $playwright-interactive to open the local app, verify sign-in, test theme persistence, run desktop and mobile passes, and capture screenshots.`