Skip to main content
Control a Chromium browser for web navigation, element interaction and content extraction. Supports JavaScript-rendered pages and uses a compact DOM snapshot so the Agent can efficiently understand page structure.

Installation

  1. Supported on Ubuntu 20.04+, Debian 10+, macOS and Windows. Older systems such as Ubuntu 18.04 will fall back to a compatible version automatically.
  2. The browser tool has heavy dependencies (~300MB) and is optional. For lightweight web content retrieval, use the web_fetch tool.
Desktop client users: playwright is bundled in the installer, no separate install needed. On first use of the browser tool:
  • If Google Chrome / Edge is installed, it drives the system browser directly with no download (recommended);
  • Otherwise, send /install-browser in chat to download a lightweight browser engine into ~/.cow.

Workflow

A typical browser workflow for the Agent:
  1. navigate — Open the target URL
  2. snapshot — Get a compact DOM with auto-numbered interactive elements (ref)
  3. click / fill / select — Operate elements by ref
  4. snapshot — Snapshot again to verify the result

Supported Actions

Use Cases

  • Access a URL to retrieve dynamic page content
  • Fill in forms and log in
  • Operate web elements (click buttons, select options, etc.)
  • Verify the result of a deployed web page
  • Scrape content that requires JS rendering

Run Mode

The browser picks a mode based on the runtime environment: You can override it in config.json:

Browser Engine

The browser engine is selected automatically, no configuration needed:
  1. If Google Chrome / Edge is detected on the machine, it drives the system browser directly, with no Chromium download, using real browser fingerprints;
  2. Otherwise it falls back to the Chromium engine downloaded into ~/.cow via install-browser.
Both use the persistent login below and behave identically.

Persistent Login

Log in to a target site once and the Agent can keep using it. Two ways are supported:

Option 1: Persistent mode (default)

Works out of the box. Login state is saved under ~/.cow/browser_profile. No configuration needed. To disable persistence and start with a clean environment every time:

Option 2: CDP mode (attach to real Chrome)

Have the Agent connect to a separately launched real Chrome (instead of the Chromium bundled with Playwright) for full browser fingerprints. Useful for sites with strict bot detection. Launch Chrome with a debugging port and a dedicated user data directory:
Then point the Agent at the endpoint in config.json:
Chrome 137+ requires --remote-debugging-port to be paired with a dedicated --user-data-dir. As a result, the CDP-launched Chrome cannot directly reuse the login state of your daily Chrome; you’ll need to log in once inside this dedicated profile.