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">
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."
🍎 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
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:
``text Install or upgrade browser-use to the latest stable version with uv using Python 3.12, runbrowser-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: the easiest way to automate the web
Want to automate the web at scale, from your own code, and with any 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](https://cloud.browser-use.com/new-api-key?utm_source=github&utm_medium=readme-quickstart-api-key), 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 vs Cloud
srcset="static/accuracy_by_model_dark.png"> 
We benchmark Browser Use across 100 real-world browser tasks. Full benchmark is open source: browser-use/benchmark.
Browser Use is also #1 on the Odysseys leaderboard with an 87.4% average, ahead of computer-use agents
from OpenAI, Anthropic, Google, and Microsoft. Odysseys measures the agent's performance on 200 long-horizon web tasks.
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 - We recommend pairing it with our cloud browsers for leading stealth,
proxy rotation, and scaling
Use the Fully-Hosted Cloud 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 - Rerunnable scripts fetch live data, even when sites change
(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"}'
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](#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. On avg it completes tasks 3-5x faster than other models with SOTA accuracy. For pricing and other LLM providers, see our [supported models documentation](https://docs.browser-use.com/supported-models).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 the best speed and cost we still recommend the default `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. 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.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](https://browser-use.com/legal/terms-of-service) and [Privacy Policy](https://browser-use.com/privacy/).How do I handle authentication?
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 a remote browser, install `profile-use` for your platform from the [official releases](https://github.com/browser-use/profile-use-releases/releases/latest), then follow the [profile sync guide](https://github.com/browser-use/browser-harness/blob/main/interaction-skills/profile-sync.md). These examples show how to maintain sessions and handle authentication seamlessly.How do I solve CAPTCHAs?
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.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, 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 executionCitation
If you use Browser Use in your research or project, please cite:
```bibtex @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} } ```