0.12.3

xlmnxp/blue-recorder0.12.3Mar 23, 2026by sauravpanda

AI Summary

Major release introducing Browser Use CLI 2.0, a new command-line tool built on Chrome DevTools Protocol instead of Playwright. The CLI is 2x faster with 50% fewer tokens and supports multiple browser modes including headless, real Chrome profiles, and cloud browsers.

Key Highlights

  • Browser Use CLI 2.0 with 2x speed and 50% fewer tokens
  • Built on Chrome DevTools Protocol (CDP) for 50ms latency
  • Supports multiple browser modes (headless, headed, real Chrome, cloud)
  • Works with any CLI coding agent (Claude Code, Codex, etc.)
  • Persistent background daemon for faster command execution

New Features

  • CLI commands for navigation, clicking, form input, and file uploads
  • Data extraction capabilities (title, HTML, text, screenshots)
  • Persistent Python session for complex automation
  • Tunnel functionality for exposing local development
  • Connect to running Chrome with existing profiles and extensions

Full Release Notes

## Browser Use CLI 2.0

The fastest browser automation for AI coding agents. 2x faster, 50% fewer tokens, and works with any CLI agent β€” Claude Code, Codex, and more.

Built on direct CDP (Chrome DevTools Protocol) instead of Playwright, giving ~50ms command latency via a persistent background daemon.

https://github.com/user-attachments/assets/a604895b-4ff9-47be-8161-56c48773f93b

### Install

```bash
# Install the CLI
curl -fsSL https://browser-use.com/cli/install.sh | bash

# Install the skill (for Claude Code / Codex)
mkdir -p ~/.claude/skills/browser-use
curl -o ~/.claude/skills/browser-use/SKILL.md \
  https://raw.githubusercontent.com/browser-use/browser-use/main/skills/browser-use/SKILL.md
```

> Works with **any CLI coding agent** β€” Claude Code, Codex, OpenClaw, and more. Just install the CLI and the skill.

---

### Quick Start

```bash
browser-use open https://example.com   # Navigate (starts browser if needed)
browser-use state                      # Returns clickable elements: [0] button "Submit", [1] input "Email"...
browser-use click 0                    # Click by index
browser-use input 3 "hello@example.com" # Click element, then type
browser-use type "search query"        # Type into focused element
browser-use screenshot page.png        # See the page
browser-use close                      # Done
```

The CLI uses element indices from `state` β€” no selectors to maintain. `browser-use state` is optimized for agents: fast, token-efficient, and returns every interactable element on the page.

---

### πŸ–₯️ Browser Modes

| Mode | Command | Description |
|------|---------|-------------|
| Headless | `browser-use open <url>` | Default, fast, invisible |
| Headed | `browser-use --headed open <url>` | Visible window for debugging |
| Real Chrome | `browser-use --profile "Default" open <url>` | Your Chrome with existing logins & cookies |
| Connect | `browser-use --connect open <url>` | Auto-discover and attach to running Chrome via CDP |
| CDP URL | `browser-use --cdp-url ws://localhost:9222/... open <url>` | Connect to any browser via CDP URL |
| ☁️ Cloud | `browser-use cloud connect` | Stealth cloud browser + proxies included |

> **Chrome only.** The CLI uses Chrome DevTools Protocol (CDP), which is Chrome/Chromium-specific. Safari and Firefox are not supported.

