2026-08-30 23:41:02 -07:00
2026-07-01 11:48:19 +08:00
2025-11-26 13:06:03 -08:00
2026-07-16 15:54:33 -07:00
2026-02-23 15:24:40 -08:00
2025-06-03 16:03:08 -07:00
2025-08-31 12:01:39 -07:00
2025-06-27 05:36:23 -07:00
2024-11-05 19:07:17 +01:00
2026-08-29 20:55:35 -07:00
2026-07-16 15:54:33 -07:00

Shows a black Browser Use Logo in light color mode and a white one in dark color mode.
The AI browser agent.
Browser-Use Package Download Statistics

Demos Docs Blog Merch Github Stars Twitter Discord Browser-Use Cloud

What can Browser Use do?

Browser Use lets an AI agent use a web browser the same way humans do — it opens pages, clicks buttons, types, and fills in forms. You describe the task, and it completes it. For example, you can have it:

📋 Fill Forms

Task: "Fill in this job application with my resume and information."

Job Application Demo

Example code ↗

🍎 Extract data

Task: "Extract structured data about my followers and export it as a CSV."

https://github.com/user-attachments/assets/485fd3ec-61b9-4afc-9e86-ee9b85acb592

Browser Use Cloud Docs ↗


Quickstart

If you want to use Browser Use in your agent (Claude Code, Codex, Cursor, Hermes, OpenClaw, etc.), paste this prompt, and it sets everything up itself:

Install or upgrade browser-use to the latest stable version with uv using Python 3.12, run `browser-use skill install` to register the skill, and connect it to my browser. If setup or connection fails, follow https://github.com/browser-use/browser-harness/blob/main/install.md.

Then tell your agent what you want done.


Python library: automate the web from your own code

Want to automate the web at scale with your preferred supported LLM? Use the Python library:

1. Install Browser Use (Python >= 3.11):

uv add browser-use
# or: pip install browser-use

2. Add your LLM API key to .env. Get one from Browser Use Cloud, or bring your own provider key:

# .env
BROWSER_USE_API_KEY=your-key
# GOOGLE_API_KEY=your-key
# ANTHROPIC_API_KEY=your-key

3. Run your first agent:

import asyncio

from browser_use import Agent, ChatBrowserUse

async def main():
    agent = Agent(
        task="Find the number of stars of the browser-use repo",
        llm=ChatBrowserUse(model='openai/gpt-5.5'),
        # llm=ChatBrowserUse(model='bu-2-0-mini-preview'),  # Browser Use's optimized model
        # llm=ChatOpenAI(model='gpt-5.5'),
        # llm=ChatAnthropic(model='claude-opus-4-8'),  # Sonnet also works well
    )
    history = await agent.run()

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

Check out the library docs and the cloud docs for more!


Open source and Browser Use Cloud

BU Bench V1 - LLM Success Rates

We benchmark Browser Use across 100 real-world browser tasks. Full benchmark is open source: browser-use/benchmark.

See the Browser Use benchmark index for dated agent and browser results, task counts, comparisons, sources, and methodology.

Use the open-source agent

  • Free, and runs on your own machine
  • Deep code-level integration and control: pick your LLM, customize the agent's behavior
  • Pair it with a local browser, your own remote browser, or Browser Infrastructure for managed cloud browsers, proxies, and browser profiles (setup guide)

Use Browser Use Cloud when you want managed execution or hosted browser infrastructure:

  • Browser Use Agents — give a task to a fully hosted agent. Browser Use manages the agent, browser, execution, and results.
  • Browser Infrastructure — provision hosted cloud browsers for AI agents and control them with the Cloud SDK, REST API, CDP, or the open-source browser-use package.

Browser Use Agents support managed integrations, persistent files and memory, and rerunnable scripts (guide):

curl -X POST https://api.browser-use.com/api/v4/runs \
  -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"task": "Your task"}'

Get a key in the Cloud dashboard, then follow the Agents quickstart to monitor the run and retrieve its result.


Integrations, hosting, custom tools, MCP, and more on our Docs ↗


FAQ

Should I use the CLI vs. the Python library?

