browser-use
<picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/2ccdb752-22fb-41c7-8948-857fc1ad7e24"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/774a46d5-27a0-490c-b7d0-e65fcbbfa358"> <img alt="Shows a black Browser Use Logo in light color mode and a white one in dark color mode." src="https://github.com/user-attachments/assets/2ccdb752-22fb-41c7-8948-857fc1ad7e24" width="full"> </picture> <div align="center"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/9955dda9-ede3-4971-8ee0-91cbc3850125"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/6797d09b-8ac3-4cb9-ba07-b289e080765a"> <img alt="The AI browser agent." src="https://github.com/user-attachments/assets/9955dda9-ede3-4971-8ee0-91cbc3850125" width="400"> </picture> </div> <div align="center"> <a href="https://cloud.browser-use.com?utm_source=github&utm_medium=readme-badge-downloads"><img src="https://media.browser-use.tools/badges/package" height="48" alt="Browser-Use Package Download Statistics"></a> </div> --- <div align="center"> <a href="#demos"><img src="https://media.browser-use.tools/badges/demos" alt="Demos"></a> <img width="16" height="1" alt=""> <a href="https://docs.browser-use.com"><img src="https://media.browser-use.tools/badges/docs" alt="Docs"></a> <img width="16" height="1" alt=""> <a href="https://browser-use.com/posts"><img src="https://media.browser-use.tools/badges/blog" alt="Blog"></a> <img width="16" height="1" alt=""> <a href="https://browsermerch.com"><img src="https://media.browser-use.tools/badges/merch" alt="Merch"></a> <img width="100" height="1" alt=""> <a href="https://github.com/browser-use/browser-use"><img src="https://media.browser-use.tools/badges/github" alt="Github Stars"></a> <img width="4" height="1" alt=""> <a href="https://x.com/intent/user?screen_name=browser_use"><img src="https://media.browser-use.tools/badges/twitter" alt="Twitter"></a> <img width="4" height="1" alt=""> <a href="https://link.browser-use.com/discord"><img src="https://media.browser-use.tools/badges/discord" alt="Discord"></a> <img width="4" height="1" alt=""> <a href="https://cloud.browser-use.com?utm_source=github&utm_medium=readme-badge-cloud"><img src="https://media.browser-use.tools/badges/cloud" height="48" alt="Browser-Use Cloud"></a> </div> </br> π€οΈ Want to skip the setup? Use our <b>[cloud](https://cloud.browser-use.com?utm_source=github&utm_medium=readme-skip-setup)</b> for faster, scalable, stealth-enabled browser automation! # π€ LLM Quickstart 1. Direct your favorite coding agent (Cursor, Claude Code, etc) to [Agents.md](https://docs.browser-use.com/llms-full.txt) 2. Prompt away! <br/> # π Human Quickstart Browser Use 0.13 introduces a new beta agent powered by a Rust core and a browser harness built for current frontier models. It gives the model a real browser/computer action space, persistent tools, and recovery loops inspired by coding agents. ```text Python API -> Rust core -> Browser harness -> Web task done ``` **1. Install Browser Use with the native core runtime (Python>=3.11):** ```bash uv add "browser-use[core]" # or: pip install "browser-use[core]" ``` The `[core]` extra installs the native Browser Use runtime for your platform. **2. [Optional] Get your API key from [Browser Use Cloud](https://cloud.browser-use.com/new-api-key?utm_source=github&utm_medium=readme-quickstart-api-key):** ``` # .env BROWSER_USE_API_KEY=your-key # GOOGLE_API_KEY=your-key # ANTHROPIC_API_KEY=your-key ``` **3. Run your first agent:** ```python from browser_use.beta import Agent, BrowserProfile, ChatBrowserUse # from browser_use.beta import ChatOpenAI # ChatOpenAI(model='gpt-5.5') # from browser_use.beta import ChatAnthropic # ChatAnthropic(model='claude-opus-4-8') import asyncio async def main(): agent = Agent( task="Find the number of stars of the browser-use repo", llm=ChatBrowserUse(model='bu-3-max'), # llm=ChatOpenAI(model='gpt-5.5'), # llm=ChatAnthropic(model='claude-opus-4-8'), # Sonnet also works well. browser_profile=BrowserProfile( headless=False, allowed_domains=["*.github.com"], ), ) history = await agent.run() print(history.final_result()) if __name__ == "__main__": asyncio.run(main()) ``` Existing Python agent users can keep using `from browser_use import Agent`. The new Rust-powered beta agent is `from browser_use.beta import Agent`. Check out the [library docs](https://docs.browser-use.com/open-source/introduction) and the [cloud docs](https://docs.cloud.browser-use.com?utm_source=github&utm_medium=readme-cloud-docs) for more! <br/> # Open Source vs Cloud <picture> <source media="(prefers-color-scheme: light)" srcset="static/accuracy_by_model_light.png"> <source media="(prefers-color-scheme: dark)" srcset="static/accuracy_by_model_dark.png"> <img alt="BU Bench V1 - LLM Success Rates" src="static/accuracy_by_model_light.png" width="100%"> </picture> We benchmark Browser Use across 100 real-world browser tasks. Full benchmark is open source: **[browser-use/benchmark](https://github.com/browser-use/benchmark)**. **Use the Open-Source Agent** - You need [custom tools](https://docs.browser-use.com/customize/tools/basics) or deep code-level integration - We recommend pairing with our [cloud browsers](https://docs.browser-use.com/open-source/customize/browser/remote) for leading stealth, proxy rotation, and scaling - Or self-host the open-source agent fully on your own machines **Use the [Fully-Hosted Cloud Agent](https://cloud.browser-use.com?utm_source=github&utm_medium=readme-hosted-agent) (recommended)** - Much more powerful agent for complex tasks (see plot above) - Easiest way to start and scale - Best stealth with proxy rotation and captcha solving - 1000+ integrations (Gmail, Slack, Notion, and more) - Persistent filesystem and memory <br/> # Demos ### π Form-Filling #### Task = "Fill in this job application with my resume and information."  [Example code β](https://github.com/browser-use/browser-use/blob/main/examples/use-cases/apply_to_job.py) ### π Grocery-Shopping #### Task = "Put this list of items into my instacart." https://github.com/user-attachments/assets/a6813fa7-4a7c-40a6-b4aa-382bf88b1850 [Example code β](https://github.com/browser-use/browser-use/blob/main/examples/use-cases/buy_groceries.py) ### π» Personal-Assistant. #### Task = "Help me find parts for a custom PC." https://github.com/user-attachments/assets/ac34f75c-057a-43ef-ad06-5b2c9d42bf06 [Example code β](https://github.com/browser-use/browser-use/blob/main/examples/use-cases/pcpartpicker.py) ### π‘See [more examples here β](https://docs.browser-use.com/examples) and give us a star! <br/> # π Template Quickstart **Want to get started even faster?** Generate a ready-to-run template: ```bash uvx browser-use init --template default ``` This creates a `browser_use_default.py` file with a working example. Available templates: - `default` - Minimal setup to get started quickly - `advanced` - All configuration options with detailed comments - `tools` - Examples of custom tools and extending the agent You can also specify a custom output path: ```bash uvx browser-use init --template default --output my_agent.py ``` <br/> # π» CLI Fast, persistent browser automation from the command line: ```bash browser-use open https://example.com # Navigate to URL browser-use state # See clickable elements browser-use click 5 # Click element by index browser-use type "Hello" # Type text browser-use screenshot page.png # Take screenshot browser-use close # Close browser ``` The CLI keeps the browser running between commands for fast iteration. See [CLI docs](browser_use/skill_cli/README.md) for all commands. ### Claude Code Skill For [Claude Code](https://claude.ai/code), install the skill to enable AI-assisted browser automation: ```bash mkdir -p ~/.claude/skills/browser-use curl -o ~/.claude/skills/browser-use/SKILL.md \ https://raw.githubusercontent.com/browser-use/browser-use/main/skills/browser-use/SKILL.md ``` <br/> ## Integrations, hosting, custom tools, MCP, and more on our [Docs β](https://docs.browser-use.com) <br/> # FAQ <details> <summary><b>What's the best model to use?</b></summary> We optimized **ChatBrowserUse()** specifically for browser automation tasks. On avg it completes tasks 3-5x faster than other models with SOTA accuracy. **bu-3 pricing (per 1M tokens):** - Input tokens: $2.00 - Cached input tokens: $0.20 - Output tokens: $11.00 **bu-3-max pricing (per 1M tokens):** - Input tokens: $2.50 - Cached input tokens: $0.25 - Output tokens: $50.00 For other LLM providers, see our [supported models documentation](https://docs.browser-use.com/supported-models). </details> <details> <summary><b>Should I use the Browser Use system prompt with the open-source preview model?</b></summary> 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. If you want the best default speed/accuracy, we still recommend the newer hosted `bu-*` models. If you want the open-source preview model, the setup stays the same apart from the `model=` value. </details> <details> <summary><b>Can I use custom tools with the agent?</b></summary> Yes! You can add custom tools to extend the agent's capabilities: ```python 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, ) ``` </details> <details> <summary><b>Can I use this for free?</b></summary> 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). </details> <details> <summary><b>Terms of Service</b></summary> This open-source library is licensed under the MIT License. For Browser Use services & data policy, see our [Terms of Service](https://browser-use.com/legal/terms-of-service) and [Privacy Policy](https://browser-use.com/privacy/). </details> <details> <summary><b>How do I handle authentication?</b></summary> Check out our authentication examples: - [Using real browser profiles](https://github.com/browser-use/browser-use/blob/main/examples/browser/real_browser.py) - Reuse your existing Chrome profile with saved logins - If you want to use temporary accounts with inbox, choose AgentMail - To sync your auth profile with the remote browser, run `curl -fsSL https://browser-use.com/profile.sh | BROWSER_USE_API_KEY=XXXX sh` (replace XXXX with your API key) These examples show how to maintain sessions and handle authentication seamlessly. </details> <details> <summary><b>How do I solve CAPTCHAs?</b></summary> For CAPTCHA handling, you need better browser fingerprinting and proxies. Use [Browser Use Cloud](https://cloud.browser-use.com?utm_source=github&utm_medium=readme-faq-captcha) which provides stealth browsers designed to avoid detection and CAPTCHA challenges. </details> <details> <summary><b>How do I go into production?</b></summary> Chrome can consume a lot of memory, and running many agents in parallel can be tricky to manage. For production use cases, use our [Browser Use Cloud API](https://cloud.browser-use.com?utm_source=github&utm_medium=readme-faq-production) which handles: - Scalable browser infrastructure - Memory management - Proxy rotation - Stealth browser fingerprinting - High-performance parallel execution </details> <br/> <div align="center"> **Tell your computer what to do, and it gets it done.** <img src="https://github.com/user-attachments/assets/06fa3078-8461-4560-b434-445510c1766f" width="400"/> [](https://x.com/intent/user?screen_name=mamagnus00)     [](https://x.com/intent/user?screen_name=gregpr07) </div> <div align="center"> Made with β€οΈ in Zurich and San Francisco </div>