Skip to content

Local Mode Overview

In local mode, rayobrowse runs as a Docker container on your own machine or server. Your automation code connects to the daemon over CDP (Chrome DevTools Protocol) on localhost:9222.

┌─────────────────────────────────────────────┐
│ Your host machine │
│ │
│ ┌───────────────────┐ │
│ │ Your code │ │
│ │ (Playwright, │ │
│ │ Puppeteer, etc) │ │
│ └────────┬──────────┘ │
│ │ CDP WebSocket │
│ ▼ │
│ ┌───────────────────────────────────────┐ │
│ │ rayobrowse container (:9222) │ │
│ │ │ │
│ │ ┌─────────┐ ┌──────────────────┐ │ │
│ │ │ Daemon │ │ Fingerprint DB │ │ │
│ │ │ server │ │ (thousands of │ │ │
│ │ │ │ │ real profiles) │ │ │
│ │ └────┬────┘ └──────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────┐ │ │
│ │ │ Chromium (custom │ │ │
│ │ │ patched binary) │ │ │
│ │ └──────────────────┘ │ │
│ │ │ │
│ │ noVNC viewer (:6080) │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
ComponentWhere it livesWhat it does
Daemon serverInside Docker containerManages browser lifecycle, exposes /connect and REST API
Chromium binaryInside Docker containerCustom-patched Chromium with anti-detection modifications
Fingerprint engineInside Docker containerAssigns real-world device profiles to each session
Python/Node SDKInstalled via pip/npm on hostOptional lightweight client that talks to the daemon
noVNCInside Docker containerBrowser for watching sessions live on port 6080
MethodHow it worksBest for
/connect endpoint (recommended)Connect to ws://localhost:9222/connect?... — browser auto-created on connect, cleaned up on disconnect. No SDK needed.Quick scripts, any CDP client (Playwright, Puppeteer, Selenium), third-party tools (OpenClaw, Scrapy)
SDK create_browser()Install the SDK, call the function, get a CDP WebSocket URL backFine-grained control, multiple browsers, custom lifecycle management
  • Docker — the browser runs inside a container
  • Any CDP client (Playwright, Puppeteer, Selenium, etc.) — for automation
  • 2GB+ RAM available (~300MB per browser instance)

Works on Linux, Windows (native or WSL2), and macOS. Both x86_64 and ARM64 (Apple Silicon, AWS Graviton) are supported.