Browser Use
Lets AI do web tasks for you, such as filling forms, searching and extracting data, in the maker’s cloud browsers or on your computer.
Description from the maker (original English)
Plain-English browser tests for AI agents: real Chrome, deterministic verdicts. Free, no API keys.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ANTHROPIC_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"browserbash": {
"command": "npx",
"args": [
"-y",
"browserbash-cli"
],
"env": {
"ANTHROPIC_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add browserbash --env ANTHROPIC_API_KEY=your-value -- npx -y browserbash-cliFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"browserbash": {
"command": "npx",
"args": [
"-y",
"browserbash-cli"
],
"env": {
"ANTHROPIC_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"browserbash": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"browserbash-cli"
],
"env": {
"ANTHROPIC_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account PramodDutta, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ANTHROPIC_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.5.1) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Browser Use, Chrome DevTools MCP, MCP Server Browser
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Lets AI do web tasks for you, such as filling forms, searching and extracting data, in the maker’s cloud browsers or on your computer.
Lets AI use Chrome’s developer tools to inspect pages, find what makes them slow and spot errors. Made by the Chrome DevTools team.
MCP server for browser use access
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Plain-English browser automation. No selectors. Free and open-source.
You write a plain-English objective. An AI agent drives a real Chrome browser step by step — no selectors, no scripts. Ollama-first, so it runs on free local models with no API keys and nothing ever leaves your machine.
npm install -g browserbash-cli
browserbash run "Open news.ycombinator.com and store the top story title as 'top_story'"
[Website](https://browserbash.com) · [Docs / Learn](https://browserbash.com/learn) · [Tutorials](https://browserbash.com/tutorials) · [npm](https://www.npmjs.com/package/browserbash-cli)
Both layers are swappable: the engine interprets the English, the provider runs the browser.
| Engine | What it is | License |
|---|---|---|
stagehand (default) | Stagehand — open-source AI browser automation framework by Browserbase. act/extract/observe/agent primitives, self-healing, supports Anthropic/OpenAI/Google models. | MIT |
builtin | In-repo Anthropic tool-use loop driving Playwright. Used automatically for grids Stagehand can't attach to (LambdaTest, BrowserStack). | Apache-2.0 |
| Provider | Where the browser runs | Engine | Auth |
|---|---|---|---|
local (default) | Chromium/Chrome on this machine | stagehand or builtin | none |
cdp | Any Chrome DevTools Protocol endpoint (your grid, docker, Playwright MCP-managed browser) | stagehand or builtin | none |
browserbase | Browserbase cloud browsers | stagehand only | BROWSERBASE_API_KEY / BROWSERBASE_PROJECT_ID |
lambdatest | LambdaTest / TestMu AI cloud grid | builtin (auto) | LT_USERNAME / LT_ACCESS_KEY |
browserstack | BrowserStack Automate cloud grid | builtin (auto) | BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY |
Default model is auto, resolved in this order:
ollama/ — free, open source, no keysANTHROPIC_API_KEY set → claude-opus-4-8OPENAI_API_KEY set → openai/gpt-4.1| Backend | Model flag | Needs |
|---|---|---|
| Ollama — local, free, OSS (preferred) | auto or ollama/ e.g. ollama/qwen3 | Ollama running; OLLAMA_BASE_URL to override http://localhost:11434/v1, OLLAMA_MODEL to pin auto-detection. Same flag works for any OpenAI-compatible server (vLLM, LM Studio, llama.cpp). |
| Anthropic | claude-opus-4-8 | ANTHROPIC_API_KEY |
| OpenAI / Google | openai/gpt-4.1, google/gemini-2.5-flash | provider key (Stagehand engine) |
| OpenRouter — hundreds of models, one key | openrouter/ / e.g. openrouter/anthropic/claude-sonnet-4-6, openrouter/meta-llama/llama-3.3-70b-instruct | OPENROUTER_API_KEY (https://openrouter.ai/keys); override endpoint with OPENROUTER_BASE_URL |
| Anthropic-compatible gateway | claude-* + ANTHROPIC_BASE_URL | builtin engine routes through any Anthropic-compatible endpoint (e.g. a LiteLLM proxy fronting local models) |
ollama pull qwen3 # or any tool-capable local model
browserbash run "Open https://example.com and store the heading as 'h1'"
Stagehand engine (MIT) + local Chromium + Ollama (MIT) — zero cloud cost, no API keys. Tip: small models (≤8B) are flaky on multi-step objectives; Qwen3 / Llama 3.3 70B class works best.
Note: cloud-grid providers (lambdatest, browserstack) use the builtin engine, which speaks the Anthropic API — pair them with ANTHROPIC_API_KEY or an ANTHROPIC_BASE_URL gateway.
npm install
npm run build npm link # exposes the browserbash command
Requires Node ≥ 18 and Google Chrome stable (for the local provider).
export ANTHROPIC_API_KEY=sk-ant-...
browserbash run "Open https://news.ycombinator.com and store the top story title as 'top_story'"
export BROWSERBASE_API_KEY=... BROWSERBASE_PROJECT_ID=... browserbash run "..." --provider browserbase
export LT_USERNAME=... LT_ACCESS_KEY=... browserbash run "..." --provider lambdatest --headless
browserbash run "..." --cdp-endpoint ws://localhost:9222/devtools/browser/
browserbash run "..." --engine builtin
--agent switches stdout to NDJSON — one JSON object per line, stable schema:
browserbash run "<objective>" --agent --headless --timeout 120
{"type":"step","step":1,"status":"passed","action":"navigate","remark":"...","cached":false}{"type":"run_end","status":"passed|failed|error|timeout","summary":"...","final_state":{...},"duration_ms":...,"provider":"local","cache":"hit|miss|off","tokens_in":...,"tokens_out":...,"test_url":"..."}Exit codes: 0 passed · 1 failed · 2 error · 3 timeout. cached, cache, tokens_in/tokens_out are additive fields (present when relevant), so existing consumers are unaffected.
Full agent integration guide: docs/agents.md.
BrowserBash is a validation layer for AI agents: your coding agent builds a feature, BrowserBash proves it works in a real browser. One line plugs it into any MCP host:
claude mcp add browserbash -- browserbash mcp # Claude Code
Tools exposed: run_objective (one plain-English objective), run_test_file (a *_test.md), run_suite (a folder, parallel). Each returns the structured verdict JSON: status, summary, final_state, assertions, cost_usd, duration_ms. A failed test is a successful validation, so the tool call succeeds and the agent reads the verdict. No extra dependencies, stdio only, nothing leaves your machine.
Every run is kept in a private on-disk store (~/.browserbash/runs, secrets masked, capped at 200). Two ways to see them:
Local dashboard — free, no account, fully local:
browserbash dashboard # serve http://localhost:4477 and open it
browserbash run "..." --record --dashboard # run, then open the dashboard on this run browserbash dashboard --clear # wipe the local store
Left panel lists your runs; the main pane shows the verdict, extracted values and the recording — with --record you get a screenshot plus a session video (stagehand engine, video needs ffmpeg, bundled) or a native Playwright trace you can open at trace.playwright.dev (builtin engine). Nothing leaves your machine.
Cloud dashboard — optional, opt-in per run: a hosted dashboard at browserbash.com/dashboard with run history across machines and shareable per-run pages.
browserbash connect --key bb_... # one-time, key from browserbash.com/dashboard
browserbash run "..." --record --upload # push THIS run (verdict + recording) to the cloud
Without --upload nothing is sent to the cloud. BrowserBash is free and open source; cloud runs are kept 15 days.
A green run records the actions it took. The next identical run replays them with zero model calls, and the agent only steps back in when the page actually changed. Steady-state suites run at close to script speed and cost.
browserbash testmd run ./checkout_test.md # run 1: records the journal
browserbash testmd run ./checkout_test.md # run 2: replays, no model browserbash testmd run ./checkout_test.md --no-cache # ignore the cache for this run browserbash testmd run ./checkout_test.md --refresh-cache # wipe this test's entry, re-record
run_end.cache reports hit / miss / off. On by default; config set cache.enabled false to disable, cache.dir to relocate (default .browserbash/cache, gitignored by init). Secrets never enter the cache: values arrive through the variables channel (Stagehand) or are re-templatized to {{name}} tokens (builtin), and any cached action that types a secret is origin-pinned — replaying it on a different origin fails closed. Builtin journals are also HMAC-signed with a per-machine key (~/.browserbash/cache.key); an edited or foreign journal is ignored and simply re-recorded. CI fleets that want to share committed caches can set the same BROWSERBASH_CACHE_KEY (64 hex chars) on every runner.
run-all)Run a whole folder of *_test.md files at once with memory-aware scheduling:
browserbash run-all .browserbash/tests --concurrency 8 --junit out/junit.xml
min(requested, cpus, floor((mem - 2GB) / budget))), so big suites do not thrash the machine. Override with --concurrency, tune the estimate with --memory-budget . A hard watchdog also kills any test whose whole process tree (Node + Chromium) exceeds --memory-cap (default 2x the budget, 0 disables); the test is reported as an infra error with a test_kill event, and retried per --retries.Result.md; a failure never leaks state to the next test.--retries retries infra errors only (not real failures), --max-failures stops early, --stagger softens burst load.--events, add --agent to also stream on stdout), JUnit XML (--junit), and a RunAll-Result.md with a flaky column..browserbash/memory/history.json orders the next run (previously-failed first, then slowest first) and flags flaky tests. --no-memory opts out.--shard 2/4 runs a deterministic slice, computed on sorted discovery order so parallel CI machines agree without coordination.--matrix-viewport 1280x720,390x844 runs every test once per viewport; cells are labeled in events, JUnit and results. Single runs take --viewport WxH too.--budget-usd 2.50 (or --budget-tokens) stops launching new tests once estimated spend crosses the budget; the rest are reported skipped and the suite exits 2. Spend lands in RunAll-Result.md and JUnit .--notify POSTs the suite verdict when it ends (Slack URLs get Slack formatting).0 all passed · 1 any failed · 2 infra error or budget stop · 3 suite timeout.Plan on a strong model, execute on a cheap one, escalate back automatically after a failed step:
browserbash run "..." --model claude-opus-4-8 --model-exec claude-haiku-4-5
run_end reports tokens_in / tokens_out (builtin engine) so you can see what a run costs, plus a cost_usd estimate from a bundled per-model price table (override at ~/.browserbash/pricing.json; unknown models get no estimate rather than a wrong one). Set persistently with config set routing.executionModel .
*_test.md)Committable, reviewable Markdown tests:
# Login flow
Only the beginning is shown; read the rest in the repo