Browser Use

Run AI-driven web tasks through a local or managed cloud browser.

Stars
★ 120k
Last updated
today
License
MIT
Primary language
Python

At a glance

How it runs
Hosted serviceCLILibrary / SDK
Works with
Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
Cost
Free tier plus a paid hosted plan
Setup effort
Low · running in minutes
You'll need
Python 3.11 or neweruvA supported model or model-provider APIA local browser or Browser Use cloud browserShell / CLINetwork accessLocal filesystem
Typical use
An operations team automating appointment workflows can have the agent find an open slot, select a date and time, and complete browser steps; the showcased example books a driving test.
Not a fit if
  • Teams that need fully offline or on-prem data handling
  • Teams unwilling to depend on BROWSER_USE_API_KEY cloud services
  • Anyone needing a guarantee that every CAPTCHA is solved

What does this agent do, and when should you use it?

Browser Use is an MIT-licensed browser-agent project delivered as a fully hosted Cloud API, a CLI for existing agents, and an embeddable Python library. The Python interface constructs an Agent from a task and a model wrapper such as ChatOpenAI, ChatBrowserUse, ChatAnthropic, or ChatGoogle, then operates a local or cloud Browser. It performs multi-step web interactions and exposes the outcome through the run history's final_result(); documented examples include retrieving a repository's star count and booking a driving test. Applications can register custom actions with Tools, request structured output, customize the system prompt, and reuse browser profiles. Teams can therefore self-host the agent and browser, retain their agent while outsourcing only the browser, or hand both layers to the hosted service.

In the local Python flow, credentials are loaded from .env, a model wrapper and natural-language task are passed to Agent, and await agent.run() starts or connects to a Browser. The agent navigates the network, performs page interactions, records run history, and makes the final answer available through final_result(). Setting Browser(use_cloud=True) selects a hosted browser, while Browser.from_system_chrome() can reuse a local Chrome profile; a cloud browser can use synchronized cookies through cloud_profile_id. Developers can decorate Python functions with @tools.action, collect them in Tools, and pass them to the agent as additional operations. The CLI route uses browser-use skill install to register browser access for existing agents including Codex and Claude Code, while the fully hosted Cloud API runs the task, agent, browser, and supporting infrastructure.

  1. An operations team automating appointment workflows can have the agent find an open slot, select a date and time, and complete browser steps; the showcased example books a driving test.
  2. A developer already working in Codex or Claude Code can install the CLI skill to give that existing agent browser access.
  3. A Python application team can embed Agent, choose its model provider, and consume the task result through final_result().
  4. A team automating authenticated sites can reuse a system Chrome profile locally or synchronize cookies into a cloud profile referenced by cloud_profile_id.
  5. An organization running browser tasks at scale can use the fully hosted API for managed agents, browsers, recordings, profiles, and data-policy infrastructure.
  6. A developer with domain-specific requirements can register custom Python actions through Tools, such as an action that returns the current UTC time.

How do you install or deploy this agent?

The Python library requires Python 3.11 or newer. For a new project, the documented setup uses Python 3.12 and uv:

uv init --python 3.12
uv add browser-use

Add an OpenAI credential to .env. Add the Browser Use credential when using BU2 or a cloud browser:

# .env
OPENAI_API_KEY=your-key
# BROWSER_USE_API_KEY=your-key  # Optional: BU2 model or cloud browser

For the CLI route used with Codex, Claude Code, Hermes, OpenClaw, or another existing agent, the documented instruction is to install or upgrade browser-use to the latest stable version with uv on Python 3.12, then run:

browser-use skill install

The CLI must subsequently be connected to a browser; the supplied source does not include more granular connection commands.

How do you use this agent?

Save the following as agent.py. It uses an OpenAI model to run a browser task that retrieves the repository's star count:

import asyncio

from browser_use import Agent, Browser, ChatBrowserUse, ChatOpenAI
from dotenv import load_dotenv

load_dotenv()

async def main():
    llm = ChatOpenAI(model='gpt-5.6-luna', reasoning_effort='xhigh')
    # llm = ChatBrowserUse(model='bu-2-0')  # Use BU2 instead; requires BROWSER_USE_API_KEY
    agent = Agent(
        task="Find the number of stars of the browser-use repo",
        llm=llm,
        # browser=Browser(use_cloud=True),  # Use a cloud browser; requires BROWSER_USE_API_KEY
    )
    history = await agent.run()
    print(history.final_result())

if __name__ == "__main__":
    asyncio.run(main())

Run it with:

uv run agent.py

