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

🌐 Browser-use is the easiest way to connect your AI agents with the browser.

💡 See what others are building and share your projects in our Discord! Want Swag? Check out our Merch store.

🌤️ Skip the setup - try our hosted version for instant browser automation! Try the cloud ☁︎.

⚠️ Note

This is a modified version of browser-use to support Python 3.10.

PyPI version Python Versions Downloads GitHub stars Last Commit

A minimal fork of browser-use with compatibility fixes for Python 3.10+.

  • Maintainer for Python 3.10 version: Abhijeet Mohanta
  • bubus is mocked to enable compatibility with Python 3.10.
  • Cloud actions are not supported in this version.
  • from typing_extensions import Self (for Python 3.10 compatibility) is used in place of Self from typing.
  • async with asyncio.timeout replaced with async_timeout (custom impl of async timeout) to support Python 3.10.

Quick start

With pip (Python>=3.11):

pip install browser-use

Install the browser:

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
from browser_use.llm import ChatOpenAI

async def main():
    agent = Agent(
        task="Compare the price of gpt-4o and DeepSeek-V3",
        llm=ChatOpenAI(model="gpt-4o"),
    )
    await agent.run()

asyncio.run(main())

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

OPENAI_API_KEY=
ANTHROPIC_API_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_KEY=
GOOGLE_API_KEY=
DEEPSEEK_API_KEY=
GROK_API_KEY=
NOVITA_API_KEY=

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

Test with UI

You can test browser-use using its Web UI or Desktop App.

Test with an interactive CLI

You can also use our browser-use interactive CLI (similar to claude code):

pip install "browser-use[cli]"
browser-use

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.

Vision

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

Roadmap

Agent

  • Improve agent memory to handle +100 steps
  • Enhance planning capabilities (load website specific context)
  • Reduce token consumption (system prompt, DOM state)

DOM Extraction

  • Enable detection for all possible UI elements
  • Improve state representation for UI elements so that all LLMs can understand what's on the page

Workflows

  • Let user record a workflow - which we can rerun with browser-use as a fallback
  • Make rerunning of workflows work, even if pages change

User Experience

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

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


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_py310x-0.4.2.1.tar.gz (199.1 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_py310x-0.4.2.1-py3-none-any.whl (239.5 kB view details)

Uploaded Python 3

File details

Details for the file browser_use_py310x-0.4.2.1.tar.gz.

File metadata

  • Download URL: browser_use_py310x-0.4.2.1.tar.gz
  • Upload date:
  • Size: 199.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for browser_use_py310x-0.4.2.1.tar.gz
Algorithm Hash digest
SHA256 af4a9cedcc44255d2b788af1d758e27348f5356940d66803e1576c3e121e5845
MD5 170f1d31cff425c852a8084917020f3f
BLAKE2b-256 084d5e017790cb863f062f5f7dfc9e03c162d7ae7f390461ff586ac82064684c

See more details on using hashes here.

File details

Details for the file browser_use_py310x-0.4.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for browser_use_py310x-0.4.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c6b6747c2030aaae0eff0cbd9550bc3c47ce78ca5bec53b915d285b5e0baece
MD5 2f80a030879c9687987b490008e205db
BLAKE2b-256 ce5ee09f962620c915f969b8d46f79d5505055de7d2a1138fc7797b268842ff1

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