🌐 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 ☁︎.
With pip (Python>=3.11):
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="o4-mini", temperature=1.0), ) 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 📕.
You can test browser-use using its Web UI or Desktop App.
Test with an interactive CLIYou can also use our browser-use
interactive CLI (similar to claude
code):
pip install "browser-use[cli]" browser-use
Browser-use supports the Model Context Protocol (MCP), enabling integration with Claude Desktop and other MCP-compatible clients.
Use as MCP Server with Claude DesktopAdd 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 AgentBrowser-use agents can connect to multiple external MCP servers to extend their capabilities:
import asyncio from browser_use import Agent, Controller from browser_use.mcp.client import MCPClient from browser_use.llm import ChatOpenAI async def main(): # Initialize controller controller = Controller() # 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_controller(controller) await github_client.connect() await github_client.register_to_controller(controller) # Create agent with MCP-enabled controller agent = Agent( task="Find the latest report.pdf in my documents and create a GitHub issue about it", llm=ChatOpenAI(model="gpt-4o"), controller=controller # Controller 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.
Task: Add grocery items to cart, and checkout.
Prompt: Add my latest LinkedIn follower to my leads in 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.'
apply.to.jobs.8x.mp4Prompt: Write a letter in Google Docs to my Papa, thanking him for everything, and save the document as a PDF.
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.
hugging_face_high_quality.mp4For 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.
Tell your computer what to do, and it gets it done.
We love contributions! Feel free to open issues for bugs or feature requests. To contribute to the docs, check out the /docs
folder.
We offer to run your tasks in our CI—automatically, on every update!
tests/agent_tasks/
(see the README there
for details).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.
Want to show off your Browser-use swag? Check out our Merch store. Good contributors will receive swag for free 👀.
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} }
Made with ❤️ in Zurich and San Francisco
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4