Comparison
Playwright is a test runner. This is a standing agent browser.
Playwright, Puppeteer, and Selenium are excellent at CI assertions against a disposable Chromium. They are the wrong shape for persistent OAuth, web-GUI-only product features, and an agent that must stay cheap in context.
| Axis | Musketeer family | Playwright | Puppeteer / others |
|---|---|---|---|
| Browser | Real Chrome for Testing, visible window, no headless fingerprint | Bundled Chromium, often headless — flagged by Cloudflare and Turnstile | Puppeteer same stack. Selenium older WebDriver surface. |
| Auth | Live OAuth in a permanent burner profile. Sign in once. No cookie export. | storageState JSON, saved cookies, or a fresh login every run | Cookie jars, session JSON, password replay. High blast radius. |
| Daily browser | Never. Isolated --user-data-dir. Chrome 136+ refuses CDP on the default sync profile anyway. | Can attach, but most guides launch or hijack the user's main profile | Commonly attach to the daily profile. One bug, whole session. |
| Web-GUI-only features | The point. GPT-5.4-Pro extended, Deep Research, NotebookLM Studio, Grok Expert/Heavy. | Possible, but you write a test harness for each click-path | API-first tools simply cannot reach these surfaces. |
| Agent context cost | agent-browser compact a11y snapshots — about 2k tokens | Full DOM / accessibility tree, often 50–100k+ tokens per step | Same class of dump, or screenshot-only vision. |
| Driver | Vercel Labs agent-browser — Rust daemon, --cdp 9222, --pin-tab | Node test runner. Excellent for CI. Wrong shape for a standing agent CLI. | Node Puppeteer, Java/Python Selenium, vision bots. |
| Family sharing | One profile, four signed-in tabs, four CLIs. Sequential fires only. | DIY. Each script brings its own browser or fights for a port. | Usually one-off scripts, not a family. |
| Security posture | CDP bound to 127.0.0.1 only. Non-loopback rejected. Sandbox kept. No crash-bubble, no sync. | Devtools endpoint often left open; headless flags disable sandbox in CI recipes | Remote Selenium grids expose the session. Cookie bots leak credentials. |
Real Chrome, not a bot
Visible Chrome for Testing. No headless flag. Cloudflare and Turnstile treat it as a browser because it is one.
OAuth stays in the profile
SuperGrok, ChatGPT Pro, Kimi, Google. Signed in once, in a window you can see. No storageState.json in a repo.
Built for agents
agent-browser is a Rust daemon with pin-tab, compact snapshots, and a 50k character ceiling. Playwright dumps the world.
What this is not
- Not a replacement for Playwright in CI. Keep Playwright for tests.
- Not a stealth / anti-detect product. It is a real browser profile.
- Not remote browser-as-a-service. CDP stays on this machine.
- Not your daily driver. If you need shopping tabs, use the other Chrome.