To use BU2, replace the active ChatOpenAI assignment with the commented ChatBrowserUse(model='bu-2-0') line. To use a hosted browser, enable Browser(use_cloud=True). Both optional services require BROWSER_USE_API_KEY, although the cloud browser can be paired with either model route.

What are this agent's strengths and limitations?

Pros
  • It offers three concrete adoption paths—hosted API, CLI for an existing agent, and an embeddable Python library—covering different infrastructure ownership needs.
  • The model layer is flexible: the project documents BU2, direct OpenAI, Anthropic, and Google wrappers, and provider-prefixed models through the Browser Use gateway.
  • Both local and cloud browsers are supported, with documented options for system Chrome reuse, cloud cookie profiles, recordings, stealth browsers, and proxies.
  • Tools, structured output, and system-message extension or replacement allow applications to add domain-specific operations and output constraints.
  • The Python library is MIT-licensed and can be deployed with self-managed agents and browsers.
Limitations
  • The Python route requires Python 3.11 or newer, and the documented workflow also needs uv, environment configuration, model credentials, and an available browser.
  • A free library does not mean cost-free execution: model providers, ChatBrowserUse, and Browser Use Cloud may charge for inference or hosted-browser usage.
  • BU2, cloud browsers, and cloud profiles require BROWSER_USE_API_KEY, creating a service dependency when those capabilities are adopted.
  • Profile synchronization transfers cookies but not local storage, IndexedDB, or extensions, so some sites may still require a fresh sign-in.
  • Stealth browsers and proxies can reduce detection and CAPTCHA challenges, but the project explicitly does not guarantee that every CAPTCHA can be avoided or solved.

How does this agent compare with similar options?

The fully hosted Cloud path fits teams that want to submit tasks through an API and delegate both the agent and browser infrastructure. The CLI fits users who already work with Codex, Claude Code, Hermes, OpenClaw, Pi, or Cursor and primarily need browser access added to that agent. The Python library is the better fit when an application needs custom tools, structured output, model selection, or direct control of agent code; both the CLI and library can use either local or cloud browsers. For models, the project recommends the browser-optimized BU2 but also documents OpenAI, Anthropic, and Google routes, leaving adopters to balance task performance, latency, and budget.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Browser Use This agent 47 · Major gaps Hosted serviceFreemium ★ 120k today Python Codex · Claude Code · OpenAI API · Claude API
WebArena: Realistic Web Environment for Agents 39 · Major gaps CLIFree + model costs ★ 1.6k 11mo ago Python —
Opensteer 49 · Major gaps CLIFree ★ 205 today TypeScript —
Obscura Headless Browser 75 · Good CLIFree ★ 30k 1d ago Rust Claude.ai

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
47/ 100 5-point scale 2.4 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 7 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 7/29
Reliability 8/14
Adaptability 10/18
Convention 10/18
Effectiveness 9/13
Verifiability 3/8
Why each dimension lost points
Trust7 / 29 · 1.2/5

Evidence shows: The project provides CLI and Python library, allows custom tools and LLMs, but does not explicitly implement least privilege; user confirmation mechanism is absent, no user confirmation steps seen; data flow transparency is limited, README mentions telemetry but does not detail data flow; sensitive data handling, README mentions authentication and CAPTCHA handling but not how sensitive data is protected; dependency security, pyproject.toml pins dependency versions but no vulnerability scanning or security audit evidence; external effects, the project can automate browser actions but no explicit restrictions or warnings; rollback mechanism not mentioned; source attribution, README and pyproject.toml provide author info but publisher unverified. Deductions: missing user confirmation, rollback, insufficient data flow and sensitive data handling documentation.

Reliability8 / 14 · 2.9/5

Evidence shows: Internal consistency is good, README, pyproject.toml, and test files correspond; dependency availability, dependency list is complete and pinned but no availability guarantee; failure messages, test files have error handling but no user-friendly failure messages. Deductions: failure message design not fully demonstrated.

Adaptability10 / 18 · 2.8/5

Evidence shows: README clearly distinguishes CLI and Python library use cases, suitable for different audiences; capability boundaries, README explains CLI and library scenarios but no explicit limits; trigger precision, CLI triggered by commands but no detailed trigger conditions; environment fit, pyproject.toml supports multiple platforms but no detailed system requirements. Deductions: trigger precision and system requirements insufficient.

Convention10 / 18 · 2.8/5

