555K npm/wk is higher than Chrome DevTools MCP (423K). TypeScript-first SDK with $67.5M funding (Browserbase). $300M valuation. Auto-caching reduces LLM costs over time.
Stagehand
activeAI-native browser automation SDK by Browserbase with natural language selectors and act/extract/observe primitives.
Where it wins
TypeScript-native with clean act/extract/observe API
Natural language selectors reduce brittle CSS/XPath dependencies
Official Browserbase backing with cloud browser infrastructure
Where to be skeptical
Smaller community than Browser Use
Tied to Browserbase ecosystem for cloud execution
Newer — less battle-tested in production agent loops
Editorial verdict
Best SDK for building browser automation into products. Three clean primitives (act, extract, observe), v3 dropped Playwright dependency, Cloudflare official integration. New browse-cli shows the team reads the CLI-over-MCP signal correctly.
Source
Videos
Reviews, tutorials, and comparisons from the community.
Tutorial de Testing E2E con IA
Stagehand V2: FULLY FREE Browser Use AI Agent! Automate ANYTHING! (Opensource)
Automate Your Browser with AI Using StageHand AI Agent
Related
Playwright MCP
93Microsoft's official MCP server for Playwright. Uses accessibility snapshots instead of screenshots for structured browser control. Auto-configured in GitHub Copilot's Coding Agent.
Chrome DevTools MCP
92Google Chrome team's official MCP server for Chrome DevTools. Gives coding agents deep debugging, performance profiling, and Core Web Vitals analysis through 26 tools across 6 categories.
Skyvern
90Vision-LLM browser automation for enterprise workflows. Combines computer vision with LLM reasoning to handle websites never seen before. YC S23 backed with CAPTCHA solving, 2FA, and proxy networks.
Vercel Agent Browser
88Token-efficient browser automation CLI for AI agents. Rust core with sub-50ms boot. Claims 93% context reduction vs Playwright MCP through ref-based element selection on accessibility snapshots.
Public evidence
Front-page Show HN with overwhelmingly positive reception. Community praised hybrid AI + Playwright approach. 326 pts is strong organic engagement validating the SDK approach.
Cloudflare added native Stagehand support in their Browser Rendering Workers. Major cloud provider integration validates production readiness at scale.
Independent hands-on review concluding Stagehand is a 'Playwright enhancement, not replacement.' Praises act/extract/observe primitives, but notes agent mode remains experimental with unpredictable results.
Independent landscape survey describes Stagehand v3 as '44% faster' with an 'AI-native rewrite' that talks directly to browsers via CDP. Positions it as the main OSS alternative to Playwright for AI agents.
Stagehand featured as a notable rising project with +17.1K stars gained in 2025 alone (from 2.8K to 19.9K total).
Stagehand v3 dropped the Playwright hard dependency — now supports any CDP-based driver. 44% faster. New browse-cli product (launched Mar 18) shows the team reads the CLI-over-MCP signal correctly.
Independent comparison measured Stagehand at ~75% task completion vs Browser Use ~78%. TypeScript-only (no Python). Auto-caching architecture genuinely differentiated: once AI action succeeds, selector cached and replayed without LLM calls.
Raw GitHub source
GitHub README peek
Constrained peek so you can sanity-check the source material without leaving the site.
What is Stagehand?
Stagehand is the SDK for browser agents. Playwright was built for testing, Stagehand is built for agents. Use familiar APIs, self-healing actions, and network-level security across TypeScript, Python, and Go.
Why Stagehand?
Stagehand gives browser agents an interface built for how they actually work. It combines familiar Playwright-style APIs with self-healing actions, agent-optimized page context, and native support for complex DOM structures like out-of-process iframes and closed Shadow DOMs.
Agents use fewer tokens, recover when websites change, and complete tasks more reliably. With a complete browser driver across TypeScript, Python, and Go, Stagehand delivers the flexibility of AI without sacrificing the speed, control, determinism, reliability, and observability required in production.
1. Familiar APIs
The Playwright-style methods you and your agents already know and love (goto, click, locator, screenshot).
2. Token efficiency as a priority
Stagehand's hybrid accessibility tree trimming gives your agents exactly what they need to understand the page and nothing more.
3. Faster in production
Stagehand runs as an extension next to the browser, closing the distance and reducing round-trip latency for all actions on the page.
4. Self-healing primitives
Use act, observe, and extract with natural language to automate pages. When sites change, Stagehand detects it and refreshes how the actions happen on the page automatically.
5. Features agents need
WebMCP, clipboard support, self-healing actions, batch commands, deep locators for nested iframes, and OTel support.
Getting Started
Check out our Quickstart Guide for more information:
Example
Here's how to build a sample browser automation with Stagehand:
import { browserbase, Stagehand } from "@browserbasehq/stagehand";
import { z } from "zod/v4";
const { BROWSERBASE_API_KEY, OPENAI_API_KEY } = process.env;
const browser = await browserbase.launch({
apiKey: BROWSERBASE_API_KEY,
});
const stagehand = await Stagehand.create({
browser,
model: {
modelName: "openai/gpt-5.4-mini",
apiKey: OPENAI_API_KEY,
},
});
// Stagehand's CDP engine provides an optimized, low level interface to the browser built for automation
const [page] = await browser.context.pages();
await page.goto("https://github.com/browserbase");
// Use act() to execute individual actions
await stagehand.act("click on the stagehand repo");
// Use observe() to see what's actionable on the page
const { data: actions } = await stagehand.observe("find the latest PR");
// Use locators for deterministic Playwright-style actions
await page.locator(actions[0].selector).click();
// Use extract() to get structured data from the page
const {
data: { author, title },
} = await stagehand.extract(
"extract the author and title of the PR",
z.object({
author: z.string().describe("The username of the PR author"),
title: z.string().describe("The title of the PR"),
}),
);
See the Python and Go READMEs for equivalent examples.
Documentation
Visit docs.stagehand.dev to view the full documentation.
Build and Run from Source
Stagehand is a TypeScript, Python, and Go monorepo. We use just to drive pnpm, uv, and go together.
git clone https://github.com/browserbase/stagehand.git
cd stagehand
just install
just generate
just build
Stagehand is best when you have an API key for an LLM provider and Browserbase credentials. Export them so they're available on process.env: