car-browser 0.53.0

Browser automation and perception pipeline for Common Agent Runtime
docs.rs failed to build car-browser-0.53.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: car-browser-0.55.0

car-browser

Browser automation and perception pipeline for the Common Agent Runtime.

What it does

Provides a backend-agnostic browser automation layer. The BrowserBackend trait abstracts over different browser engines (Tauri WebView, Chromium via chromiumoxide, or test mocks). The perception pipeline converts raw browser state (screenshots + accessibility trees) into structured UiMap data for agent consumption.

Usage

use car_browser::{BrowserBackend, BrowserToolExecutor};

// Implement BrowserBackend for your engine, then register tools
let executor = BrowserToolExecutor::new(backend);
// Tools: browse_navigate, browse_click, browse_type, browse_scroll, browse_screenshot

Backends

ChromiumBackend (chromiumoxide-based headless Chrome over CDP) is always available -- there are no cargo feature flags to enable. The chromiumoxide dependency is compiled unconditionally on every build.

Provisioned Chrome checks

The ordinary car-browser suite is hermetic and does not launch Chrome. On a machine with Chrome installed, run the ignored integration lanes serially; they serve checked-in HTML over loopback and make no public-web request:

cargo test -p car-browser --test headless -- --ignored --test-threads=1
cargo test -p car-browser --test live_chrome -- --ignored --test-threads=1 --nocapture

The live perception lane always checks deterministic icon classification. To require its OCR contracts too, provision a system OCR backend and set the exact test opt-in; the test fails closed when OCR is unavailable:

CAR_TEST_BROWSER_OCR=1 cargo test -p car-browser --test live_chrome \
  -- --ignored --test-threads=1 --nocapture

Part of CAR -- see the main repo for full documentation.