Evidence shows: Information architecture is clear, README well-structured; install notes detailed, multiple installation methods; naming stability, multiple CLI aliases provided but no stability statement; examples and FAQ rich, multiple use cases; known limitations, README mentions production memory issues but not comprehensive; license MIT, clear; versioning and changelog, pyproject.toml has version but no changelog; maintenance responsibility, README provides author and community links. Deductions: missing changelog and comprehensive known limitations.

Effectiveness9 / 13 · 3.5/5

Evidence shows: Output usability, README shows various output formats (e.g., CSV, tables); marginal value, project provides unique browser automation capability; cost-benefit, README mentions free and open source but no detailed cost analysis. Deductions: cost-benefit analysis insufficient.

Verifiability3 / 8 · 1.9/5

Evidence shows: Claims in README (e.g., benchmarks) lack specific data sources; cross-source corroboration, README mentions benchmarks and leaderboards but no links; fact-inference separation, README mixes facts and marketing language. Deductions: claims lack traceability, facts and inferences not clearly separated.

Risks and how to mitigate them
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Publisher identity unverified, proceed with caution.
  • Lack of user confirmation mechanism, automated actions may pose risks.
  • Insufficient documentation on data flow and sensitive data handling, further review needed.
  • Dependencies pinned but no security audit, watch for dependency vulnerabilities.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 32601887cfbc New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. 0.13.14 0.13.14: Python agent and integration updates
    Release notes excerpt
    This release keeps the Python agent and its existing models. The Pi migration remains separate. Changes since the last PyPI release: - Add OpenAI browser tools and the shared Bash helper. - Improve bounded page observations, form state, file access, and browser recovery. - Fix temporary empty Cloud tab URLs. - Keep screenshots, crops, and clicks aligned on scaled displays. - Clean up failed browser reconnect initialization. - Improve missing-key errors for Cloud browsers. - Support Browser Use Cloud SDK V4 imports. - Update aiohttp from 3.14.3 to 3.14.5. …
    View on GitHub ↗
  2. 0.13.13 0.13.13: OpenAI browser tools and Cloud fixes
    Release notes excerpt
    This release includes the OpenAI browser-tool driver and fixes two integration issues. - Handle temporary empty Cloud tab URLs during navigation. - Keep screenshots, crops, and pointer coordinates aligned on scaled displays. - Provide 18 default browser tools and six optional actions through Browser Use Actor. - Support local browsers, Browser Use Cloud, and borrowed browser sessions. Install the openai-tools extra with OpenAI Python 3.31+. OpenAI 3.x uses httpx2; use its DefaultAsyncHttpxClient for custom HTTP clients. …
    View on GitHub ↗
  3. 0.13.12 0.13.12: OpenAI browser tools
    Release notes excerpt
    Add OpenAI browser tools backed by Browser Use Actor. - Import BrowserUse from browser_use.integrations.openai. - Install browser-use[openai-tools] to enable OpenAI Python 3.31+. - Use local browsers, Browser Use Cloud, or an existing connected BrowserSession. - Support the 18 default browser tools and six optional actions. - Preserve borrowed browser ownership and check Cloud browser cleanup. - Preserve URL and timeout settings across OpenAI 2.x and 3.x model wrappers. OpenAI 3.x uses httpx2. For custom HTTP clients, use OpenAI's DefaultAsyncHttpxClient. …
    View on GitHub ↗

FAQ

Can I use it for free?
The Python library is free under the MIT License. Model inference, ChatBrowserUse, and Browser Use Cloud can incur usage charges. A local browser and an Ollama-hosted local model are also documented options, subject to hardware and model requirements.
Must I use Browser Use's model or cloud service?
No. The Python library can connect directly through wrappers including ChatOpenAI, ChatAnthropic, and ChatGoogle, and it can control a local browser. BU2 and the hosted browser are optional paths requiring BROWSER_USE_API_KEY.
How does it handle authenticated websites?
For local execution, Browser.from_system_chrome() can reuse a Chrome profile. For cloud execution, a synchronized profile can be selected with Browser(use_cloud=True, cloud_profile_id='your-profile-id'). Only cookies are synchronized, so some sites may require another sign-in.
Will it solve every CAPTCHA?
No. The cloud service supplies stealth browsers and proxies intended to reduce detection and CAPTCHA challenges, but the project states that no browser configuration guarantees avoiding or solving every CAPTCHA.
Which production deployment should I choose?
Keep the CLI or Python agent code and connect it to cloud browsers when you want managed browser infrastructure but control of the agent. Use the fully hosted Cloud API when the service should run both layers. Self-hosting the Python library and browsers is also supported.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Head-to-head comparisons

Related agents