Collaborative headed browser session for UI work. Launch Playwright Chromium visible to the user, handle auth, then interactively drive the browser while the user watches and gives real-time visual feedback. Edit code and refresh to verify fixes live. Use when the user says 'browser pair', 'paired browser', 'let's look at this together', 'open chromium', or wants to iterate on UI with live visual feedback.
Open a headed Chromium browser the user can see, then drive it interactively. The user watches, gives visual feedback, you make code changes and verify live. This is pair programming for UI.
Key difference from /browser-test: This is interactive and headed. You wait for user direction between actions. You edit code when they spot issues, then refresh to verify.
Parse $ARGUMENTS for:
5560 becomes http://localhost:5560)If not provided, check for .dev-port file or ask the user.
Use only mcp__playwright-headed__* tools. Never use mcp__playwright__* (headless). The user must see the browser.
Key tools:
mcp__playwright-headed__browser_navigate — go to a URLmcp__playwright-headed__browser_snapshot — read page state (preferred over screenshots)mcp__playwright-headed__browser_click — click elements by refmcp__playwright-headed__browser_type — type into inputs by refmcp__playwright-headed__browser_take_screenshot — only when user asks to capture somethingBefore starting, create a task for each step below using TaskCreate. Chain sequential steps with addBlockedBy. As you work, update each task's status to in_progress when starting it and completed when done.
Navigate to the app URL. Take a snapshot to see the page state.
If you land on a login/signup page:
scripts/verify-browser-test.js in the project for test credentialsIf the user specified a page, navigate there. Otherwise, take a snapshot and tell the user where you are.
This is the core. Repeat:
When the user gives feedback:
When editing code based on visual feedback:
mcp__playwright-headed__browser_navigate to the same URLRun TaskList. If any task is not completed, go back and finish it now.
browser_snapshot for state awareness, not screenshotsmake dev or the relevant start command