-
Notifications
You must be signed in to change notification settings - Fork 4.7k
agent browser alternatives
Vercel's agent-browser is a native Rust command-line tool that gives an AI agent a browser to drive, published under Apache-2.0. The alternatives doing the same job are browser-use, Microsoft's Playwright MCP server, Stagehand and invisible_playwright_mcp, and they differ less in what they automate than in how the agent talks to them and which browser ends up running.
One disclosure before the comparison: this wiki is maintained by the people behind invisible_playwright_mcp, one of the tools below. Read our row with that in mind. The picks at the end name two other tools before they name ours.
The repository describes it as a browser automation CLI for AI agents, and
the shape of the thing follows from that word: it is a compiled binary an
agent runs as a separate process, not a library it imports. A daemon
persists between commands so a session survives from one invocation to the
next, and --json makes the output parseable rather than pretty.
Two details matter when you compare it with the rest. First, an agent can also reach it over the Model Context Protocol, because the binary can run as an MCP server, so it is not CLI-only in practice. Second, it drives local Chrome or a cloud browser provider, which puts it in the same Chromium-family camp as most of this category.
Its feature list leans toward what an agent needs rather than what a test suite needs: semantic locators and element refs, accessibility audits, network interception and multi-session handling. That is a different emphasis from a testing framework, and it is the clearest signal of who the tool is for.
Every cell below was read from the project's own repository on 5 September 2026. Licenses and runtimes change, so re-check before you standardise on one.
| Tool | License | Browser it drives | How an agent talks to it | Runtime |
|---|---|---|---|---|
| Vercel agent-browser | Apache-2.0 | Chrome locally, or a cloud browser provider | CLI with JSON output, or as an MCP server | Rust binary |
| browser-use | MIT | Chromium family, through Playwright | Python library; the agent loop decides each action | Python 3.11+ |
| Playwright MCP | Apache-2.0 | Chromium, Firefox or WebKit | MCP server; any MCP client calls its tools | Node.js 18+ |
| Stagehand | MIT | Chromium, through Playwright | Library with act, observe and extract calls beside raw Playwright | TypeScript, Python or Go |
| invisible_playwright_mcp (ours) | MIT | Firefox, patched at the source level rather than a stock automation build | MCP server, or a local two-pane UI | Python 3.11+ |
Three honest notes on that table. Playwright MCP reads the page's accessibility snapshot instead of screenshots, which keeps each step cheap when a page exposes good semantics and hurts when it does not. Stagehand is the only one that lets you mix plain-language steps and hand-written Playwright calls in the same script, which is the right shape if you already have Playwright code. And browser-use has by some distance the largest community in this list, which matters more than any feature comparison when you hit a problem at midnight.
Process shape. A CLI binary and an MCP server are both out-of-process, so a crash in the browser layer does not take your agent with it. A library is in-process, which is simpler to debug and easier to bring down.
Who decides the next action. browser-use and Stagehand put a model in the loop by design. Playwright MCP and agent-browser expose actions and let whatever assistant you already run do the deciding. invisible_playwright_mcp does both, depending on which of its two entry points you use.
Language. This is the boring criterion that decides most real adoptions. Node-only or Rust-only rules a tool out of a Python shop as effectively as any missing feature.
- You already run an MCP-first assistant and want the plainest hookup: Playwright MCP. It is Microsoft's own, it speaks three browser engines, and there is nothing extra to learn.
-
You have Playwright code and want AI-directed steps inside it:
Stagehand, because
act()sits in the same file as your selectors. - You want the biggest community and a Python agent loop: browser-use. Its own tradeoffs are covered here.
- You want a compiled binary with no runtime to install and a daemon that holds sessions: agent-browser.
- You care that the browser presents as an ordinary desktop browser, and you want a run to repeat identically: invisible_playwright_mcp, ours, conflict noted.
What is Vercel's agent-browser? A native Rust CLI, Apache-2.0 licensed, that gives AI agents browser automation: navigation, semantic locators, screenshots, network interception and multi-session handling, with a daemon that persists between commands.
Is agent-browser open source? Yes, under Apache-2.0 as published in the vercel-labs repository.
What is the difference between agent-browser and browser-use? agent-browser is a compiled binary an agent shells out to or reaches over MCP, with no model inside it. browser-use is a Python library with an LLM-driven agent loop built in: you give it a task, it decides the actions.
Does Playwright have its own MCP server? Yes. Microsoft publishes it under Apache-2.0, it needs Node.js 18 or newer, and it drives Chromium, Firefox or WebKit while exposing accessibility snapshots rather than screenshots.
Is Stagehand the same as Playwright? No. Stagehand builds on Playwright and adds act, observe and extract, so a step can be written in plain language instead of a selector. It ships TypeScript, Python and Go SDKs.
See also: browser-use alternatives for the most-adopted option above, Stagehand vs browser-use for a direct comparison of two rows, and choosing an AI browser agent for the decision framework these picks come from.
- Vercel agent-browser repository, https://github.com/vercel-labs/agent-browser - description, Apache-2.0 license, Rust runtime, CLI and MCP interfaces, daemon and feature list. Read 5 September 2026.
- browser-use repository, https://github.com/browser-use/browser-use - MIT license, Python 3.11 or newer, Playwright underneath, LLM-driven agent loop. Read 5 September 2026.
- Playwright MCP repository, https://github.com/microsoft/playwright-mcp - Apache-2.0, Node.js 18 or newer, accessibility-snapshot approach, browser coverage. Read 5 September 2026.
- Stagehand repository, https://github.com/browserbase/stagehand - MIT license, TypeScript, Python and Go SDKs, act/observe/extract on top of Playwright. Read 5 September 2026.
From the invisible_playwright_mcp wiki. invisible_playwright_mcp is one row in the table above, not the first, and the picks name two other tools before they name ours.
- OpenAI Operator alternatives
- Open-source Operator-style agents
- Is OpenAI Operator still available?
- OpenAI Operator vs Claude computer use
- browser-use alternatives
- Choosing an AI browser agent
- Open-source AI browser agents
- Open-source computer-use agents
- What is an AI web agent?
- AI browser agents vs traditional scraping
- Cloud browser infrastructure for AI agents, explained
- Browserbase alternatives
- Firecrawl vs an AI browser agent
- Skyvern alternatives
- Stagehand vs browser-use
- Project Mariner is gone: what replaced it
- Manus alternatives
- Gemini computer use vs Claude computer use
- invisible_playwright_mcp, reviewed honestly by its own wiki
- AI browser vs AI browser agent: which one do you want?
- AI browser agent vs RPA: which one fits the job
- AI browser agent vs n8n, Zapier and Make
- Vercel agent-browser alternatives, compared honestly
- What is an agentic browser? Definition and the two kinds
- Open-source agentic browsers: the three layers, compared
- Choosing an MCP server for browser automation: four axes
- Stealth MCP servers compared: Camoufox, nodriver, Patchright
- Playwright MCP alternatives, and the three you don't need
- Autonomous browser agents: the four rungs of autonomy
- What is actually free in the AI browser agent stack
- browser-use on GitHub: what the repo actually gives you
- Playwright MCP vs Chrome DevTools MCP: different jobs
- How to choose among MCP servers: a map by category
- Which MCP servers are worth adding to Claude Code
- MCP on GitHub: finding servers and judging them fast
- MCP vs an API: the decision, and what the wrapper costs
- MCP alternatives: when the protocol is the wrong shape
- Why does my AI agent get blocked?
- The timing signal AI agents give off
- Agent retry loops trip rate limits, not fingerprints
- Claude computer use detected as a bot
- browser-use getting blocked: what you can and cannot change
- Playwright MCP session blocked: four causes, four fixes
- Playwright MCP and captchas: what actually gets you past
- Cloudflare and a browser MCP server: what is being read
- Can an AI agent solve a captcha? The honest answer
- Getting an AI agent to fill out forms
- Which model to use with invisible_playwright_mcp
- Browser problem or model problem?
- Running invisible_playwright_mcp's browser from Claude Code
- Extracting data to a CSV with an AI agent
- Monitoring a page for changes with an AI agent
- Running invisible_playwright_mcp's browser from Claude Desktop
- Running invisible_playwright_mcp's browser from Cursor
- Using an AI agent to hunt for apartments
- Getting website data into Google Sheets with an AI agent
- Using an AI agent to download invoices from portals
- AI agents for web research
- Using an AI agent to test your own website
- Running invisible_playwright_mcp's browser from Cline
- Posting to social media with an AI agent
- Posting to Facebook with an AI agent
- Posting to Instagram with an AI agent
- Posting to X with an AI agent
- Automating LinkedIn posts: read this first
- Appointment bots: what they are and what an agent can legitimately do
- Track prices across sites with an AI agent
- Build a lead list with an AI browser agent
- Run an AI browser agent on a schedule
- AI browser agent with a local LLM: what changes
- Should you log your AI agent into your accounts?
- How to write a task an AI browser agent can follow
- Move data between two web apps with an AI agent
- The MCP server
- How the tools are shaped, and why
- Playwright MCP vs the Playwright CLI: which fits when
- Playwright MCP: browser is already in use, and the fix
- Playwright MCP best practices: four decisions that matter
- Playwright MCP with a proxy, and the three leaks it leaves
- A browser MCP server in GitHub Copilot: setup and limits
- Using a browser MCP server for web scraping: the pattern
- Which LLM for browser automation: the four properties
- How to build a browser agent, and what to take instead
- Getting an AI agent to log into a website: three routes
- MCP tools, resources and prompts: who controls each
- How many MCP tools is too many? The context arithmetic
- How to build an MCP server: the decisions, not the scaffold
- Local or remote MCP server: what changes, and what does not
- Writing an MCP client in Python: the thirty-line version
- Self-hosted AI agent: what one actually costs to run
- How long an AI browser agent takes per step, measured
- Text, HTML, snapshot or screenshot: what the agent should read
- Giving an AI browser agent a stopping condition
- Keeping an AI browser agent out of destructive actions
- Why did the AI agent click the wrong thing
- When the page changes under the AI agent
- Running one AI agent task across a list of sites
- Seeing a page as it appears in another country
- Getting data out of a dashboard with no export button
- Two browsers in one session: main and support
- Finding the dead links on a site with an AI agent
- Filling a CRM record from a company's website
- One form submission per spreadsheet row, with an AI agent
- Dated screenshots of a page as evidence
- Checking order and delivery status with an AI agent
- Reading a PDF that opens inside the browser
- Summarising a long page or thread with an AI agent
- Collecting every image on a page with its caption
- Collecting event and course listings with an AI agent
- Cancelling a subscription with an AI agent
- What an AI agent can and cannot do inside an iframe
- Shadow DOM and an AI agent: you can click it, you cannot read it
- Running invisible_playwright_mcp's browser from Codex
- What a page snapshot costs, per control
- Native selects and the ones that only look like selects
- Running invisible_playwright_mcp's browser from Gemini CLI
- Clicking by selector or by coordinates
- How long the agent waits before it gives up
- What a second browser costs
- Uploading a file with an AI agent, and why this one cannot
- Watching the agent work, and when it is worth it
- When not to use an AI browser agent
- Agent or script: deciding once instead of every time
- Using the keyboard instead of the mouse
- Secrets in an agent task: where they end up
- What an agent run should log
- Deduplicating what an AI agent collects
- Normalising values across sites
- Validating an AI agent's output
- Reading a table with an AI agent
- Driving a site's own search and filters
- The task works headed and fails headless