> **Cloud browser** requires `BROWSER_USE_API_KEY` from [cloud.browser-use.com](https://cloud.browser-use.com). Cloud gives you agent-ready browsers with anti-detection, proxies, and massive parallelization.

---

### πŸ”— Connect to Running Chrome

One of the most requested features β€” connect to your already-running Chrome with all your logins, cookies, and extensions:

```bash
# Auto-discover running Chrome's CDP endpoint
browser-use --connect open https://github.com

# Or use an existing Chrome profile directly
browser-use --profile "Default" open https://github.com    # Already logged in!
browser-use --profile "Profile 1" open https://gmail.com   # Named profile

# List available profiles
browser-use profile list
```

> **Tip for WSL2 users:** Add `browser-use --cdp-url` to your CLAUDE.md to control the host browser from WSL2.

---

### πŸ”€ Multiple Sessions

```bash
browser-use -s work open https://work.example.com
browser-use -s personal open https://gmail.com
browser-use sessions       # List all
browser-use close --all    # Close all
```

---

### πŸ“€ Forms, Uploads & Interactions

The CLI excels at form filling and complex interactions:

```bash
browser-use input 5 "user@example.com"   # Fill email field
browser-use input 6 "password123"        # Fill password
browser-use click 7                      # Submit button
browser-use select 3 "United States"     # Dropdown selection
browser-use upload 4 ./resume.pdf        # Upload a file
browser-use hover 2                      # Hover over element
browser-use keys "Enter"                 # Send keyboard keys
```

---

### πŸ“Š Data Extraction

```bash
browser-use get title                    # Page title
browser-use get html --selector "table"  # Scoped HTML
browser-use get text 5                   # Element text
browser-use eval "document.title"        # Run JavaScript
browser-use screenshot --full page.png   # Full-page screenshot
```

---

### 🐍 Persistent Python Session

```bash
browser-use python "browser.goto('https://example.com')"
browser-use python "items = browser.html"
browser-use python "print(len(items))"    # Variables persist across calls
browser-use python --vars                  # Show defined variables
```

---

### 🌐 Tunnels (Expose Local Dev)

```bash
browser-use tunnel 3000                   # β†’ https://abc.trycloudflare.com
browser-use open https://abc.trycloudflare.com
browser-use tunnel stop --all
```

---

### How It Works

The CLI doesn't use screenshots or image detection. Instead, it directly reads the browser's DOM tree via CDP and returns structured, token-efficient element data. Your coding agent processes the content; the CLI handles browser context and command execution. Every command shares the same battle-tested implementation as the browser-use Python library.

**Architecture:** A background daemon keeps the browser alive between commands, so there's no startup cost per command β€” just ~50ms latency.

---

### FAQ

**Does it work with Codex / other CLI agents?**
Yes β€” it works with any CLI coding agent. Install the CLI and the skill file.

**Can it run headless?**
Yes, headless is the default. Use `--headed` when you want to see the browser.

**How does it compare to the Claude Chrome extension?**
The Browser Use CLI is also free, faster and more token efficient, doesn't require a Chrome extension, and works with any CLI agent (not just Claude).

**How does it compare to Vercel Agent Browser?**
2x the speed for half the cost with half the commands.

**Does it work with Safari/Firefox?**
No β€” it uses Chrome DevTools Protocol (CDP), which is Chrome/Chromium only.

**Can it upload files?**
Yes! Use `browser-use upload <index> <path>`.

**What about security/pentesting?**
Yes β€” popular use cases include form filling, QA/pentesting, and general web automation.

---

## What's Changed
* docs: clarify open-source model prompt guidance by @tsubasakong in https://github.com/browser-use/browser-use/pull/4314
* Enhance ChatVercel model support and update API key handling by @AntonVishal in https://github.com/browser-use/browser-use/pull/4270
* fix(browser): prevent remove_highlights() from blocking screenshot ha… by @sauravpanda in https://github.com/browser-use/browser-use/pull/4381
* [feat] add litellm by @shanyu-strix in https://github.com/browser-use/browser-use/pull/4384
* added better data grounding in done action by @sauravpanda in https://github.com/browser-use/browser-use/pull/4416
* Fix(DOM): Exclude Password Field Values from DOM Snapshots sent to LLM by @zachdotai in https://github.com/browser-use/browser-use/pull/4388
* fix: prevent compaction hallucination by @sauravpanda in https://github.com/browser-use/browser-use/pull/4403
* docs: update CLOUD.md to reflect 5 free tasks offer by @lukasec in https://github.com/browser-use/browser-use/pull/4425
* fixed system prompt for data grounding by @sauravpanda in https://github.com/browser-use/browser-use/pull/4417
* fix image URLs stripped from extracted markdown by @sauravpanda in https://github.com/browser-use/browser-use/pull/4427
* Enhance User-Agent header handling in BrowserSession by @reformedot in https://github.com/browser-use/browser-use/pull/4431
* huge cli update by @ShawnPana in https://github.com/browser-use/browser-use/pull/4364
* rm code agent by @laithrw in https://github.com/browser-use/browser-use/pull/4438
* widen retry timing assertions so CI stops flaking by @laithrw in https://github.com/browser-use/browser-use/pull/4439
* fix: index elements inside cross-origin iframes reliably by @sauravpanda in https://github.com/browser-use/browser-use/pull/4452
* fix: auto-switch to new tabs after click and add checkbox toggle fall… by @sauravpanda in https://github.com/browser-use/browser-use/pull/4433
* docs: add browser-use-docs skill with cloud API and open-source .md files by @ShawnPana in https://github.com/browser-use/browser-use/pull/4450
* fix: extensions broken on Chrome 145+ (MV2 removal + flag changes) by @laithrw in https://github.com/browser-use/browser-use/pull/4466
* fix open security advisories: restrict workflow permissions, bump vulnerable deps, remove unused authlib by @laithrw in https://github.com/browser-use/browser-use/pull/4468
* add bu benchmark plot and cloud vs oss discussion in readme by @Alezander9 in https://github.com/browser-use/browser-use/pull/4454
* Update pyproject.toml by @sauravpanda in https://github.com/browser-use/browser-use/pull/4495

## New Contributors
* @tsubasakong made their first contribution in https://github.com/browser-use/browser-use/pull/4314
* @shanyu-strix made their first contribution in https://github.com/browser-use/browser-use/pull/4384
* @zachdotai made their first contribution in https://github.com/browser-use/browser-use/pull/4388

**Full Changelog**: https://github.com/browser-use/browser-use/compare/0.12.2...0.12.3