1---2name: clawbrowser3description: Use when the agent needs to drive a browser through the Microsoft Playwright CLI (`playwright-cli`) for navigation, form interactions, screenshots, recordings, data extraction, session management, or debugging without loading a full MCP browser. It trains the agent on the CLI commands, snapshots, and session/config habits that make Playwright CLI reliable for scripted browsing.4---56# Clawbrowser – browser control via Playwright CLI7[](https://clawaudit.duckdns.org/audit/f4d4fb45-ed25-4659-8235-2459d0dc8189)8[](https://clawaudit.duckdns.org/audit/a55cb413-b111-4f1a-9f39-a5c857090ebf)910## Setup & orientation111. Install the CLI and verify availability:12 ```bash13 npm install -g @playwright/cli@latest14 playwright-cli --help15 ```16 The CLI is headless by default; add `--headed` to `open` or set `browser.launchOptions.headless` to `false` in `playwright-cli.json` when you need to see the UI.172. The CLI reads `playwright-cli.json` by default or whatever file you pass with `--config`. Use the config to tune browser name, launch/context options, viewport, timeouts, output directories, and recording settings without changing every command.183. Keep `playwright-cli --help` terminal-accessible; the script self-documents the latest commands and options so you can refresh your memory before trying a new action.1920## Core interaction loop211. Start with `playwright-cli open <url>` to load the page (add `--session=name` if you want isolation up front).222. Run `playwright-cli snapshot` to generate element refs (`e1`, `e2`, …) before any interaction. Always re-snapshot after DOM changes or navigation to avoid stale refs.233. Use refs for actions:24 - `click`, `dblclick`, `hover`, `drag`, `check`, `uncheck`, `select`, `fill`, `type`, `upload`, `eval`25 - Append `[button]`, `[value]`, or JS snippets as needed (e.g., `playwright-cli click e4 right`).264. Capture output evidence with `screenshot [ref]`, `pdf`, `console [level]`, or `network` to prove the flow or inspect errors.275. Example flow:28 ```bash29 playwright-cli open https://example.com/login30 playwright-cli snapshot31 playwright-cli fill e1 "user@example.com"32 playwright-cli fill e2 "supersecret"33 playwright-cli click e334 playwright-cli snapshot35 playwright-cli screenshot36 ```3738## Sessions & persistence39- Use `--session=<name>` to keep cookies, storage, and tabs isolated per workflow. Sessions behave like persistent profiles: they remember auth state, history, and tabs between commands.40- Export `PLAYWRIGHT_CLI_SESSION=mysession` if you are running many commands in the same session — the CLI will default to that session without needing `--session` each time.41- Manage sessions explicitly:42 ```bash43 playwright-cli session-list44 playwright-cli session-stop <name>45 playwright-cli session-stop-all46 playwright-cli session-restart <name>47 playwright-cli session-delete <name>48 ```49- Use `playwright-cli --isolated open ...` for ephemeral contexts that do not persist to disk.50- Whenever you change browser settings for a session (launch args, headless toggle, browser selection), rerun `playwright-cli config` for that session and then `session-restart` to apply the new config.5152## Tabs, navigation, and devtools53- Tab helpers: `tab-list`, `tab-new [url]`, `tab-close <index>`, `tab-select <index>`.54- Navigation shortcuts: `go-back`, `go-forward`, `reload`.55- Keyboard and mouse control: `press <key>`, `keydown`, `keyup`, `mousemove <x> <y>`, `mousedown [button]`, `mouseup [button]`, `mousewheel <dx> <dy>`.56- Devtools-style introspection:57 ```bash58 playwright-cli console [level]59 playwright-cli network60 playwright-cli run-code "async page => await page.context().grantPermissions(['clipboard-read'])"61 ```62 Use these to check console logs, inspect network requests, or inject helper scripts.6364## Recording, tracing, and exports65- Record traces and videos around delicate interactions so you can replay what the agent did later:66 ```bash67 playwright-cli tracing-start68 # perform steps69 playwright-cli tracing-stop70 playwright-cli video-start71 # perform steps72 playwright-cli video-stop video.webm73 ```74- Save evidence to disk with `screenshot`, `pdf`, or `snapshot` (which dumps element refs). Recorded files honor the `outputDir` from your config.7576## Config, state, and housekeeping77- Use `playwright-cli config` to tweak runtime flags without reinstalling. Examples:78 ```bash79 playwright-cli config --headed --browser=firefox80 playwright-cli --session=auth config --config=playwright-cli.json81 ```82 Change `browser`, `contextOptions`, `launchOptions`, or recording settings in the config and restart the session to apply them.83- Running `playwright-cli install` refreshes browser binaries if the environment is new or you receive errors about missing binaries.84- Clean up sessions when finished to avoid stale state:85 ```bash86 playwright-cli session-stop <name>87 playwright-cli session-delete <name>88 ```8990## Troubleshooting & reminders91- If a command fails, rerun `playwright-cli snapshot` to confirm refs are still valid. Snapshots provide the current DOM context for `click`/`type` operations.92- `playwright-cli --help` always shows the latest command set, so consult it before trying a rarely used flag.93- When the agent needs to replicate a recorded manual flow, capture a screenshot, note the session name, and mention which refs and tabs were in use.94- If targeting a visible browser is required (e.g., manual inspection), reconfigure with `--headed`, or run `playwright-cli open --headed <url>` for that session only.