Skip to content

Browser

The browser launches Chromium on the host, captures screenshots, and streams them to the client as a live image feed.

It also includes a lightweight remote DevTools surface inside the client for browser storage, network traffic, console output, and DOM inspection.

  1. The daemon launches headless Chromium via the Chrome DevTools Protocol (CDP)
  2. It navigates to the target URL and captures screenshots at a configurable interval (default 900ms)
  3. Screenshots are pushed to the client over the live event WebSocket
  4. The client can send interaction commands back to the headless browser

The browser supports remote interaction through CDP:

ActionHow it works
Tap / clickDispatches mousePressed + mouseReleased events at the tapped coordinates
ScrollSends mouseWheel events with deltaX / deltaY
Text inputInserts text via Input.insertText
Special keysSends key events (Enter, Backspace, Arrow keys, etc.)
NavigationBack, forward, and reload via Page.getNavigationHistory and Page.reload
ResizeUpdates the viewport dimensions dynamically
  • Low-bandwidth environments where downloading full page payloads is slow
  • Heavy pages with lots of JS, images, and fonts where you only need a visual
  • Quick checks without setting up anything else
  • Verifying what a headless browser renders on the host
  • Inspecting cookies, local storage, session storage, and IndexedDB schema from a mobile device
  • Inspecting DOM structure, attributes, and selected element styles from a mobile device
  • Reviewing request traffic and console output without opening a desktop browser

The browser exposes a compact remote DevTools panel in the client:

PanelWhat you can do
ConsoleView recent console output, exceptions, and browser log entries
NetworkInspect requests, response metadata, websocket traffic, and request/response bodies when available
StorageView cookies, localStorage, sessionStorage, quota usage, IndexedDB database schema, and clear or edit supported storage entries
InspectorBrowse a partial DOM tree, pick elements from the live preview, and inspect attributes, inline styles, computed styles, and layout box geometry
  • Lower fidelity than a real browser (compressed JPEG screenshots, not native rendering)
  • Frame updates are periodic, not real-time (default every 900ms)
  • The browser runs on the host, so it sees the host’s network and user-agent
  • Built-in DevTools are lighter than full Chrome DevTools and still omit advanced features like full CSS rule tracing, layout tooling, and a complete network waterfall
  • Only supports HTTP/HTTPS targets