Use the CLI if you already have an agent (Claude Code, Codex, Cursor, Hermes, OpenClaw, etc.) that you want to complete browser tasks for you. The agent installs the skill once (see Quickstart) and can then control the browser. Examples:

  • "Upload this video to YouTube"
  • "Compare these three laptops and give me a table with prices"
  • "Fill in this job application with my resume"

Use the Python library when you are building software that automates the web. Examples:

  • Run many tasks on a schedule or in parallel (scraping, monitoring, QA)
  • Embed a browser agent into your own product
  • Custom tools, custom system prompts, structured output, fine-grained browser control

Rule of thumb: one-off tasks through an agent → CLI. Repeatable automation in code → Python library.

What's the best model to use?

We optimized ChatBrowserUse() specifically for browser automation tasks and recommend it as the default Browser Use model.

For pricing and other LLM providers, see our supported models documentation.

Can I use Claude / GPT / Gemini through ChatBrowserUse?

Yes. ChatBrowserUse accepts provider-prefixed model ids, so a single BROWSER_USE_API_KEY reaches all of them — no separate OpenAI/Anthropic/Google keys required:

from browser_use import Agent, ChatBrowserUse

llm = ChatBrowserUse(model='anthropic/claude-sonnet-4-6')  # or 'openai/gpt-5.5', 'google/gemini-3-pro'
agent = Agent(task='...', llm=llm)

For our recommended default, use the bu-* models.

Should I use the Browser Use system prompt with the open-source preview model?

Yes. If you use ChatBrowserUse(model='browser-use/bu-30b-a3b-preview') with a normal Agent(...), Browser Use still sends its default agent system prompt for you.

You do not need to add a separate custom "Browser Use system message" just because you switched to the open-source preview model. Only use extend_system_message or override_system_message when you intentionally want to customize the default behavior for your task.

For the recommended default, use the hosted bu-* models. If you want the open-source preview model, the setup stays the same apart from the model= value.

Can I use custom tools with the agent?

Yes! You can add custom tools to extend the agent's capabilities:

from browser_use import Tools

tools = Tools()

@tools.action(description='Description of what this tool does.')
def custom_tool(param: str) -> str:
    return f"Result: {param}"

agent = Agent(
    task="Your task",
    llm=llm,
    browser=browser,
    tools=tools,
)
Can I use this for free?

Yes! Browser-Use is open source and free to use. You only need to choose an LLM provider (like OpenAI, Google, ChatBrowserUse, or run local models with Ollama).

Terms of Service

This open-source library is licensed under the MIT License. For Browser Use services & data policy, see our Terms of Service and Privacy Policy.

How do I handle authentication?

Check out our authentication examples:

These examples show how to maintain sessions and handle authentication seamlessly.

How do I solve CAPTCHAs?

For sites with bot detection, Browser Infrastructure provides managed browser fingerprints and proxies. No browser service can guarantee access to every site or CAPTCHA flow.

How do I go into production?

Chrome can consume a lot of memory, and running many agents in parallel can be tricky to manage.

For production use cases, choose:

  • Browser Use Agents for hosted agent execution, persistent files and memory, and managed task results
  • Browser Infrastructure when your code needs managed browser sessions, proxies, browser fingerprints, and parallel browser execution

Citation

If you use Browser Use in your research or project, please cite:

@software{browser_use2024,
  author = {Müller, Magnus and Žunič, Gregor},
  title = {Browser Use: Enable AI to control your browser},
  year = {2024},
  publisher = {GitHub},
  url = {https://github.com/browser-use/browser-use}
}

Tell your computer what to do, and it gets it done.

Twitter Follow     Twitter Follow

Made with ❤️ in Zurich and San Francisco
S
Description
browser-use: Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work.; remote-browser: Controls an isolated Browser Use Cloud browser from a sandboxed machine with the current Browser Use CLI.; open-source: Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or…; cloud: Documentation reference for using Browser Use Cloud — the hosted A…
Readme MIT 120 MiB
Languages
Python 99.2%
Shell 0.3%
Dockerfile 0.3%
HTML 0.2%