mrkeyoor.com_
Wed 16 Sept 05:24 UTC
LLM Toolsevaluationupdated 25 Aug 2026

browser-use review

Browser Use is a Python library and coding-agent skill that lets a language model inspect web pages, click controls, enter text, download files, and return structured results. It is for browser tasks where the steps cannot be captured easily with fixed selectors, and it can run with a local browser or the company's hosted browser service.

+783stars / 7d
Verdict

Our Browser Use install occupied 535 MB, reported 19 known vulnerabilities, and never reached tests because pytest rejected a configured argument. It is still a strong experiment for supervised, messy web tasks where fixed scripts break too often, provided the team pins dependencies and tests its own sites. Use Playwright for deterministic flows, and treat Browser Use Cloud as a separate operational and privacy decision.

We ran it

Lab card: what happened when we ran browser-useScreenshot of browser-use (browser-use.com)
Install✓ · 92s148 packages · 535 MB
Build✓ · 9s
Tests✗ · 12sran, no count parsed
Known vulns19(pip-audit)
Repo494 files~109,739 lines of source · 8.4 MB · 9 CI workflows · Dockerfile · tests dir

Answers from our run

Does browser-use build from source?

Dependencies installed in 92 seconds (148 packages), and the build succeeded in 9 seconds. We cloned commit 85ddbfe into a clean Debian container with 3 CPUs and no project-specific setup.

Do browser-use's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does browser-use have known vulnerabilities in its dependencies?

pip-audit flagged 19 known advisories in the dependency tree at the time of our run.

Who should not use browser-use?

Deterministic scraping or testing jobs with stable selectors: Playwright code is easier to assert, replay, and audit than model-selected clicks.

What are the alternatives to browser-use?

Stagehand, Skyvern, Playwright for Python. Our Browser Use install occupied 535 MB, reported 19 known vulnerabilities, and never reached tests because pytest rejected a configured argument.

Setup2/5Simple command, heavy tree, failed test startup, and browser setup
Docs4/5Clear library, skill, cloud, auth, and production paths
Community5/5Same-day fixes and a large active issue and pull-request queue
Maturity3/5Capable 0.13 release with frequent browser and agent fixes

Discussed on

  1. hnLaunch HN: Browser Use (YC W25) – open-source web agents259 points
  2. hnShow HN: I wrote an open-source browser alternative for Computer Use for any LLM180 points
  3. hnShow HN: Browser Harness – Gives LLM freedom to complete any browser task134 points
  4. hnShow HN: Workflow Use – Deterministic, self-healing browser automation (RPA 2.0)69 points
  5. hnFixing Failures in Browser-Use Models: Why More Data Isn't Enough17 points

Who it’s for

Python teams prototyping browser agents across websites with changing layouts.
Developers who need custom agent tools, prompts, structured output, and direct browser control.
Claude Code, Codex, Cursor, Hermes, or OpenClaw users who want one-off browser tasks through an installed skill.
Operations teams willing to supervise high-impact actions and pay for an LLM, browser cloud, or both.

Who it’s NOT for

Deterministic scraping or testing jobs with stable selectors: Playwright code is easier to assert, replay, and audit than model-selected clicks.
Teams unable to expose page content or task context to a model provider: the quickstart requires a Browser Use, Google, Anthropic, or other LLM key unless a local model is configured.
Self-hosters expecting built-in CAPTCHA and proxy handling: the FAQ directs those needs to Browser Use Cloud.
Production operators without a plan for browser memory and concurrency: the README says Chrome uses substantial memory and parallel agents are difficult to manage.
Security-sensitive deployments that cannot accept the measured dependency state: our audit reported 19 known vulnerabilities after installing 148 packages.
Contributors expecting the configured test command to start in a generic Python image: pytest rejected --dist=loadscope in our run.

Setup reality

Our run installed 148 packages in 92 seconds and used 535 MB on disk. The build passed in 9 seconds, but tests stopped after 12 seconds with exit 4 because pytest did not recognize --dist=loadscope. pip-audit reported 19 known vulnerabilities.

The library needs Python 3.11 or newer, a supported LLM, and its API key unless you configure a local model. Real tasks also need a browser profile or account sessions. Remote browsers, profile sync, proxy rotation, CAPTCHA handling, and high concurrency move setup into Browser Use Cloud or your own browser infrastructure.

We tested commit 85ddbfe in an unprivileged Python 3.12 Debian container with 3 CPUs, 8 GB of RAM, and no secrets. The checkout contained 494 files and about 109,739 source lines. It includes a Dockerfile, a tests directory, and 9 CI workflow files.

Browser Use is for workflows whose page structure keeps moving

Browser Use gives a language model a browser and a set of actions. The agent can open pages, inspect their content, click, type, fill forms, and collect structured output from a task written in plain language. That is useful when a workflow crosses several unfamiliar pages or when maintaining exact selectors costs more than reviewing an agent's choices.

The project offers two entry points. Python developers embed Agent and choose a model, browser, tools, and output shape. Users of Claude Code, Codex, Cursor, Hermes, or OpenClaw can install a skill and issue one-off tasks through their existing agent. Because that skill is also an MCP-facing tool path, permissions and browser sessions deserve the same care as any automation that can submit forms or access accounts.

