Skip to main content

Make websites accessible for AI agents

Project description

Shows a black Browser Use Logo in light color mode and a white one in dark color mode.

Enable AI to control your browser 🤖

GitHub stars Discord Cloud Documentation Twitter Follow Twitter Follow Weave Badge

Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

🌤️ Want to skip the setup? Use our cloud for faster, scalable, stealth-enabled browser automation!

🎉 OSS Twitter Hackathon

We just hit 69,000 GitHub ⭐! To celebrate, we're launching #nicehack69 — a Twitter-first hackathon with a $6,900 prize pool. Dream big and show us the future of browser-use agents that go beyond demos!

Deadline: September 10, 2025

🚀 Join the hackathon →

🚀 Use the latest version!

We ship every day improvements for speed, accuracy, and UX.

pip install --upgrade browser-use

Quickstart new users

With pip (Python>=3.11):

pip install browser-use

If you don't already have Chrome or Chromium installed, you can also download the latest Chromium using playwright's install shortcut:

uvx playwright install chromium --with-deps --no-shell

Spin up your agent:

import asyncio
from dotenv import load_dotenv
load_dotenv()
from browser_use import Agent, ChatOpenAI

async def main():
    agent = Agent(
        task="Find the number of stars of the browser-use repo",
        llm=ChatOpenAI(model="gpt-4.1-mini"),
    )
    await agent.run()

asyncio.run(main())

Add your API keys for the provider you want to use to your .env file.

OPENAI_API_KEY=

For other settings, models, and more, check out the documentation 📕.

Demos



Task: Add grocery items to cart, and checkout.

AI Did My Groceries



Prompt: Add my latest LinkedIn follower to my leads in Salesforce.

LinkedIn to Salesforce



Prompt: Read my CV & find ML jobs, save them to a file, and then start applying for them in new tabs, if you need help, ask me.'

https://github.com/user-attachments/assets/171fb4d6-0355-46f2-863e-edb04a828d04



Prompt: Write a letter in Google Docs to my Papa, thanking him for everything, and save the document as a PDF.

Letter to Papa



Prompt: Look up models with a license of cc-by-sa-4.0 and sort by most likes on Hugging face, save top 5 to file.

https://github.com/user-attachments/assets/de73ee39-432c-4b97-b4e8-939fd7f323b3



More examples

For more examples see the examples folder or join the Discord and show off your project. You can also see our awesome-prompts repo for prompting inspiration.

MCP Integration

Browser-use supports the Model Context Protocol (MCP), enabling integration with Claude Desktop and other MCP-compatible clients.

Use as MCP Server with Claude Desktop

Add browser-use to your Claude Desktop configuration:

{
  "mcpServers": {
    "browser-use": {
      "command": "uvx",
      "args": ["browser-use[cli]", "--mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

This gives Claude Desktop access to browser automation tools for web scraping, form filling, and more.

Connect External MCP Servers to Browser-Use Agent

Browser-use agents can connect to multiple external MCP servers to extend their capabilities:

import asyncio
from browser_use import Agent, Tools, ChatOpenAI
from browser_use.mcp.client import MCPClient

async def main():
    # Initialize tools
    tools = Tools()

    # Connect to multiple MCP servers
    filesystem_client = MCPClient(
        server_name="filesystem",
        command="npx",
        args=["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/documents"]
    )

    github_client = MCPClient(
        server_name="github",
        command="npx",
        args=["-y", "@modelcontextprotocol/server-github"],
        env={"GITHUB_TOKEN": "your-github-token"}
    )

    # Connect and register tools from both servers
    await filesystem_client.connect()
    await filesystem_client.register_to_tools(tools)

    await github_client.connect()
    await github_client.register_to_tools(tools)

    # Create agent with MCP-enabled tools
    agent = Agent(
        task="Find the latest pdf report in my documents and create a GitHub issue about it",
        llm=ChatOpenAI(model="gpt-4.1-mini"),
        tools=tools  # Tools has tools from both MCP servers
    )

    # Run the agent
    await agent.run()

    # Cleanup
    await filesystem_client.disconnect()
    await github_client.disconnect()

asyncio.run(main())

See the MCP documentation for more details.

Vision

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

Roadmap

Agent

  • Make agent 3x faster
  • Reduce token consumption (system prompt, DOM state)

DOM Extraction

  • Enable interaction with all UI elements
  • Improve state representation for UI elements so that any LLM can understand what's on the page

Workflows

  • Let user record a workflow - which we can rerun with browser-use as a fallback

User Experience

  • Create various templates for tutorial execution, job application, QA testing, social media, etc. which users can just copy & paste.

Parallelization

  • Human work is sequential. The real power of a browser agent comes into reality if we can parallelize similar tasks. For example, if you want to find contact information for 100 companies, this can all be done in parallel and reported back to a main agent, which processes the results and kicks off parallel subtasks again.

Contributing

We love contributions! Feel free to open issues for bugs or feature requests. To contribute to the docs, check out the /docs folder.

🧪 How to make your agents robust?

We offer to run your tasks in our CI—automatically, on every update!

  • Add your task: Add a YAML file in tests/agent_tasks/ (see the README there for details).
  • Automatic validation: Every time we push updates, your task will be run by the agent and evaluated using your criteria.

Local Setup

To learn more about the library, check out the local setup 📕.

main is the primary development branch with frequent changes. For production use, install a stable versioned release instead.


Swag

Want to show off your Browser-use swag? Check out our Merch store. Good contributors will receive swag for free 👀.

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}
}

Twitter Follow Twitter Follow

Made with ❤️ in Zurich and San Francisco

Project details


Release history Release notifications | RSS feed

This version

0.7.7

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

browser_use-0.7.7.tar.gz (306.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

browser_use-0.7.7-py3-none-any.whl (377.2 kB view details)

Uploaded Python 3

File details

Details for the file browser_use-0.7.7.tar.gz.

File metadata

  • Download URL: browser_use-0.7.7.tar.gz
  • Upload date:
  • Size: 306.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for browser_use-0.7.7.tar.gz
Algorithm Hash digest
SHA256 b34e0e9787f912718bfe5b78d638eca563a6fbb6fcf6e1afd00db6b4e41dbbed
MD5 50c17f981aef0a4f2357f09b78af6909
BLAKE2b-256 4664eb3bc9252e629de1e54fd61c1da8ef1c451a85e0a311b54ba3191975a133

See more details on using hashes here.

File details

Details for the file browser_use-0.7.7-py3-none-any.whl.

File metadata

File hashes

Hashes for browser_use-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ac073b3c025d6c6cd3de028143ee62aad27dc5301900293fc587f46d92b5a7ad
MD5 4eecdaa3b6f2ebe31423e38c440819ed
BLAKE2b-256 6ad08a229c053c7a2687d083322ab893241a92f7f9e38673ea380968ee40a861

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page