@ulpi/browse

Runtimes & Cloud Providers

Switch browser engines (Playwright, Rebrowser, LightPanda, Chrome) or connect to cloud browsers (Browserbase, Browserless).

Browser Runtimes

Browse supports multiple browser engines. Switch at any time with --runtime:

browse --runtime playwright goto https://example.com   # Default
browse --runtime rebrowser goto https://example.com     # Stealth mode
browse --runtime lightpanda goto https://example.com    # Lightweight

Or set permanently in browse.json:

{
  "runtime": "rebrowser"
}

Playwright (default)

The default runtime. Uses Playwright's bundled Chromium. Best compatibility, all features supported.

  • Full feature support (121 commands)
  • Auto-installed Chromium
  • Most tested and stable

Rebrowser (stealth)

Uses Rebrowser — a patched Chromium that evades bot detection. Use when websites block standard headless browsers.

  • Passes bot detection (Cloudflare, DataDome, etc.)
  • Same API as Playwright
  • Slight startup overhead for patching
browse --runtime rebrowser goto https://protected-site.com

LightPanda

Uses LightPanda — a lightweight browser engine written in Zig. Extremely fast for simple page loads but limited JavaScript support.

  • 10x faster page loads for static content
  • Minimal memory usage (~10MB vs ~200MB)
  • Limited: no complex SPAs, no video, no WebGL
browse --runtime lightpanda goto https://docs.example.com
browse --runtime lightpanda text   # Extract text from static pages

Chrome (system)

Uses your system Chrome installation with its real user profile — cookies, extensions, and login sessions are preserved.

  • Real user profile (cookies, extensions, bookmarks)
  • Best for sites that require existing login sessions
  • Useful for cookie import workflows
  • Runs in headed mode by default
# Quick shortcut (implies --headed and --runtime chrome)
browse --chrome goto https://mail.google.com

# Or explicitly
browse --runtime chrome --headed goto https://mail.google.com

Chrome is auto-discovered on your system. Override the path if needed:

export BROWSE_CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

Supports Chrome, Arc, Brave, and Edge on macOS. Combine with cookie-import to copy cookies from any installed Chromium browser:

browse cookie-import chrome --domain .github.com

Cloud Providers

Run browse commands against cloud-hosted browsers instead of local Chromium. Useful for CI/CD, serverless, or when you can't install Chromium locally.

Browserbase

# Save API key (encrypted, stored in .browse/providers/)
browse provider save browserbase <your-api-key>

# Use cloud browser
browse --provider browserbase goto https://example.com
browse --provider browserbase screenshot page.png

Browserless

# Save token (encrypted)
browse provider save browserless <your-token>

# Use cloud browser
browse --provider browserless goto https://example.com

Managing Providers

browse provider list              # List saved providers
browse provider delete browserbase  # Remove saved credentials

API keys are encrypted at rest in .browse/providers/ — never visible to agents.

Local vs Cloud

LocalCloud
Latency~100ms~300-500ms (network)
Setupnpm install -gAPI key required
CostFreePay per usage
Best forDevelopment, testingCI/CD, serverless
ChromiumAuto-installedCloud-managed

On this page