The open library and hosted service solve different problems

The MIT-licensed package can run on a user's machine and accept several model providers. The quickstart requires Python 3.11 or newer and shows a Browser Use API key, with Google and Anthropic keys as alternatives. A local model is possible, but the user still owns browser installation, profiles, downloads, resource limits, and the model's ability to understand the target pages.

The company recommends its cloud service for harder production work. The README assigns proxy rotation, CAPTCHA handling, browser fingerprinting, memory management, parallel execution, persistent storage, and hosted integrations to that offering. This division is important: installing the open-source package does not reproduce the hosted operating layer. Teams should price and review each piece separately.

Authentication is another boundary. Browser Use can reuse a real Chrome profile with saved logins or sync a profile to a remote browser using another utility. That is convenient, but it places valuable cookies inside an agent-controlled environment. Use dedicated accounts, narrow permissions, explicit confirmation before destructive actions, and task logs that record what the agent submitted.

What happened when we ran it

Our sandbox installed 148 Python packages in 92 seconds. They occupied 535 MB, which is large for a 494-file repository even before counting a browser runtime. The build succeeded in 9 seconds. pip-audit found 19 known vulnerabilities in the installed dependency set, so a production adopter should inspect the actual advisories and upgrade constraints rather than accepting the lock state unchanged.

The configured tests did not begin. After 12 seconds, pytest exited with code 4 because it did not recognize --dist=loadscope, an option supplied through pyproject.toml. The log identifies that argument failure but does not prove why the matching pytest capability was absent. We cannot report any passing or failing test cases from this run.

We tested commit 85ddbfe in a fresh Python 3.12 Debian container with 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges. The checkout held about 109,739 source lines, a Dockerfile, a tests directory, and 9 CI workflow files. The failed startup shows that the repository's configured test path was not self-contained in our installed environment.

Model-selected clicks need a different safety model

Traditional browser scripts specify what element to click and what result to assert. Browser Use asks a model to choose actions from page state. This can survive layout changes and handle tasks that are awkward to encode. It also introduces judgment into a channel that may send messages, accept terms, buy items, upload files, or expose account data. A plausible action is not necessarily the authorized action.

Custom tools increase both usefulness and risk. The Python API lets developers add actions that reach internal systems or application functions. Domain restrictions, confirmation points, limited credentials, and isolated browser profiles should be designed before such tools are available to the agent. Release 0.13.8 fixed domain-restricted actions appearing on an empty URL and made MCP errors surface as failed actions, which shows these boundaries are active engineering concerns.

Reliability should be measured on the team's own tasks. The README presents benchmark claims, but a pull request updated August 25, 2026, corrects one advertised leaderboard rank from first to second. More importantly, public benchmark tasks do not capture a company's login flow, regional pages, consent dialogs, or failure cost. Record completion, wrong-action, retry, and human-intervention rates on the exact sites being automated.

Fast maintenance also means frequent behavior changes

Release 0.13.8 was published August 16, 2026, and contains fixes across tool arguments, mutable agent state, browser downloads, DOM serialization, provider responses, MCP errors, file writes, cookies, and dependency pins. GitHub recorded another push on August 25, with 391 open issues and pull requests combined. This is clearly active software, but the breadth of fixes makes pinning and regression tests essential.

The README is helpful about choosing the CLI versus Python, selecting a model, authenticating a browser, and deciding between open source and cloud. It is less neutral about hosted-product comparisons, as expected from a company repository. Read the API and deployment docs for mechanics, then validate cost, privacy, and task success independently.

Use an agent where ambiguity is the expensive part

Browser Use fits supervised research, data entry, and cross-site work where pages change and a human can review the outcome. Its model flexibility, custom tools, MCP path, and active maintenance give developers room to build. Our 535 MB install and 19 audit findings make dependency review a prerequisite, while the failed pytest startup leaves upstream test health unverified in our environment.

Stable QA scripts, regulated account actions, and high-volume scraping usually need tighter control. Playwright exposes clearer assertions and failures when selectors are known. Choose Browser Use when interpreting the page is the hard part, then constrain what the agent may do after that interpretation.

Alternatives

ProjectWhat it isPick it when
Stagehand gh↗An AI browser automation framework that mixes natural-language actions with code.pick this instead when you want to combine model-guided steps with a Browserbase-centered TypeScript workflow.
Skyvern gh↗A visual browser automation platform for multi-step web workflows.pick this instead when workflow management and an application layer matter more than embedding a Python agent library.
Playwright for PythonA deterministic browser automation library with direct page and selector APIs.pick this instead when the workflow is known, repeatability matters, and you can maintain selectors.

What people are saying

  1. [velocity-scout] browser-use/macos-harness
  2. [github-trending] browser-use/browser-harness
  3. [github-trending] browser-use/browser-use
  4. [github-trending] browser-use/video-use

Sources

  1. Browser Use README
  2. Browser Use 0.13.8 release
  3. Leaderboard rank correction
  4. Reasoning model configuration issue

More llm tools reviews

headcount · useagent · claude-skills · RAG_Techniques · ux-ui-agent-skills · dictionary-of-ai-coding · the whole board →