Heads up This site is currently under heavy development.
← all tools
◆ AI Agent Frameworks

browser-use

0.13.8 open-source

Make websites accessible for AI agents. Automate tasks online with ease.

Summary

browser-use is an open-source ai-agent-frameworks that automates web navigation for task execution, and it has no licensing cost. It is run as a library that developers can import into existing codebases, making it suitable for application developers building custom agents. Its documentation positions it alongside other browser automation tools, fitting into the general category of web-navigation frameworks. The project maintains an active presence across its GitHub repository and other communication channels.

Make websites accessible for AI agents. Automate tasks online with ease.

What browser-use answers

What kind of web actions can it automate?

Automates web navigation for task execution

What is the required runtime environment for using this?

Runs as a library that developers can import into existing codebases

What existing components or setups can it connect with?

Suitable for application developers building custom agents

What is the scope of its operation?

Functions as an AI-agent-frameworks

How does it handle its underlying structure?

It is an open-source framework

Are there any costs associated with using it?

It has no licensing cost

Release history

  1. docs update Aug 29, 2026 · issue 010

    browser-use Cloud adds a managed Chromium CDP API letting Playwright and Puppeteer connect to remote hardened browsers via POST /api/v4/browsers

    └──▷ USE IT
    Provision a US-exit managed browser and connect to it with Playwright Python to automate a page — without managing any browser infrastructure.
    python
    import os
    from playwright.sync_api import sync_playwright
    
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(os.environ["BROWSER_USE_CDP_URL"])
        page = browser.contexts[0].pages[0]
        page.goto("https://example.com")
        print(page.title())
    Create a browser session with a US residential proxy, capture the CDP URL and session ID for use in subsequent automation and teardown calls.
    $ session=$(curl -sS https://api.browser-use.com/api/v4/browsers \
      -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"proxyCountryCode":"us"}')
    export BROWSER_SESSION_ID=$(echo "$session" | jq -r .id)
    export BROWSER_USE_CDP_URL=$(echo "$session" | jq -r .cdpUrl)
    Stop the managed cloud browser after automation completes — browser.close() alone is insufficient; the PATCH stop action is required to release cloud resources.
    $ curl -X PATCH \
      "https://api.browser-use.com/api/v4/browsers/$BROWSER_SESSION_ID" \
      -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"action":"stop"}'
    • Adds POST https://api.browser-use.com/api/v4/browsers endpoint to provision a managed, hardened Chromium browser session; returns a cdpUrl for direct CDP connections and a session id for lifecycle management.
    • Adds PATCH https://api.browser-use.com/api/v4/browsers/{id} endpoint with {"action":"stop"} body to terminate managed browser sessions — required because calling browser.close() or disconnecting CDP does not stop the cloud browser.
    • Exposes BROWSER_USE_CDP_URL (WebSocket CDP endpoint) and BROWSER_SESSION_ID from the session creation response, enabling Playwright and Puppeteer to connect over CDP using chromium.connectOverCDP() and puppeteer.connect({ browserWSEndpoint }) respectively.
    • Supports proxyCountryCode field in the session creation payload (e.g. {"proxyCountryCode":"us"}) to select the residential proxy exit country.
    • Every managed browser runs in a hardened Chromium fork with stealth, anti-fingerprinting, and residential proxies enabled by default.
    +1 moreshow less
    • Notes that Selenium's debugger_address only supports local host:port connections and cannot be used for remote CDP over WebSocket; Playwright or Puppeteer are required for remote sessions.
  2. docs update Aug 29, 2026 · issue 010

    browser-use CLI adds direct browser control for coding agents via local Chrome, cloud browsers, or any CDP endpoint

    └──▷ TRY IT
    Run a quick browser automation task without installing the tool permanently — useful in CI or ephemeral environments.
    $ uvx browser-use <<'PY'
    new_tab("https://example.com")
    print(page_info())
    PY
    Point the CLI at an existing CDP endpoint (e.g. a Playwright-launched browser or managed Chrome instance) instead of attaching to the default local browser.
    $ BU_CDP_WS=ws://localhost:9222/json/version browser-use <<'PY'
    new_tab("https://internal.example.com")
    print(page_info())
    PY
    Start a named cloud browser session for a headless agent, run tasks, then stop the session to avoid ongoing billing.
    $ browser-use auth login
    
    browser-use <<'PY'
    start_remote_daemon("work")
    PY
    
    BU_NAME=work browser-use <<'PY'
    new_tab("https://example.com")
    print(page_info())
    PY
    
    BU_NAME=work browser-use <<'PY'
    stop_remote_daemon("work")
    PY
    • New browser-use CLI tool installable via uv tool install browser-use gives coding agents a direct browser-control surface backed by Browser Harness.
    • Supports three browser modes: local Chrome/Chromium via CDP (preserving tabs, cookies, extensions, and logins), Browser Use cloud browsers, or any CDP endpoint set via BU_CDP_URL or BU_CDP_WS environment variables.
    • New browser-use skill install subcommand registers the CLI as a callable skill in Claude Code, Codex, and other coding agents.
    • New browser-use auth login and browser-use auth status subcommands handle authentication for Browser Use Cloud.
    • New browser-use --doctor flag diagnoses connection failures to local or remote browsers.
    +3 moreshow less
    • New browser-use skill show and browser-use telemetry status subcommands expose skill configuration and telemetry state.
    • Cloud browser sessions are managed by name using start_remote_daemon('<name>') and stop_remote_daemon('<name>') Python calls, with BU_NAME environment variable selecting the active session — enabling parallel agent workloads.
    • Supports one-off runs without a permanent install via uvx browser-use, accepting Python via stdin heredoc (bash/zsh/WSL) or PowerShell here-string pipe.
  3. docs update Aug 29, 2026 · issue 010

    browser-use adds native cloud browser provisioning via use_cloud, cloud_profile_id, cloud_proxy_country_code, and cloud_timeout on Browser()

    └──▷ USE IT
    Provision a geo-specific cloud browser with captcha bypass for a scraping task — no local Chrome needed.
    python
    from browser_use import Agent, Browser, ChatBrowserUse
    
    browser = Browser(
        cloud_proxy_country_code='jp',
        cloud_timeout=60,
    )
    agent = Agent(
        task="Find the top 5 trending products on a Japanese e-commerce site",
        llm=ChatBrowserUse(),
        browser=browser,
    )
    Connect to a self-managed or third-party remote browser via CDP URL with an authenticated proxy.
    python
    from browser_use import Agent, Browser, ChatBrowserUse
    from browser_use.browser import ProxySettings
    
    browser = Browser(
        cdp_url="http://remote-server:9222",
        proxy=ProxySettings(
            server="http://proxy-server:8080",
            username="proxy-user",
            password="proxy-pass"
        ),
    )
    agent = Agent(
        task="Extract data from an internal network page",
        llm=ChatBrowserUse(),
        browser=browser,
    )
    • Adds use_cloud=True to Browser() to automatically provision a cloud browser without any local browser setup.
    • Adds cloud_profile_id to Browser() to target a specific UUID browser profile in the cloud service.
    • Adds cloud_proxy_country_code to Browser() to route cloud sessions through a geo-specific proxy; supported values: us, uk, fr, it, jp, au, de, fi, ca, in.
    • Adds cloud_timeout to Browser() to set session lifetime in minutes (free users: max 15 min, paid users: max 240 min).
    • Adds cdp_url to Browser() to connect to any third-party remote browser via a Chrome DevTools Protocol URL (e.g. http://remote-server:9222).
    +2 moreshow less
    • Adds ProxySettings (importable from browser_use.browser) to configure a proxy server, username, and password alongside a cdp_url for authenticated remote browser connections.
    • Requires BROWSER_USE_API_KEY environment variable and an API key from cloud.browser-use.com when using the built-in cloud browser service.
  4. docs update Aug 29, 2026 · issue 010

    browser-use Cloud API gains direct browser control endpoints for CDP-based remote automation

    └──▷ USE IT
    Spin up a remote Chrome browser via the API and attach a local browser-use agent to it over CDP.
    python
    import requests
    from browser_use import Browser
    
    resp = requests.post('https://api.browser-use.com/browsers', headers={'Authorization': 'Bearer <token>'})
    data = resp.json()
    browser = Browser(cdp_url=data['cdpUrl'])
    # ... run your agent ...
    requests.patch(f"https://api.browser-use.com/browsers/{data['id']}", json={'action': 'stop'}, headers={'Authorization': 'Bearer <token>'})
    • Adds POST /browsers endpoint that creates a remote Chrome browser and returns its id and cdpUrl for direct CDP control.
    • Adds PATCH /browsers/{id} with {"action":"stop"} to programmatically stop a running remote browser.
    • The returned cdpUrl connects to a remote browser via Browser(cdp_url=...) in the browser-use library, the BU_CDP_URL environment variable in the Browser Use CLI, or directly from Playwright, Puppeteer, or Selenium.
  5. docs update Aug 29, 2026 · issue 010

    browser-use cloud adds persistent login profiles, rerunnable scripts, and automatic CAPTCHA handling

    └──▷ TRY IT
    Create a named profile, then launch a browser attached to it so a single login session is reused across future runs.
    $ profile=$(curl -sS https://api.browser-use.com/api/v4/profiles \
      -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"name":"My user"}')
    export BROWSER_USE_PROFILE_ID=$(echo "$profile" | jq -r .id)
    curl -sS https://api.browser-use.com/api/v4/browsers \
      -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
      -H "Content-Type: application/json" \
      -d "{\"profileId\":\"$BROWSER_USE_PROFILE_ID\",\"proxyCountryCode\":\"us\"}"
    • Adds persistent browser profiles via POST /api/v4/profiles, with profileId passed at the top level when creating browsers (POST /api/v4/browsers) or as browserSettings.profileId on agent runs — enabling login-once, reuse-everywhere workflows.
    • Introduces rerunnable scripts: save a Browser Use task once and execute it repeatedly for live data extraction with self-healing runs.
    • Cloud browsers now solve supported CAPTCHA challenges automatically, requiring no extra configuration.
  6. 0.13.8 Aug 16, 2026 · issue -003

    browser-use 0.13.8 defaults ChatBrowserUse to bu-2-0-mini-preview and adds first-party OpenClaw skill support

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.8 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.8
    • Defaults ChatBrowserUse to the bu-2-0-mini-preview model.
    • Adds first-party OpenClaw skill support to the agent.
  7. 0.13.8 Aug 16, 2026 · issue 002

    browser-use 0.13.8 defaults ChatBrowserUse to bu-2-0-mini-preview and adds first-party OpenClaw skill support

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.8 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.8
    └──▷ USE IT
    Use the new default model implicitly — no model argument needed for agents that want the optimized bu-2-0-mini-preview.
    python
    from browser_use import Agent, ChatBrowserUse
    import asyncio
    
    async def main():
        agent = Agent(
            task='Summarize the latest browser-use release notes',
            llm=ChatBrowserUse(),  # now defaults to bu-2-0-mini-preview
        )
        await agent.run()
    
    asyncio.run(main())
    • Changes the default model for ChatBrowserUse to bu-2-0-mini-preview, so agents using the class without an explicit model= argument now use the faster optimized model automatically.
    • Adds first-party OpenClaw skill support, enabling OpenClaw agents to register and use browser-use as a native skill.
    └──▷ BREAKING ON UPGRADE
    • !The default model for ChatBrowserUse is changed to bu-2-0-mini-preview; any code that relied on the previous default model without specifying model= will now use a different model.
  8. 0.13.5 Jul 17, 2026 · issue -033

    browser-use 0.13.5 adds MCP registry support and the bu-qa-1 model alias for ChatBrowserUse.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.5
    • Accepts bu-qa-1 model alias in ChatBrowserUse, enabling use of that model identifier without manual mapping.
    • Adds MCP registry support, allowing browser-use to integrate with Model Context Protocol registries.
  9. 0.13.3 Jul 1, 2026 · issue -049

    browser-use 0.13.3 ships CLI 3.0 with browser-use skill for direct agent skill installation

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.3 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.3
    └──▷ TRY IT
    Install the Browser Use skill into your coding agent (e.g. Claude Code, Cursor) directly from the CLI.
    $ browser-use skill
    • Adds browser-use skill subcommand so coding agents can install the Browser Use skill directly from the CLI.
    • Launches Browser Use CLI 3.0 powered by Browser Harness, pinned to 0.1.4, with the Browser Use skill bundled in the package.
    • Extends skill install support across Claude Code, Codex, Cursor, Gemini, and OpenCode agent skill directories.
  10. 0.13.2 Jun 12, 2026 · issue -068

    browser-use 0.13.2 adds provider-prefixed model strings to ChatBrowserUse

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.2
    • Adds support for provider-prefixed model strings (e.g. openai/gpt-5.5) in ChatBrowserUse, letting callers specify the provider inline without separate configuration.
  11. 0.13.1 Jun 10, 2026 · issue -070

    Adds Claude 4.5 ('claude fable 5') support and Anthropic extended thinking compatibility.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.1
    • Supports Claude 4.5 (claude fable 5) as a model option for browser agents.
    • Switches Anthropic tool choice to auto when extended thinking is enabled, enabling compatibility between thinking mode and tool use.
  12. 0.13.0 Jun 8, 2026 · issue -072

    browser-use 0.13.0 ships a Rust-backed beta agent via from browser_use.beta import Agent

    └──▷ GET THIS VERSION
    $ git clone --branch 0.13.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.13.0
    • Adds from browser_use.beta import Agent, a new Rust-backed beta agent that gives modern models a more direct browser control loop, installable via uv add 'browser-use[core]'.
    • Adds x402 skill support to the agent.
  13. 0.12.7 May 19, 2026 · issue -092

    browser-use 0.12.7 adds record start/stop CLI commands for session video capture and a close alias for BrowserSession.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.12.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.12.7
    └──▷ TRY IT
    Capture a video recording of a browser-use CLI session for audit or replay.
    $ record start
    # ... perform automated browser actions ...
    record stop
    • Adds record start and record stop CLI commands for session video capture.
    • Adds close as an alias for BrowserSession.stop().
    • Adds per-session auth token to the daemon socket, scoping socket access to individual sessions.
    • Prefers Playwright-installed Chromium over system Chrome by default, with improved detection of recent Chromium versions for Mac/ARM users.
  14. 0.12.6 Apr 2, 2026 · issue -139

    browser-use 0.12.6 adds CDP navigation timeout, model pricing URL override, and an install-lite CLI script.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.12.6 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.12.6
    • Adds --connect/--cdp-url CDP navigation timeout support to prevent hung sessions when connecting to external browsers.
    • Adds ability to override the model pricing URL via the tokens module (feat(tokens): allow overriding model pricing URL).
    • Adds install-lite.sh script for a lighter-weight CLI installation path.
    • Adds option to disable SignalHandler so host applications retain control of signal handling.
  15. 0.12.3 Mar 23, 2026 · issue -149

    browser-use 0.12.3 ships CLI 2.0 with direct CDP, ~50ms latency, LiteLLM support, and multi-session browser control for AI coding agents.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.12.3 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.12.3
    └──▷ TRY IT
    Attach to an already-running Chrome with saved logins to automate a site without re-authenticating.
    $ browser-use --profile "Default" open https://github.com
    browser-use state
    browser-use click 2
    browser-use screenshot page.png
    Run two isolated browser sessions in parallel — one for work, one personal — without context bleed.
    $ browser-use -s work open https://work.example.com
    browser-use -s personal open https://gmail.com
    browser-use sessions
    browser-use close --all
    Expose a local app to a cloud browser session for end-to-end testing behind a public URL.
    $ browser-use tunnel 3000
    # outputs: https://abc.trycloudflare.com
    browser-use open https://abc.trycloudflare.com
    browser-use state
    browser-use screenshot --full result.png
    browser-use tunnel stop --all
    • Adds browser-use --connect open <url> to auto-discover and attach to a running Chrome instance via CDP, inheriting existing logins, cookies, and extensions.
    • Adds browser-use --profile <name> open <url> to launch directly into an existing named Chrome profile (e.g. 'Default', 'Profile 1').
    • Adds browser-use --cdp-url <ws-url> open <url> to connect to any browser via an explicit CDP WebSocket URL.
    • Adds browser-use --headed open <url> flag to run a visible browser window for debugging.
    • Adds browser-use -s <session> open <url> for named, parallel browser sessions; browser-use sessions lists all active sessions; browser-use close --all terminates them.
    +12 moreshow less
    • Adds browser-use cloud connect subcommand for a stealth cloud browser with proxies, requiring BROWSER_USE_API_KEY.
    • Adds browser-use state command that returns all interactable page elements as indexed tokens (e.g. [0] button 'Submit') — optimized for low-token agent consumption.
    • Adds browser-use click <index>, browser-use input <index> <text>, browser-use select <index> <value>, browser-use hover <index>, and browser-use keys <key> for index-based interaction without CSS selectors.
    • Adds browser-use upload <index> <path> for file upload via element index.
    • Adds browser-use get title, browser-use get html --selector <css>, browser-use get text <index>, and browser-use eval <js> for structured data extraction.
    • Adds browser-use screenshot --full <path> for full-page screenshots.
    • Adds browser-use python <expression> for a persistent Python session with variable state across calls; browser-use python --vars lists currently defined variables.
    • Adds browser-use tunnel <port> to expose a local dev server via Cloudflare tunnel; browser-use tunnel stop --all tears them down.
    • Adds browser-use profile list to enumerate available Chrome profiles.
    • New CLI daemon architecture uses direct CDP instead of Playwright, delivering ~50ms per-command latency with no per-command browser startup cost.
    • Adds LiteLLM as a supported model provider integration.
    • Installs via a skill file at ~/.claude/skills/browser-use/SKILL.md for use with Claude Code, Codex, and other CLI coding agents.
  16. 0.11.13 Feb 25, 2026 · issue -173

    browser-use 0.11.13 adds automatic CAPTCHA solving, WebSocket reconnection, and a save-as-PDF agent action

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.13 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.13
    • Adds save_as_pdf agent action for CDP-based page-to-PDF export, enabling agents to save the current page as a PDF.
    • Adds automatic CAPTCHA solver handling via a CAPTCHA watchdog, allowing agents to proceed through CAPTCHA challenges without manual intervention.
    • Adds WebSocket reconnection support for remote browser CDP connections, improving resilience when connections drop.
    • Adds timeouts to browser connects and waits to prevent indefinite hangs during browser setup.
  17. 0.11.12 Feb 23, 2026 · issue -175

    browser-use 0.11.12 adds Browser.from_system_chrome() for connecting to an already-running Chrome instance.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.12 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.12
    • Adds Browser.from_system_chrome() class method to connect browser-use to an already-running system Chrome installation, enabling real-browser and authenticated-session workflows.
  18. 0.11.11 Feb 20, 2026 · issue -178

    browser-use 0.11.11 adds custom HTTP headers, a max-clickable-elements parameter, file-attachment structured output, and a new direct CLI mode.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.11 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.11
    • Adds max_clickable parameter to the Agent to cap the number of clickable elements considered per step.
    • Adds custom HTTP headers support to the browser agent, letting callers inject arbitrary request headers.
    • Adds file attachments to structured output, enabling agents to return file references alongside typed results.
    • Introduces a new direct CLI mode for driving browser-use tasks without a Python script wrapper.
  19. 0.11.10a2 Feb 17, 2026 · issue -181

    Adds max_clickable parameter to the Agent for limiting clickable elements.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.10a2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.10a2
    • Adds max_clickable parameter to the Agent to cap the number of clickable elements considered during a session.
  20. 0.11.9 Feb 6, 2026 · issue -192

    browser-use 0.11.9 adds agent planning, loop detection, message compaction, HAR capture, and a new read_long_content action

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.9 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.9
    • Adds read_long_content action for agents to handle long webpages and files that exceed normal context limits.
    • Adds HarRecordingWatchdog for HTTPS HAR capture, enabling recording of network traffic in HAR format over HTTPS.
    • Introduces basic planning to agents, allowing the agent to reason about a plan before executing steps.
    • Adds action loop detection with a nudge mechanism to break agents out of repetitive action cycles.
    • Adds message compaction for agents to manage long conversation histories and stay within context limits.
    +2 moreshow less
    • Adds hidden content hints for iframes in DOM context, improving agent visibility into iframe content.
    • Updates default max_step to 500, increasing the ceiling for long-running agent tasks.
  21. 0.11.8 Feb 3, 2026 · issue -195

    browser-use 0.11.8 adds schema enforcement to the extract tool for structured data extraction.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.8 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.8
    • Adds schema enforcement to the extract tool, enabling structured data extraction with a defined extraction schema.
    • Adds new capabilities to the CLI.
  22. 0.11.7 Feb 1, 2026 · issue -197

    browser-use 0.11.7 adds a grep tool to the agent for in-browser text search.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.7
    • Adds a grep tool to the agent, enabling pattern-based text search as a built-in agent capability.
  23. 0.11.6 Feb 1, 2026 · issue -197

    browser-use 0.11.6 adds --cdp-url CLI flag, file-download wait action, screenshot filename param, and autocomplete field handling

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.6 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.6
    └──▷ TRY IT
    Connect the browser-use CLI to an already-running Chrome instance (e.g. one with an active authenticated session) instead of launching a fresh browser.
    $ browser-use --cdp-url ws://localhost:9222 'Go to https://internal.corp/dashboard and extract the active incident list'
    • Adds --cdp-url flag to the CLI to connect the agent to an already-running browser via Chrome DevTools Protocol (CDP).
    • Adds optional file_name parameter to the screenshot (ss) action, letting callers control the saved filename.
    • Adds a 'wait for file download' action so agents can block until a triggered download completes.
    • Increases MAX_MEMORY_LENGTH from 1,000 to 10,000 characters, expanding the context agents can retain across steps.
    • Increases default step_timeout from 120 s to 180 s, reducing spurious timeouts on slow pages.
    +2 moreshow less
    • Adds autocomplete field handling so agents can interact with typeahead/suggestion inputs.
    • Adds step-budget awareness to the agent prompt, surfacing remaining step count to the model for better pacing.
    └──▷ BREAKING ON UPGRADE
    • !The default step_timeout changes from 120 s to 180 s; any orchestration code that relied on the previous 120 s ceiling will now wait longer before timing out.
  24. 0.11.5 Jan 28, 2026 · issue -201

    browser-use 0.11.5 launches the bu-2-0 model (83.3% accuracy) with ChatBrowserUse API key support and Gemini 3 thinking controls.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.5
    • Adds ChatBrowserUse(model='bu-2-0') class supporting the new bu-2-0 premium model, authenticated via the BROWSER_USE_API_KEY environment variable.
    • Adds ChatBrowserUse support in the CLI, reading credentials from the BROWSER_USE_API_KEY environment variable.
    • Adds configurable thinking level for Gemini 3 Pro models, with default thinking set to auto.
    • Increases character limit for content extraction, unlocking longer-page scraping use cases.
    • Expands context window to 4096-token prompts for Anthropic Opus/Haiku 4.5 models.
    +2 moreshow less
    • Detects JavaScript event listeners to identify clickable elements that lack standard HTML click attributes.
    • New bu-2-0 model delivers 83.3% task accuracy — up 12% from bu-1-0's 74.7% — at approximately the same 60 s/task speed.
  25. 0.11.4 Jan 22, 2026 · issue -207

    browser-use 0.11.4 ships a new CLI with headless/headed/real Chrome/remote browser modes and named multi-session support.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.4 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.4
    └──▷ TRY IT
    Automate a login flow against a local dev server using your real Chrome profile so saved credentials are already present.
    $ browser-use --browser real open http://localhost:3000
    browser-use state
    browser-use click 0
    browser-use type "mypassword"
    browser-use screenshot login-result.png
    browser-use close
    Run parallel browser sessions to compare a work app and personal email side-by-side without sessions interfering.
    $ browser-use -s work open https://work.example.com
    browser-use -s personal open https://gmail.com
    browser-use sessions
    Use the cloud stealth browser with proxies for a site that blocks headless traffic, using your API key.
    $ BROWSER_USE_API_KEY=<your-key> browser-use --browser remote open https://example.com
    browser-use screenshot result.png
    browser-use close
    • Adds browser-use CLI with subcommands open, state, click, type, screenshot, and close for scripting and agentic browser control from the shell.
    • Adds --headed flag to browser-use open for a visible browser window instead of the default headless mode.
    • Adds --browser real global flag to browser-use open to drive the user's existing Chrome profile (with saved logins).
    • Adds --browser remote global flag to route sessions through a cloud stealth browser with built-in proxies and anti-detection, requiring the BROWSER_USE_API_KEY environment variable from cloud.browser-use.com; returns a live preview URL.
    • Adds -s <name> flag for named, parallel browser sessions (e.g. browser-use -s work open <url> and browser-use -s personal open <url> running concurrently).
    +3 moreshow less
    • Adds browser-use sessions subcommand to list all active sessions.
    • Adds browser-use close --all to tear down every active session at once.
    • Adds a Claude Code/Codex skill installable at ~/.claude/skills/browser-use/SKILL.md that teaches agents to use the new CLI for local and remote browsing.
  26. 0.11.3 Jan 16, 2026 · issue -213

    browser-use 0.11.3 adds multi-tab video recording, external skill service support, OpenAI responses model, and new env-var controls.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.3 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.3
    └──▷ TRY IT
    Disable browser extensions in a CI environment where extension loading causes interference.
    $ export BROWSER_USE_DISABLE_EXTENSIONS=true
    • Adds BROWSER_USE_DISABLE_EXTENSIONS environment variable to disable browser extensions at runtime.
    • Makes event bus timeout configurable via environment variable.
    • Adds support for external skill service integration and fetches all available skills for the agent.
    • Adds support for the OpenAI responses model.
    • Adds Gemini 3 Flash Preview model support.
    +6 moreshow less
    • Adds multi-tab video recording support.
    • Adds exponential backoff retry and minimum element load wait for improved reliability.
    • Adds unique attribute matching and better error logging for history rerun.
    • Adds ax-name fallback for history rerun element matching.
    • Adds menu retry for agent rerun on failure.
    • Removes redundant retry steps from history replay.
  27. 0.11.2 Dec 16, 2025 · issue -244

    browser-use 0.11.2 adds support for the new BU OSS model and introduces a max-wait cap between action executions.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.2
    • Adds support for the open-source browser-use/bu-30b-a3b-preview model (hosted on Hugging Face) as a first-party option for driving browser automation.
    • Introduces a maximum wait interval between action executions, capping idle time between browser steps.
  28. 0.11.1 Dec 12, 2025 · issue -248

    browser-use 0.11.1 adds sensitive-data filtering in agent history and optional coordinate exposure

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.1
    • Filters sensitive data from agent action history, reducing the risk of credentials or PII appearing in logs or replays.
    • Makes element coordinates optionally available during browser interactions, giving agents access to precise positional context when needed.
  29. 0.11.0 Dec 10, 2025 · issue -250

    browser-use 0.11.0 adds cloud skills integration, Mistral support, and fallback LLM capability

    └──▷ GET THIS VERSION
    $ git clone --branch 0.11.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.11.0
    └──▷ USE IT
    Run an agent with specific cloud skills to let it leverage pre-built capabilities without manual tool wiring.
    python
    from browser_use import Agent, ChatBrowserUse
    
    agent = Agent(
        task='Research the top 5 competitors and summarize their pricing',
        skills=['skill-uuid-1', 'skill-uuid-2'],
        llm=ChatBrowserUse()
    )
    
    await agent.run()
    Grant the agent access to all available cloud skills when you want maximum capability without specifying individual skill UUIDs.
    python
    from browser_use import Agent, ChatBrowserUse
    
    agent = Agent(
        task='Book the cheapest flight from NYC to London next month',
        skills=['*'],
        llm=ChatBrowserUse()
    )
    
    await agent.run()
    • Adds skills parameter to Agent — accepts a list of skill UUIDs (e.g. ['skill-uuid-1', 'skill-uuid-2']) or ['*'] for all skills, enabling cloud-hosted skill execution.
    • Adds ChatBrowserUse LLM class, importable from browser_use, as the provider for cloud-backed agent runs.
    • Adds Mistral as a supported chat provider via ChatMistral (with schema sanitization and model presets).
    • Adds fallback LLM support, allowing a secondary model to be specified when the primary LLM fails.
    • Adds gemini-3-pro-preview to the list of verified models.
    +2 moreshow less
    • Introduces ai_step to replace extract_content on agent rerun, improving mid-run content handling.
    • Faster scroll action, improving page navigation performance.
  30. 0.10.0 Nov 29, 2025 · issue -261

    browser-use 0.10.0 adds Vercel AI Gateway support, captcha/impossible flags in AgentEvent, history rerun improvements, and an env var to disable version checks.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.10.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.10.0
    • Adds captcha and impossible flags to AgentEvent so callers can detect when the agent hits a CAPTCHA or an unsolvable state.
    • Adds ChatVercel model class with provider options for Vercel AI Gateway integration, enabling routing to hosted models through Vercel.
    • Adds CodeAgentHistoryList class for improved agent history management in the Code Agent.
    • Adds step_interval calculation to agent history rerun, variable detection from agent history, variable substitution during rerun, and an AI summary for rerun tasks — enabling more robust history replay workflows.
    • Adds an environment variable to disable the version check at startup.
    +5 moreshow less
    • Adds support for passing a Base URL to the MCP Server.
    • Records click coordinates in the agent system state, replacing broken mouse-click handling with ClickCoordinateEvent.
    • Newlines are now correctly executed via send_keys, improving keyboard input fidelity.
    • New headless tabs respect the configured window size.
    • Adds support for deepcogito/cogito-v2.1-671b model.
    └──▷ BREAKING ON UPGRADE
    • !Pages are removed from browser state (Remove pages from browser state), which may break code that reads the pages field from browser state objects.
  31. 0.9.7 Nov 18, 2025 · issue -272

    browser-use 0.9.7 adds Gemini 3 model support and configurable screenshot sizing.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.7
    • Adds support for Gemini 3 as a usable model.
    • Enables configurable screenshot size for browser-use models.
  32. 0.9.6 Nov 15, 2025 · issue -275

    browser-use 0.9.6 adds structured-output opt-out, judge ground-truth/impossibility fields, image/DOCX reading, Kimi-2 support, and a fuzzy-search TUI for templates.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.6 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.6
    └──▷ TRY IT
    Configure the library to use AWS Bedrock-hosted models by setting the required environment variables.
    $ AWS_ACCESS_KEY_ID=<your-key>
    AWS_SECRET_ACCESS_KEY=<your-secret>
    AWS_DEFAULT_REGION=us-east-1
    ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com
    • Adds option to disable forced structured output for LLM calls, giving more flexibility with models that handle it poorly.
    • Adds ground_truth field to the judge, enabling evaluation against a known-correct answer.
    • Adds judge output fields for task impossibility and captcha detection, surfacing when a task cannot be completed.
    • Adds http_client parameter to the Anthropic Chat integration for custom HTTP client configuration.
    • Adds AWS Bedrock configuration to .env.example, documenting how to point the library at Bedrock-hosted models.
    +9 moreshow less
    • Supports reading image files (JPG/PNG) and DOCX files as agent inputs.
    • Adds support for the Kimi-2 model.
    • Defaults screenshot format to PNG everywhere.
    • Defaults vision to True, enabling visual context for all agents by default.
    • Sets a default maximum actions per step to bound agent execution.
    • Implements a demo mode for in-browser logging.
    • Adds a fuzzy-search TUI for template selection when starting from example templates.
    • Improves navigate-to-URL event logic and wait mechanism for more reliable page-load detection.
    • Adds a perform general action capability to the agent action set.
  33. 0.9.5 Nov 1, 2025 · issue -289

    browser-use 0.9.5 adds a template system, remote code upload/execution, and extra_body support for OpenRouter

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.5
    • Adds extra_body parameter support for OpenRouter LLM calls, enabling pass-through of provider-specific request fields.
    • Implements a template system backed by a template-library repo, letting users bootstrap agent tasks from pre-built templates.
    • Adds remote code upload and execution capability, enabling agents to run code on remote targets.
    • Improves cloud parameters configuration for browser-use cloud deployments.
    • Adds Unicode character support in filenames and improved path handling, including Windows path validation.
  34. 0.9.4 Oct 29, 2025 · issue -292

    browser-use 0.9.4 improves the session manager and removes third-party ad injection.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.4 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.4
    • Improves the session manager for more reliable browser session handling.
    • Removes ads injected by third-party companies from browser sessions.
  35. 0.9.3 Oct 28, 2025 · issue -293

    browser-use 0.9.3 adds a template generation command for quick project setup and switches install to uvx browser-use install.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.3 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.3
    • Changes the browser-use install invocation to uvx browser-use install.
    • Adds a template generation command for quick project scaffolding.
    └──▷ BREAKING ON UPGRADE
    • !The browser-use install command has changed: users must now run uvx browser-use install instead of the previous invocation.
  36. 0.9.2 Oct 28, 2025 · issue -293

    browser-use 0.9.2 adds direct action call API via __getattr__, element lookup helpers on BrowserSession, and a new uvx browser-use install command.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.2
    └──▷ TRY IT
    Install browser-use without a pre-existing project setup, useful for one-off automation or CI bootstrapping.
    $ uvx browser-use install
    • Adds uvx browser-use install subcommand for quick installation via uvx.
    • Adds direct action call API to Tools via __getattr__, enabling actions to be invoked as methods directly on the Tools object.
    • Adds element lookup helper methods to BrowserSession for programmatic element access.
    • Expands code-use exports to include JavaScript code blocks alongside existing output formats.
  37. 0.9.0 Oct 22, 2025 · issue -299

    browser-use 0.9.0 adds CodeAgent, a new agent class with a compatible API and dedicated LLM integration.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.9.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.9.0
    └──▷ USE IT
    Run a code-driven browser automation task using the new CodeAgent and its required ChatBrowserUse LLM.
    python
    from browser_use import CodeAgent, ChatBrowserUse
    
    agent = CodeAgent(
        task=task,
        llm=ChatBrowserUse(),
    )
    await agent.run()
    • Adds CodeAgent class importable from browser_use, offering a code-oriented agent with an API compatible with the existing agent interface.
    • Adds ChatBrowserUse LLM class required by CodeAgent, importable from browser_use.
  38. 0.8.1 Oct 14, 2025 · issue -307

    browser-use 0.8.1 adds visual click highlights and Oracle OCI Generative AI model integration.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.8.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.8.1
    • Integrates Oracle OCI Generative AI models as a supported LLM backend.
    • Adds browser-side visual highlights showing where the agent clicked during automation sessions.
    • Removes the default LLM fallback behavior, making model selection explicit.
    └──▷ BREAKING ON UPGRADE
    • !The default LLM fallback is removed; agents that relied on automatic fallback to a default model will now require an explicit model to be configured.
  39. 0.7.11 Oct 8, 2025 · issue -313

    browser-use 0.7.11 adds IP blocking, external agent stop, Cerebras provider, cookie saving, and a screenshot tool.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.11 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.11
    • Adds IP blocking feature to prevent the browser agent from connecting to specified IP addresses.
    • Adds functionality to stop the agent externally, enabling programmatic interruption of running agent sessions.
    • Adds Cerebras as a supported LLM provider.
    • Adds cookie saving capability to persist authentication state across sessions.
    • Adds a screenshot tool for agents to capture browser state on demand.
    +2 moreshow less
    • Adds an option to include interactive elements, giving finer control over which page elements the agent considers.
    • Stores agent state messages in the run history for improved auditability of agent sessions.
  40. 0.7.10 Sep 29, 2025 · issue -321

    browser-use 0.7.10 adds Laminar debug tags, improved auto PDF download, and parallel multi-agent and domain-prohibition examples.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.10 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.10
    • Adds Laminar debug tags integration for tracing agent runs.
    • Improves auto PDF download capabilities for browser-driven workflows.
    • Adds parallel multi-agent example demonstrating concurrent agent execution.
    • Adds ModelScope example and documentation for using ModelScope-hosted models.
    • Adds examples showing how to prohibit specific domains in agent configurations.
    +2 moreshow less
    • Relaxes Pydantic length limit for Amazon Bedrock ARN strings in model config.
    • Multiple speed-up improvements reducing latency across agent execution paths.
  41. 0.7.9 Sep 19, 2025 · issue -331

    browser-use 0.7.9 adds Actor mode for direct element interaction and a cloud browser integration.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.9 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.9
    └──▷ USE IT
    Use Actor mode to precisely locate and fill a specific page element by natural-language prompt, then hand off to an Agent for higher-level task completion.
    python
    from browser_use import Browser, Agent
    from browser_use.llm.openai import ChatOpenAI
    
    async def main():
        llm = ChatOpenAI(api_key="your-api-key")
        browser = Browser()
        await browser.start()
    
        page = await browser.new_page("https://github.com/login")
        email_input = await page.must_get_element_by_prompt("username field", llm=llm)
        await email_input.fill("your-username")
    
        agent = Agent(browser=browser, llm=llm)
        await agent.run("Complete login and navigate to my repositories")
    
        await browser.stop()
    • Adds Actor usage pattern via page.must_get_element_by_prompt() on Browser page objects, enabling precise LLM-guided element targeting and interaction without a full agent loop.
    • Adds cloud_browser feature for connecting to cloud-hosted browser sessions.
    • Logs the browser-use pip version on agent start for easier debugging and version tracing.
  42. 0.7.8 Sep 17, 2025 · issue -333

    browser-use 0.7.8 adds prohibited-domain blocking, auto www-expansion for allowed domains, JS tool inclusion, and sensitive-data scrubbing from agent history.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.8 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.8
    └──▷ USE IT
    Block the agent from ever navigating to competitor or high-risk domains during an automated session.
    python
    from browser_use import Agent
    
    agent = Agent(
        task='Research pricing on allowed sites',
        prohibited_domains=['malicious-site.com', 'competitor.com'],
    )
    Disable cloud-sync URL logging in a CI environment where sync traffic should be silent.
    $ BROWSER_USE_CLOUD_SYNC=false python my_agent_script.py
    • Supports prohibited_domains configuration to block the agent from navigating to specified domains.
    • Automatically expands allowed domains to include www variants, reducing the need to list both bare and www forms.
    • Adds a JavaScript tool inclusion capability (include-js-tool), enabling custom JS to be surfaced as an agent action.
    • Suppresses cloud-sync URLs when the BROWSER_USE_CLOUD_SYNC environment variable is set to false.
    • Removes sensitive data from agent history and logging output to reduce credential and PII exposure in traces.
  43. 0.7.7 Sep 9, 2025 · issue -341

    browser-use 0.7.7 adds an enhanced screenshot API and automatic PDF download detection via DownloadsWatchdog.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.7
    • Adds an enhanced screenshot API with new capabilities for capturing browser state programmatically.
    • Extends DownloadsWatchdog to watch BrowserStateRequestEvent and automatically handle PDF downloads.
    • Removes the hardcoded maximum iframe recursion limit, enabling DOM traversal into arbitrarily nested iframes.
  44. 0.7.5 Sep 8, 2025 · issue -342

    browser-use 0.7.5 adds Qwen and Gemma LLM support, cross-origin iframe traversal, and exposes reasoning_models and cross_origin_iframes as parameters.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.5
    └──▷ USE IT
    Declare a Qwen reasoning model so browser-use applies the correct prompting strategy when using Qwen via Ollama or another provider.
    python
    agent = Agent(
        task='Book a flight on the airline website',
        llm=llm,
        reasoning_models=['qwen3']
    )
    • Exposes cross_origin_iframes as a parameter with depth limits, enabling the agent to traverse and interact with cross-origin iframes during browser automation.
    • Exposes reasoning_models as a configurable parameter, allowing callers to explicitly declare which models use reasoning-style prompting.
    • Adds Qwen LLM integration, expanding supported model providers.
    • Adds Gemma LLM integration, expanding supported model providers.
    • Adds paint-order filtering to improve accuracy of visible-element detection on complex pages.
    └──▷ BREAKING ON UPGRADE
    • !HTTP mode has been removed from the MCP server; any setup using HTTP transport for the MCP server will stop working after upgrading.
  45. 0.7.4 Sep 7, 2025 · issue -343

    browser-use 0.7.4 adds video recording, CDP localStorage/sessionStorage capture, pyotp 2FA, and ollama_options support

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.4 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.4
    • Adds ollama_options parameter to ChatOllama for passing custom options to Ollama-backed models.
    • Adds event timeouts config to control how long the agent waits on browser events before timing out.
    • Adds task video recording capability so agent runs can be captured as video files.
    • Adds CDP-based capture of localStorage and sessionStorage, with StorageStateWatchdog automatically enabled when user_data_dir is provided.
    • Integrates pyotp for TOTP-based 2FA generation within agent workflows.
    +1 moreshow less
    • Adds a URL shortener utility for condensing long URLs before passing them to the agent.
  46. 0.7.2 Sep 5, 2025 · issue -345

    browser-use 0.7.2 adds sample_images support and an AgentMail integration alongside hook API updates.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.2
    • Adds sample_images parameter to let the agent learn how to operate a platform from example screenshots.
    • New AgentMail integration for browser automation workflows involving email.
    • Updated hooks APIs following Playwright removal, with revised documentation.
  47. 0.7.1 Aug 31, 2025 · issue -350

    browser-use 0.7.1 restores the CLI, re-enables PDF auto-download, and disables highlights by default after the CDP migration.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.7.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.7.1
    • Re-enables automatic PDF downloading, restoring a capability that was dropped during the CDP rewrite.
    • Disables browser element highlights by default, reducing overhead in standard automation runs.
    • Generates Python-side highlights for browser screenshots instead of relying on browser-injected overlays.
    • Adds sensitive data placeholder names to LLM prompts, surfacing masked values in the prompt context.
    • Improves extract structured data action with better input, output, and LLM call handling.
  48. 0.6.1 Aug 21, 2025 · issue -360

    browser-use 0.6.1 adds authenticated proxy support, unexecuted-action context, and click/input coordinate tracking.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.6.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.6.1
    • Adds authenticated proxy server support, enabling browser sessions to route through proxies that require credentials.
    • Adds unexecuted actions into agent context so the agent retains awareness of planned-but-not-yet-run steps across turns.
    • Saves click and input-text coordinates, capturing the exact screen position of each interaction for replay or debugging.
    • Sets a default LLM, reducing required configuration for new agent setups.
    • Adds cloud API usage examples demonstrating how to call the browser-use cloud API.
    └──▷ BREAKING ON UPGRADE
    • !The agent call method has been removed.
  49. 0.6.0 Aug 19, 2025 · issue -362

    browser-use 0.6.0 drops Playwright in favor of cdp-use/bubus, adds cross-origin iframe support and StreamableHTTP for MCP

    └──▷ GET THIS VERSION
    $ git clone --branch 0.6.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.6.0
    └──▷ TRY IT
    Suppress verbose cdp_use debug output in CI by setting the log level to WARNING at the environment level.
    $ CDP_USE_LOG_LEVEL=WARNING python my_agent.py
    • Sets CDP_USE_LOG_LEVEL environment variable to control cdp_use logging verbosity independently.
    • Adds StreamableHTTP transport support to the MCP integration, alongside the existing transport options.
    • Replaces Playwright with cdp-use and bubus in BrowserSession, switching to a pure CDP extraction layer for browser automation.
    • Adds support for cross-origin iframes, enabling interaction with embedded third-party content.
    • Renames ClickEvent(new_tab) parameter to while_holding_ctrl for clarity in click-event semantics.
    └──▷ BREAKING ON UPGRADE
    • !BrowserSession no longer uses Playwright — it now depends on cdp-use and bubus; any code that imported or configured Playwright-specific APIs through BrowserSession will break on upgrade.
    • !ClickEvent(new_tab) parameter is renamed to while_holding_ctrl; callers passing new_tab by keyword will break.
  50. 0.5.10 Aug 7, 2025 · issue -363

    browser-use 0.5.10 adds GPT-5 and gpt-oss model support, plus Anthropic prompt caching improvements.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.10 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.10
    • Adds gpt-5 models to the OpenAI LLM integration, enabling use of GPT-5 with browser-use agents.
    • Adds gpt-oss models to the Groq tool-calling integration.
    • Enables prompt caching for user messages and agent history, reducing latency and cost for Anthropic models.
    • Sets the default frequency_penalty to None to ensure compatibility with GPT-5 (which does not allow that parameter).
    └──▷ BREAKING ON UPGRADE
    • !The message_context parameter has been removed from the API.
  51. 0.5.8 Aug 2, 2025 · issue -363

    browser-use 0.5.8 adds a helper function for retrieving formatted agent traces with metadata.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.8 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.8
    • Adds a helper function to retrieve a nicely formatted agent trace with metadata for post-run inspection and debugging.
  52. 0.5.7 Jul 30, 2025 · issue -364

    browser-use 0.5.7 adds a Search API, exposes seed/top_p/temperature and OpenAI service_tier params, and makes screenshot quality configurable.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.7
    └──▷ USE IT
    Fine-tune LLM output determinism for a cloud task by pinning seed and adjusting sampling — useful when you need reproducible agent runs.
    json
    {
      "seed": 42,
      "top_p": 0.9,
      "temperature": 0.2
    }
    Route OpenAI calls to a specific service tier (e.g. priority capacity) without changing the rest of your agent configuration.
    json
    {
      "service_tier": "auto"
    }
    • Exposes seed, top_p, and temperature parameters on the Cloud API for controlling LLM sampling behaviour.
    • Adds support for specifying the OpenAI service_tier parameter when using OpenAI-backed models.
    • Introduces a Search API (beta) for programmatic search within browser-use.
    • Makes vision model screenshot quality customizable, giving callers control over image fidelity sent to the LLM.
    • Never relaunches a local browser when a CDP URL is provided, preventing unintended browser restarts.
    +1 moreshow less
    • Notifies the LLM whenever page loading is interrupted so it can invoke the wait action rather than proceeding on a partial page.
  53. 0.5.6 Jul 26, 2025 · issue -364

    browser-use 0.5.6 adds CDP URL telemetry, ARIA menu dropdown support, typed package marker, and speed improvements.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.6 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.6
    • Adds py.typed marker to the package, enabling type-checker support (mypy, pyright) for downstream consumers.
    • Adds CDP (Chrome DevTools Protocol) URL to Agent Telemetry events for richer session observability.
    • Adds ARIA menu support to dropdown interaction functions, broadening the range of web UI components the agent can operate.
    • Disables screenshot capture automatically when vision is disabled, reducing unnecessary overhead.
    • Handles PDF viewer content via the read-file action, allowing agents to extract text from in-browser PDF viewers.
    +1 moreshow less
    • Speed improvements to browser wait logic and general agent loop performance.
  54. 0.5.5 Jul 16, 2025 · issue -364

    browser-use 0.5.5 adds Flash Mode, DeepSeek and Groq support, and OpenAI CUA fallback

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.5
    • Adds DeepSeek LLM chat model integration as a supported provider.
    • Adds tool-calling support for Groq-hosted models.
    • Adds OpenAI CUA (Computer-Using Agent) fallback mode for browser automation.
    • Introduces Flash Mode for faster browser-use agent operation.
    • Limits the wait action to a maximum of 10 seconds, capping runaway waits.
    └──▷ BREAKING ON UPGRADE
    • !The Planner Prompt has been removed from the agent pipeline.
  55. 0.5.4 Jul 11, 2025 · issue -364

    browser-use 0.5.4 adds automatic agent crash recovery and consolidates BrowserSession navigation methods

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.4 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.4
    └──▷ USE IT
    Use the unified navigation method to open a URL in a new tab with a custom timeout, replacing the old create_new_tab() / navigate_to() calls.
    python
    await session.navigate(url='https://example.com', new_tab=True, timeout_ms=15000)
    • Adds @require_healthy_browser(usable_page=True, reopen_page=True) decorator in browser_use/browser/session.py for crash-resilient browser operations.
    • Combines navigate(), navigate_to(), create_new_tab(), new_page() and other redundant BrowserSession helper methods into a single navigate(url: str, new_tab: bool, timeout_ms: int) method.
    • Agent now auto-recovers from crashed or stalled pages: retries the stalled page via JS page.evaluate(1), reopens the URL in a new tab, retreats to about:blank, relaunches a crashed browser with original settings, and falls back to a tmp incognito user_data_dir=None (with storage_state.json cookies) if the browser fails to relaunch.
    • Adds PDF file creation support in the agent's file-handling actions.
    • Exposes retry decorator @retry(timeout=5, wait=1, retries=2, ...) from bubus/helpers.py for use in custom actions.
    └──▷ BREAKING ON UPGRADE
    • !The BrowserSession methods navigate_to(), create_new_tab(), and new_page() are removed and replaced by the single unified navigate(url: str, new_tab: bool, timeout_ms: int) method; any call sites using the old method names will break.
  56. 0.5.3 Jul 9, 2025 · issue -364

    browser-use 0.5.3 adds automatic PDF downloads and graceful incognito fallback for unusable user_data_dir profiles

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.3 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.3
    └──▷ USE IT
    Use a persistent profile for logins; if that profile is corrupted or locked by another Chrome instance, the agent now continues with a blank incognito session instead of crashing.
    python
    from browser_use import BrowserSession
    
    session = BrowserSession(user_data_dir='/home/user/.config/chrome-profile')
    # If the profile dir is unusable, falls back to user_data_dir=None automatically
    • Adds graceful fallback to a temporary incognito profile (user_data_dir=None) when BrowserSession(user_data_dir='/path/to/some/profile') fails to launch due to corruption, SingletonLock conflicts, or filesystem permission issues — instead of crashing.
    • Automatically downloads PDFs when the browser navigates to one, with scrolling inside PDFs via pure CDP.
    • Takes base64 CDP screenshots directly without going through Playwright, enabling faster screen capture.
  57. 0.5.0 Jul 8, 2025 · issue -364

    browser-use 0.5.0 adds native bidirectional MCP support, exposing external MCP tools to the agent and the agent itself as an MCP server.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.5.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.5.0
    └──▷ USE IT
    Expose the Browser Use agent as an MCP server so Claude Desktop (or any MCP client) can invoke browser automation tasks directly.
    json
    {
      "mcpServers": {
        "browser-use": {
          "command": "uvx",
          "args": ["browser-use[cli]", "--mcp"]
        }
      }
    }
    • Adds --mcp CLI flag (via browser-use[cli]) to launch the Browser Use agent as an MCP server callable by any MCP client, including Claude Desktop.
    • Adds MCP client support so external MCP servers and their tools can be connected to the Browser Use agent and used as actions.
    • Expands ~/.config/browseruse/config.json schema with new fields for MCP client and server connectors.
    • Supports installing Browser Use as a Claude Desktop extension via a browser-use.dxt file or manual entry in the Claude Desktop mcpServers config block.
    • Enhances scroll actions with pixel-level control.
    +1 moreshow less
    • Adds remove_images and remove_css parameters to eval.yaml for leaner evaluation runs.
  58. 0.4.5 Jul 7, 2025 · issue -364

    browser-use 0.4.5 adds OpenRouter support, JSON/CSV/PDF data extraction, Gmail OTP integration, and multi-image-per-step agent input.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.4.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.4.5
    └──▷ USE IT
    Use OpenRouter as the LLM backend so you can route to any model OpenRouter exposes without managing provider credentials directly.
    python
    from langchain_openai import ChatOpenAI
    
    llm = ChatOpenAI(
        base_url='https://openrouter.ai/api/v1',
        api_key='<your-openrouter-key>',
        model='openai/gpt-4o',
    )
    agent = Agent(task='<task>', llm=llm)
    • Adds BrowserSettings to BrowserProfile for configuring browser-level settings directly on the profile object.
    • Supports reading and extracting structured data from JSON, CSV, and PDF files as agent actions.
    • Integrates the Gmail API to retrieve OTPs and email content during automated workflows.
    • Adds OpenRouter as a supported LLM provider for driving agents.
    • Enables multiple screenshots per agent step, each with a label, as LLM input — improving visual context for multi-action steps.
  59. 0.4.2 Jun 30, 2025 · issue -365

    browser-use 0.4.2 adds file upload action, token usage tracking, thinking parameter support, and broader model compatibility.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.4.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.4.2
    • Adds upload_file action to the controller, enabling agents to upload files through browser interactions.
    • Adds token usage data to agent history, allowing practitioners to track and inspect consumption per run.
    • Adds support for a thinking parameter for compatible models, enabling extended reasoning modes.
    • Expands supported model roster for use with the agent.
    • Structured output support optimized across the agent and judge system for improved reliability.
    └──▷ BREAKING ON UPGRADE
    • !The save_pdf action has been removed from the controller.
  60. 0.3.2 Jun 22, 2025 · issue -365

    browser-use 0.3.2 adds a FileSystem tracker for uploads/downloads, a highlight_elements flag, and Gemini 2.5 Flash support.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.3.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.3.2
    └──▷ USE IT
    Disable element highlighting during a browser-use agent run to reduce visual noise in headless or production environments.
    python
    agent = Agent(
        task='Book a flight to NYC',
        llm=llm,
        highlight_elements=False
    )
    • Adds highlight_elements flag to control whether the agent highlights elements on the page during automation.
    • Introduces a FileSystem feature that tracks all uploads and downloads the agent has access to in a unified manner.
    • Adds support for gemini-2.5-flash as an available model.
    • Makes browser launch timeout configurable via Playwright kwargs.
    • Improves AgentOutput format and reasoning style for better agent state representation.
    +1 moreshow less
    • Adds a custom function example using Mistral OCR demonstrating how to extend agent capabilities.
  61. 0.3.0 Jun 20, 2025 · issue -365

    browser-use 0.3.0 adds an EventBus for queued async agent tasks and automatic retry on mid-action page navigation.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.3.0 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.3.0
    • Adds an EventBus to the Agent class for queued async task dispatch, enabling event-driven orchestration of browser automation workflows.
    • Adds automatic retry logic for actions that fail due to page navigation occurring mid-action, reducing brittle task failures in dynamic sites.
    └──▷ BREAKING ON UPGRADE
    • !The success parameter is removed from ActionResult in service.py; callers that pass or read success will break on upgrade.
  62. 0.2.6 Jun 10, 2025 · issue -365

    browser-use 0.2.6 adds stealth mode, BrowserSession.kill(), new CLI flags, and auto-applied storage state for existing browsers.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.2.6 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.2.6
    └──▷ USE IT
    Force-close a long-running keep-alive session from a multi-agent pipeline without waiting for it to finish gracefully.
    python
    session = BrowserSession(keep_alive=True, stealth=True)
    await session.start()
    agent = Agent(task='...', browser_session=session)
    await agent.run()
    await session.kill()  # force-close even though keep_alive=True
    Reconnect to an existing browser and automatically restore saved cookies/localStorage from a prior session.
    python
    session = BrowserSession(
        cdp_url='ws://localhost:9222',
        storage_state='storage_state.json',  # auto-applied on connect
    )
    await session.start()
    • Adds BrowserSession(stealth=True) and BrowserProfile(stealth=True) as a shortcut to run sessions through patchright for bot-detection evasion.
    • Adds BrowserSession.kill() to force-close a session even when keep_alive=True is set.
    • Adds --cdp-url, --user-data-dir, and --profile-directory options to the browser-use CLI.
    • Auto-applies storage_state.json (cookies/localStorage) even when connecting to an already-running browser via CDP.
    • Every Agent, BrowserSession, and BrowserProfile instance now carries a unique UUID, making them straightforward to persist to a database.
    +3 moreshow less
    • CLI now uses stealth mode by default.
    • Major async performance improvements for page-to-markdown extraction and LLM calls in multi-agent scenarios.
    • Major stability improvements for multithreading, multiple asyncio run loops, and serial/parallel BrowserSession and Agent use.
    └──▷ BREAKING ON UPGRADE
    • !BrowserSession instances with keep_alive=True must now be started manually before being passed to Agent() — previously the agent could start them automatically.
    • !save_playwright_script_path has been removed.
  63. 0.2.5 May 28, 2025 · issue -366

    browser-use 0.2.5 adds a one-shot CLI mode via browser-use -p for running browser tasks directly from the command line.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.2.5 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.2.5
    └──▷ TRY IT
    Fetch a live data point from the web and return structured JSON output in a single terminal command — no script required.
    $ browser-use -p 'get todays DOW stock price and return it as JSON, e.g.: {"dow_price": 40000.00}'
    • Adds browser-use -p '<prompt>' one-shot CLI mode to run a browser-use task directly from the command line and return a result without writing any Python code.
  64. 0.2.2 May 24, 2025 · issue -366

    browser-use 0.2.2 adds auto-detection of LLM tool-calling method and LLM API verification at startup.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.2.2 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.2.2
    • Auto-detects the LLM tool-calling method and verifies the LLM API connection at startup, catching misconfiguration before a session begins.
    • Improves file upload detection for more reliable browser automation workflows.
  65. 0.2.1 May 23, 2025 · issue -366

    browser-use 0.2.1 ships BrowserProfile/BrowserSession, per-domain sensitive data, Patchright support, and expanded vector store providers

    └──▷ GET THIS VERSION
    $ git clone --branch 0.2.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.2.1
    └──▷ USE IT
    Share a single Playwright browser between browser-use and another tool, injecting an existing Page so no second browser is launched.
    python
    from playwright.async_api import async_playwright
    from browser_use import Agent
    
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        await page.goto('https://example.com')
    
        agent = Agent(task='fill out this form', llm=llm, page=page)
        await agent.run()
    Write a custom action that manipulates the live page directly via the injected Playwright Page object, scoped to a specific domain.
    python
    from browser_use import Controller
    from playwright.async_api import Page
    
    controller = Controller()
    
    @controller.registry.action(
        description='Highlight all cells in the selection',
        allowed_domains=['https://docs.google.com']
    )
    async def highlight_cells(cell_range: str, page: Page):
        await page.evaluate(f"document.querySelector('{cell_range}').style.background = 'yellow'")
    • Introduces BrowserProfile and BrowserSession classes, replacing Browser, BrowserConfig, BrowserContext, and BrowserContextConfig with a unified API that accepts all standard Playwright launch_persistent_context() arguments directly on BrowserProfile.
    • Adds allowed_domains parameter to BrowserSession, now defaulting to enforcing https:// unless http:// or http*:// is explicitly included; supports globs and full scheme matching (e.g. https://*.google.com, chrome-extension://*).
    • Changes Agent(sensitive_data) to accept a new per-domain format {domain: {key: val, ...}} instead of the flat {key: value} format, restricting credential exposure to matching domains using the same glob/scheme system as allowed_domains.
    • Allows passing existing Playwright (or Patchright) Page, BrowserContext, and Browser objects directly into BrowserSession or Agent (e.g. Agent(task='...', llm=llm, page=page)).
    • Adds support for using Patchright as a stealth browser backend via playwright=await async_patchright().start() on BrowserSession.
    +5 moreshow less
    • Custom action functions decorated with @controller.registry.action(...) can now declare page: Page or browser_session as parameters to receive the live Playwright Page object directly, eliminating the need for a separate get_current_page() call.
    • Local browsers now launch with a dedicated persistent empty profile stored at ~/.config/browseruse/profiles/default, isolated from the system default browser profile.
    • Expands the range of supported vector store providers for agent memory.
    • Adds support for multi-threaded agent execution including pause and resume operations.
    • Adds new LLM model support and improved element detection methods including accessibility tree enhancements and custom event-listener detection.
    └──▷ BREAKING ON UPGRADE
    • !Browser, BrowserConfig, BrowserContext, and BrowserContextConfig are replaced by BrowserProfile and BrowserSession; existing code constructing those objects will break.
    • !Agent(sensitive_data) now requires the format {domain: {key: val, ...}} instead of the flat {key: value} format; agents using the old flat format will no longer have credentials correctly scoped.
    • !BrowserSession(allowed_domains=[...]) now enforces https:// by default unless http:// or http*:// is explicitly listed; setups that relied on unqualified domain globs matching plain HTTP will be blocked.
    • !Local browsers now refuse to start with the system default browser profile; they require the dedicated profile at ~/.config/browseruse/profiles/default, which may break setups that previously relied on ambient system cookies.
  66. 0.1.48 May 15, 2025 · issue -366

    browser-use 0.1.48 adds glob pattern support for allowed_domains URL restrictions and automated Docker Hub publishing.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.48 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.48
    └──▷ USE IT
    Restrict a browser agent to only operate within subdomains of a trusted domain, preventing it from navigating to unrelated sites.
    python
    from browser_use import Agent
    
    agent = Agent(
        task="Find the pricing page",
        allowed_domains=['*.example.com'],
        llm=llm,
    )
    • Adds glob pattern matching to allowed_domains (e.g. allowed_domains=['*.example.com']), enabling wildcard-based URL allowlisting for browser agents.
    • Docker images are now automatically published to Docker Hub via CI on each release.
  67. 0.1.47 May 14, 2025 · issue -366

    browser-use 0.1.47 renames GEMINI_API_KEY to GOOGLE_API_KEY and moves CLI deps to an optional install group.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.47 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.47
    • Renames the GEMINI_API_KEY environment variable to GOOGLE_API_KEY for Google model authentication.
    • Moves CLI dependencies to an optional browser-use[cli] install group, keeping the core library lighter for non-CLI users.
    • Adds LLaMA model to the built-in pricing table for cost tracking.
    └──▷ BREAKING ON UPGRADE
    • !The GEMINI_API_KEY environment variable is renamed to GOOGLE_API_KEY; any working setup that sets GEMINI_API_KEY will stop authenticating to Google models after upgrading.
    • !CLI dependencies are no longer installed by default; users who rely on the CLI must now install browser-use[cli] explicitly or the CLI will fail to run.
  68. 0.1.46 May 12, 2025 · issue -366

    browser-use 0.1.46 adds a Dockerfile, switches back to Playwright, and improves element interaction and DOM integrity.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.46 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.46
    • Adds Dockerfile and .dockerignore for containerizing browser-use deployments.
    • Switches the underlying browser automation backend from patchright back to playwright for improved performance and stability.
    • Automatically clicks elements before typing into them, with a fallback to simulating keystrokes on the entire page for better input reliability.
  69. 0.1.45 May 3, 2025 · issue -366

    browser-use 0.1.45 adds an interactive CLI, Google Sheets support, Azure OpenAI, and improved anti-bot fingerprint evasion.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.45 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.45
    └──▷ USE IT
    Set browser window and viewport dimensions using the new flat config attributes after removing BrowserWindowContextSize.
    python
    from browser_use import BrowserContextConfig
    
    config = BrowserContextConfig(window_width=1280, window_height=900, no_viewport=False)
    • Adds flat window_width and window_height attributes to BrowserContextConfig (replacing the removed BrowserWindowContextSize object), also used as viewport dimensions when no_viewport=False.
    • New interactive CLI for browser-use, styled like the claude code CLI, for running browser-use tasks directly from the terminal.
    • Adds Google Sheets support directly in the main controller.
    • Adds support for Azure OpenAI API GPT-4 as a model provider.
    • Improves anti-bot fingerprint detection for compatibility with Cloudflare-protected sites and Google logins.
    └──▷ BREAKING ON UPGRADE
    • !The BrowserWindowContextSize object is removed: replace BrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)) with BrowserContextConfig(window_width=1280, window_height=900).
  70. 0.1.42 May 2, 2025 · issue -366

    browser-use 0.1.42 adds anti-bot detection via patchright, Playwright script generation, force_new_context flag, and embedder config for Mem0.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.42 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.42
    └──▷ USE IT
    Connect to an already-running Chrome instance while still applying your custom BrowserContextConfig settings.
    python
    from browser_use import Agent, BrowserConfig
    
    browser_config = BrowserConfig(
        chrome_remote_debugging_port=9222,
        force_new_context=True
    )
    agent = Agent(task='...', llm=llm, browser_config=browser_config)
    • Adds force_new_context=True flag to browser config so custom context configuration is applied when connecting to existing browsers.
    • Adds chrome_remote_debugging_port setting in browser config to support launching user-provided Chrome browsers.
    • Adds GEMINI_API_KEY environment variable, replacing GOOGLE_API_KEY for Gemini LLM authentication.
    • Adds Playwright script generation from agent history, enabling replay of recorded agent sessions.
    • Adds anti-bot detection support by integrating patchright as the underlying browser automation backend, replacing playwright.
    +5 moreshow less
    • Adds embedder config support in Mem0 (MemoryConfig) to allow different LLMs for memory embeddings.
    • Adds option to disable mem0 telemetry.
    • Adds extended system prompt capability for the planner agent.
    • Adds support for gemma instruction-tuned models.
    • Adds source tracking and error tracking to agent telemetry.
    └──▷ BREAKING ON UPGRADE
    • !playwright is replaced by patchright as the underlying browser automation dependency; any code or configuration that directly references the playwright package may be affected.
  71. 0.1.41 Apr 1, 2025 · issue -367

    browser-use 0.1.41 adds multi-browser support, HAR recording, PDF saving, mobile/geo simulation, pre/post step hooks, and much more.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.41 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.41
    └──▷ TRY IT
    Skip LLM API key verification at startup when deploying to a cloud environment where keys are injected at runtime.
    $ SKIP_LLM_API_KEY_VERIFICATION=true python my_agent.py
    • Adds SKIP_LLM_API_KEY_VERIFICATION environment variable to bypass LLM API key validation on startup (useful for cloud deployments).
    • Adds browser context options for mobile simulation, geolocation, permissions, and timezone settings via BrowserContextConfig.
    • Adds HAR file recording support, enabling network traffic capture during browser sessions.
    • Adds wait_for_element action so agents can pause until a specific element appears in the DOM.
    • Adds page-scoped action registration — actions can now be restricted to specific page URL patterns (e.g., *.example.com).
    +15 moreshow less
    • Adds pre- and post-step hooks to Agent.step() so developers can inject custom behavior around each agent step.
    • Adds save webpage as PDF action with a configurable output path.
    • Adds multi-browser support, allowing multiple browser instances to be managed simultaneously.
    • Adds clicking by XPath, CSS selector, or text as new element-targeting methods.
    • Adds Dolphin browser driver support as a new browser backend.
    • Adds flexible system prompt customization options for the agent.
    • Adds Google Sheets support by automating keyboard shortcuts.
    • Adds support for asking the agent to close tabs via a new action.
    • Adds fallback handling when the LLM does not produce the expected tool call format.
    • Adds DeepSeek R1 Distill and QwQ-32b model support.
    • Verifies LLM API keys work on startup and adds Ctrl+C error handling.
    • Improves Chrome launch flags with better chrome-in-docker support, anti-fingerprinting, and deterministic rendering.
    • Improves interactive element detection using computed cursor style for more accurate DOM parsing.
    • Processes shadow DOM children correctly so elements inside shadow roots are no longer skipped.
    • Improves error logging for LLM API calls and missing environment variables.
  72. 0.1.40 Feb 23, 2025 · issue -369

    browser-use 0.1.40 adds metadata in agent history and support for models without native tool calling.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.40 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.40
    • Enables models without native tool-calling support to operate the browser by injecting available actions directly into the prompt context.
    • Adds metadata to agent history records, enriching run logs with additional context about each step.
    • Introduces forced completion output to ensure agents always emit a done result rather than hanging.
  73. 0.1.37 Feb 13, 2025 · issue -369

    browser-use 0.1.37 adds file-upload-via-dict, PDF streaming, extra Chromium args support, and improved DOM processing.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.37 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.37
    • Adds extra_chromium_args support for real browser sessions, enabling custom Chromium launch flags.
    • Supports file uploads specified as a dictionary (Feature/file upload dict), expanding how files can be passed to browser actions.
    • Adds a function to stream PDF files from the browser context.
    • Detects whether page.evaluate() works properly, surfacing compatibility issues with restricted browser environments.
    • Generates unique file names automatically when a target file already exists, preventing silent overwrites.
    +4 moreshow less
    • Improves DOM processing for more reliable element extraction and interaction.
    • Improves text input handling in the browser context for more robust form filling.
    • Adds a custom function example for web search, demonstrating how to extend the agent with custom actions.
    • Adds a streaming usage example showing how to consume agent output incrementally.
  74. 0.1.33 Feb 1, 2025 · issue -369

    browser-use 0.1.33 adds sensitive data handling, LLM-based page extraction, and screenshots in AgentHistory regardless of vision mode

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.33 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.33
    • Captures screenshots in AgentHistory even when use_vision=False, enabling visual replay of agent runs without vision-mode overhead.
    • Adds LLM-based page extraction, allowing the agent to extract structured content from pages using a language model.
    • Adds sensitive data handling to prevent secrets and credentials from leaking into agent logs or prompts.
    • Adds an Azure OpenAI integration example covering UI and model configuration.
  75. 0.1.27 Jan 22, 2025 · issue -370

    browser-use 0.1.27 adds initial action execution, agent callbacks, and action exclusions for more controllable browser automation.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.27 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.27
    • Adds initial actions support — define setup steps (e.g., navigate to a URL, scroll) that run before LLM interactions begin.
    • Introduces callbacks for step and done events, enabling monitoring and control hooks during agent execution.
    • Adds the ability to exclude specific actions from the agent's available action set for finer customization.
    • Migrates time.sleep to asyncio.sleep for non-blocking async operation throughout the library.
    • Optimizes cloud infrastructure support for smoother deployments and improved scalability.
  76. 0.1.26 Jan 20, 2025 · issue -370

    browser-use 0.1.26 adds viewport_expansion and highlight_elements controls for page context and visual output.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.26 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.26
    └──▷ USE IT
    Suppress element highlights for cleaner screenshots or when visual overlays interfere with the page layout.
    python
    agent = Agent(
        task="...",
        browser=browser,
        highlight_elements=False
    )
    • Adds viewport_expansion setting to control how much of the page is included in context, defaulting to slightly beyond the visible viewport; set it to the full page size to include all content.
    • Adds highlight_elements setting (set to False) to suppress element highlight overlays in the browser view.
  77. 0.1.17 Dec 10, 2024 · issue -371

    browser-use 0.1.17 enables multi-step output from the model for up to 10x faster form filling

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.17 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.17
    • Model can now output multiple steps at once, delivering up to 10x performance improvements in form-filling and similar multi-action workflows.
    • More robust CSS selectors for more reliable element targeting.
    • Expanded attribute inclusion in the DOM representation for richer context.
    • Improved handling of multiple concurrent browser instances.
  78. 0.1.16 Dec 3, 2024 · issue -371

    browser-use 0.1.16 enables parallel multi-agent browsing with multiple contexts per browser instance and trace/replay saving

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.16 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.16
    • Supports spinning up multiple browser contexts per browser instance, enabling parallel execution of as many agents as needed simultaneously.
    • Adds the ability to save traces and replays of browser agent sessions.
    • Improved DOM processing for more reliable page interaction.
    └──▷ BREAKING ON UPGRADE
    • !The controller is detached from browser state — code that previously coupled the controller to browser state will break.
    • !The browser service is split into separate browser and context components — any code referencing the unified browser service must be updated to address them separately.
  79. 0.1.12 Nov 28, 2024 · issue -372

    browser-use 0.1.12 adds save-and-replay of browser sessions so recorded tasks run without an LLM.

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.12 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.12
    • Adds save and reload of browser history, enabling a task recorded once with an LLM to be replayed repeatedly without LLM involvement.
    • Improves agent rerun capabilities to reliably re-execute workflows even when the DOM tree changes, using screen-based element matching.
  80. 0.1.7 Nov 22, 2024 · issue -372

    browser-use 0.1.7 migrates to Playwright and goes fully async from agent to DOM

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.7 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.7
    • Switches the entire stack from agent to DOM to async, enabling non-blocking browser automation throughout the library.
    • Replaces the previous browser backend with Playwright, improving speed and reliability for browser-driven workflows.
    • Supports both async and sync registered functions, letting callers mix execution models when extending the agent.
  81. 0.1.1 Nov 15, 2024 · issue -372

    browser-use 0.1.1 adds custom agent function calls, action history, and token cost approximations

    └──▷ GET THIS VERSION
    $ git clone --branch 0.1.1 https://github.com/browser-use/browser-use.git
    # already have the repo? check out this version:
    $ git checkout 0.1.1
    • Supports custom function calls registered alongside the agent's built-in browser functions, enabling practitioners to extend agent behavior with their own actions.
    • Adds a history of all agent actions, giving practitioners a full audit trail of what the agent did during a session.
    • Adds token cost approximations so practitioners can estimate LLM spend per agent run.
    • Improves HTML processing and XPath extraction for more reliable element targeting.
    • Highlights clickable elements with rounded overlays on screenshots for clearer visual feedback.
    +1 moreshow less
    • Introduces a testing library to support automated validation of agent workflows.
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →