← プロジェクト一覧に戻る

Browser Use

ピクセルではなくDOMで操作する、エージェント向けブラウザ制御

MIT
スター
109k
フォーク
12k
オープンIssue
357
最終コミット
2026年8月15日

概要

スクリーンショットからクリック座標を推測させるのではなく、ページ上の操作可能な要素を抽出して構造化リストとしてモデルに渡します。この方式により、フォーム入力やスクレイピングでの安定性が明確に高くなります。一方でcanvas主体のアプリケーションや、bot対策の強いサイトでは読み取れるDOMが存在せず、精度が落ちます。

Browser Useで何ができますか?

  • コーディングエージェントにブラウザを渡すbrowser-use skill installでスキルを登録すると、Claude CodeやCodex、Cursorからブラウザ操作をそのまま依頼できます。
  • 繰り返し実行する自動化をコードで書くPythonライブラリのAgent(task=..., llm=...)を自分のプロセスで動かせるため、定期スクレイピングや監視、QAの並列実行に向きます。
  • 独自ツールを追加するTools()@tools.actionデコレータでPython関数を登録すると、組み込みのブラウザ操作と並べてエージェントが呼び出せます。
  • ログイン済みプロファイルを再利用examples/browser/real_browser.pyのように既存のChromeプロファイルを指定でき、profile-useを使えば認証状態をリモートブラウザへ同期できます。
  • 1つのキーで複数プロバイダを切り替えChatBrowserUseanthropic/claude-sonnet-4-6openai/gpt-5.5といったプロバイダ接頭辞付きのモデルIDを受け取るため、BROWSER_USE_API_KEYだけで各社のモデルに到達できます。

ドキュメント

browser-use/browser-use のREADMEより転載(MIT)。 原文を読む ↗


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.”

Job Application Demo

Example code ↗

🍎 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

Browser Use Cloud Docs ↗

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:

Install or upgrade browser-use to the latest stable version with uv using Python 3.12, run `browser-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, 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

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

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) 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.

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.

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.

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.

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,
)

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).

This open-source library is licensed under the MIT License. For Browser Use services & data policy, see our Terms of Service and Privacy Policy.

Check out our authentication examples:

These examples show how to maintain sessions and handle authentication seamlessly.

For CAPTCHA handling, you need better browser fingerprinting and proxies. Use Browser Use Cloud which provides stealth browsers designed to avoid detection and CAPTCHA challenges.

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 which handles:

  • Scalable browser infrastructure
  • Memory management
  • Proxy rotation
  • Stealth browser fingerprinting
  • High-performance parallel execution