Skip to content

Browser Use v0.13.2: Deploy the Open Source Browser Agent

Install Browser Use v0.13.2, the open source browser agent with 79k+ GitHub stars. Real commands, dependencies, and the Playwright gotcha nobody warns you about.

6 min readIntermediate

Two ways to deploy the open source browser agent Browser Use: (1) plain pip install browser-use, or (2) uv add browser-use with Python 3.12 pinned. The second wins – not because uv is faster (it is), but because the official README explicitly recommends uv with Python 3.12, and mismatched Python versions are the #1 source of silent resolution failures on this package.

This guide targets Browser Use v0.13.2, published on June 12, 2026. If you’re on 0.11.x or 0.12.x, skip to the upgrade section – there’s a Playwright-related bug you need to know about before you touch anything.

What you’re actually installing

Browser Use has 79k+ GitHub stars as of June 2026. Internally, it drives Chromium through Playwright, feeds a distilled DOM to your LLM, and lets the model click, type, and navigate – all from Python. The 89.1% success rate on WebVoyager (586 diverse web tasks, as of early 2026) is the headline benchmark number, per Firecrawl’s 2026 browser agent roundup.

That benchmark figure is worth pausing on. Scripted browser automation – Selenium, Puppeteer – tops out at whatever you hard-coded. An agent-driven approach means the failure mode shifts from “the selector broke” to “the model misunderstood the task.” Different problem, different debugging instincts.

You’ll want the open-source docs open in another tab throughout this guide.

System requirements

Component Minimum Recommended
OS Linux / macOS / Windows 10+ Ubuntu 22.04 or macOS 13+
Python 3.11 3.12 (per official README)
RAM 4 GB 8 GB+ (Chromium is hungry)
Disk ~500 MB free Chromium binary alone runs 126-161 MiB depending on channel
Network Access to playwright.azureedge.net Same, unblocked
LLM key 1 of: OpenAI / Anthropic / Google / Browser Use Cloud Anthropic Sonnet or the hosted bu-* models

Install: the uv path

Fresh install on a clean machine. Four commands:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.12
source .venv/bin/activate
uv add browser-use

Then install the Chromium binary that Playwright ships:

uvx playwright install chromium --with-deps

The --with-deps flag pulls the system libraries Chromium needs (libnss3, libatk-bridge, etc.) on Debian/Ubuntu. Skip it and you’ll get cryptic “failed to launch browser process” errors on headless Linux boxes.

If you prefer pip, the equivalent is pip install browser-use (per the official README) followed by the same Playwright step. Don’t mix uv and pip in the same venv.

First-run configuration

Create a .env next to your script. Minimum viable config for using Anthropic:

# .env
ANTHROPIC_API_KEY=sk-ant-...
# Optional:
# BROWSER_USE_API_KEY=your-key # only for Browser Use Cloud
# GOOGLE_API_KEY=your-key

The API key env vars supported out of the box – BROWSER_USE_API_KEY, GOOGLE_API_KEY, ANTHROPIC_API_KEY – are documented in the official README. OpenAI’s OPENAI_API_KEY is picked up by the standard OpenAI SDK when you use a ChatOpenAI wrapper.

Watch out: Don’t start with the hosted bu-* models if you’re debugging. Use a frontier model like Claude Sonnet or GPT-4o for the first run – when something breaks, you want to know whether it’s your task prompt or the model, and frontier models fail more predictably than the tuned agent-specific ones.

Verify it works

Skip the usual “scrape Hacker News” demo. It hits a real site and adds noise. Instead, use this minimal verification that touches only example.com:

import asyncio
from browser_use import Agent
# Import your LLM wrapper - check the current docs for the exact class name:
# https://docs.browser-use.com/open-source/introduction
from langchain_anthropic import ChatAnthropic

async def main():
 agent = Agent(
 task="Open https://example.com and return the h1 text.",
 llm=ChatAnthropic(model='claude-sonnet-4-5'),
 )
 history = await agent.run()
 print(history.final_result())

asyncio.run(main())

If it prints “Example Domain” (or a close paraphrase), your install is healthy. If it hangs on browser launch, the next section is where you need to go – that’s almost certainly the Playwright path bug.

Common install errors and their real fixes

“No local browser binary found” (the watchdog bug)

Nasty one, because playwright install reports success. Turns out the watchdog checks a different folder: Playwright 1.57.0 installs Chromium to $playwright_path/chromium-*/chrome-linux64/, but Browser Use’s LocalBrowserWatchdog looks for chrome-linux/ – so it fails to find the browser and terminates after trying to reinstall. Filed as issue #3779 against v0.11.2. Fix: upgrade to 0.13.2 (fixed) or pin Playwright below 1.57.0 in your lockfile.

ImportError: cannot import name ‘ChatLiteLLM’ (or missing litellm)

If you’re following a tutorial from 2024-2025, it probably imports litellm. That won’t work by default anymore. After the litellm supply-chain attack on versions 1.82.7 and 1.82.8 (backdoored on March 24, 2026), the browser-use maintainers pulled litellm from core dependencies – pip install browser-use no longer installs it, though the ChatLiteLLM wrapper is preserved if you install litellm separately. Fix: pip install litellm yourself, at a version above the poisoned ones.

getaddrinfo ENOTFOUND playwright.azureedge.net

Corporate proxy or air-gapped network. Playwright fails to download Chromium because the binary CDN at playwright.azureedge.net is unreachable (documented in playwright-python issue #1292). Two fixes: (a) set PLAYWRIGHT_DOWNLOAD_HOST to an internal mirror, or (b) skip the download entirely and point at a system browser channel. The Playwright docs list the supported channels – chrome, msedge, chrome-beta, and several others – which you pass via a channel arg in your BrowserProfile.

Upgrade and uninstall

uv add browser-use@latest
uvx playwright install chromium

Rerun playwright install even if it looks unnecessary. The version pinning between browser-use and playwright shifts across minor releases, and stale Chromium builds are a recurring source of “target closed” errors.

Clean uninstall:

uv remove browser-use
playwright uninstall # removes downloaded Chromium builds
rm -rf ~/.cache/ms-playwright # clears the cache

The cache directory is the one people forget – it accumulates Chromium builds across upgrades and is worth checking before blaming a disk space issue on something else.

FAQ

Do I need Browser Use Cloud, or is the open source version enough?

Enough for almost everything. Cloud adds stealth browsers, CAPTCHA solving, and managed infrastructure – worth it only if you’re hitting anti-bot walls or running at fleet scale.

Why does the docs prompt pin Python 3.12 specifically?

Because dependency resolution on 3.11 sometimes pulls older Playwright releases, and 3.13 (as of mid-2026) still has gaps in some transitive deps used by the LLM SDKs Browser Use ships with. A common failure mode: you run uv add browser-use on Python 3.11, it succeeds, then Chromium launch hangs because the resolver picked a Playwright version that predates the current Chromium build. Pinning 3.12 sidesteps that whole class of issues.

Can I run it against my existing Chrome instead of downloading Chromium?

Yes – pass a channel like chrome in your BrowserProfile. Useful when Playwright’s CDN is blocked (see the getaddrinfo fix above). Note that Chrome respects enterprise policies, so managed corporate laptops may still cause problems.

Now write the smallest task you can think of, point Browser Use at it, and watch the agent work. The verification script above is one line away from being useful – swap example.com for a site you actually care about and change the task prompt.