Chromeflow vs Playwright vs Browser Use vs Puppeteer
Four tools agents reach for when they need to drive a browser. Three of them fight you at the first 2FA prompt. Here's the honest side-by-side.
Capability matrix
| Chromeflow | Playwright | Browser Use | Puppeteer | |
|---|---|---|---|---|
| Runs in your real Chrome with sessions intact | Yes | No — fresh profile | No — fresh profile | No — fresh profile |
| Handles 2FA / passwords without re-engineering | Yes — pauses for you | No | No | No |
| How it reads the page | DOM queries (cheap, deterministic) | DOM queries | Screenshots + vision model (slow, expensive) | DOM queries |
| Integration with AI coding agents | MCP plugin for Claude Code & Codex CLI | Library — agent wires it manually | Standalone agent (own LLM client) | Library — agent wires it manually |
Captures credentials → .env | Yes (write_to_env) | No | No | No |
| Privileged fetch (bypasses page CSP) | Yes (fetch_url, download_file, read_attachment) | Via CDP, but no built-in tool | No | Via CDP, but no built-in tool |
| Authenticated file downloads | One call (download_file) | Possible but DIY | No | Possible but DIY |
Parses .docx attachments in-browser | Yes (read_attachment) | No | No | No |
| Human-in-the-loop visual handoff | Yes (highlights + callouts) | No | No | No |
| Multi-agent parallelism in one Chrome | Up to 11 sessions | DIY (multiple processes) | No | DIY (multiple processes) |
| Cost | Free, MIT | Free, Apache 2 | Free, MIT | Free, Apache 2 |
| Mature outside agent use | No — agent-first | Yes — broad testing market | No — agent-only | Yes — broad scripting use |
Chromeflow
Chromeflow is a Chrome extension plus MCP server. It plugs into Claude Code or OpenAI's Codex CLI as a one-command install. The agent gets 26 browser tools — open_page, fill_form, click_element, fetch_url, download_file, read_attachment, and the rest — and drives your Chrome window, the one that's already signed into Stripe, GitHub, Canvas, AWS, and everything else you use daily. You stay in the loop for passwords, 2FA, and payment details; the agent handles the rest.
Best for: AI-agent workflows that need to touch authenticated sites — setting up SaaS dashboards, capturing API keys, configuring webhooks, navigating multi-step billing flows, downloading attachments from Canvas or Stripe. Anything Playwright fails at because the agent gets to a login screen and there's no way past it.
Playwright
Microsoft's flagship browser-automation library. Mature, well-documented, used in production CI across thousands of repos. Spawns its own browser instance from a clean profile. Excellent for testing public-facing flows where you control the credentials and can encode a login at the start of each run. It is not designed to use a human's existing browser session — there's a --use-existing-browser hack that's awkward at best.
Best for: CI test suites, web scrapers that don't need auth, automation runs where you script the login yourself with credentials in env vars.
Browser Use
An agentic browser tool with its own built-in LLM client. Sends screenshots to a vision model on every step and reasons about pixels rather than the DOM. Powerful for sites where the DOM is junk (heavy obfuscation, anti-bot rendering) but token-expensive and slow — every action involves a screenshot + vision-model round trip. Like Playwright, it launches its own browser instance and doesn't see your existing sessions.
Best for: Scraping or interacting with sites where the DOM is intentionally obfuscated and screenshots are the only reliable signal. Demos where the model-of-the-week is the point.
Puppeteer
The original Chrome DevTools Protocol library. Lighter than Playwright, single-browser-family (Chromium), excellent docs, very stable. Same trade-off as Playwright for AI-agent use: spawns a fresh browser, no session sharing, no 2FA handling, no agent integration. Most agents that use Puppeteer wrap it in a custom MCP server or tool layer to bridge those gaps.
Best for: Server-side scripts, headless screenshot generation, PDF rendering, scraping public content at scale.
When does the "real Chrome" approach matter?
The honest answer: when the agent's task lives behind a login. Most consequential AI-agent workflows do. Setting up a Stripe product needs a logged-in dashboard. Grabbing API keys from Supabase needs an authenticated session. Downloading a Canvas attachment for an assignment needs your university login. None of these are reachable from a fresh-profile browser without first solving the login + 2FA puzzle every single time the agent runs.
Chromeflow exists because that puzzle was wasting hours per week. Playwright/Browser Use/Puppeteer remain excellent for tasks that genuinely don't need a session — public-data scraping, CI testing, headless rendering. Pick the tool that matches the job. For agentic workflows in an authenticated world, the answer is increasingly Chromeflow.
Performance and cost notes
- Token cost: Chromeflow's DOM-query model returns 200–600 chars per tool call. Browser Use's screenshot-and-vision model returns tens of thousands of tokens per step. Across a 50-step workflow that's a 50–100× cost difference.
- Latency: Chromeflow's per-action latency is dominated by Chrome's own rendering speed (typically <200ms). Browser Use adds a vision-model round-trip per step (1–3s typical).
- Reliability: DOM queries are deterministic and reproducible; screenshot-and-vision is probabilistic and degrades when the model misreads the image. Chromeflow's
until_*clauses onclick_elementgive every action a verifiable post-condition.
What if I need both?
Chromeflow and Playwright are not mutually exclusive. A common pattern: use Chromeflow for the interactive, session-dependent parts of a workflow (capturing API keys, configuring SaaS dashboards), and use Playwright in CI for headless verification once the credentials are captured. They serve different parts of the agent-development lifecycle.
