Skip to Content
Passage PlatformOverview

Passage Platform

Low-level session control with Playwright-style browser commands.

What is Platform?

Passage Platform gives you direct control over browser sessions. Your backend connects via WebSocket to a session actor, sends commands (navigate, click, type, evaluate), and yields to the user when human interaction is needed. The client SDK executes commands in a webview on the user’s device.

Architecture

The session actor is the core — a stateful process that relays commands between your backend (the “worker”) and the client SDK. Commands flow one at a time: your backend sends a command, the client executes it, and the result comes back. When the user needs to interact, you yield control and wait for conditions to be met.

┌─────────────┐ ┌────────────────┐ ┌─────────────────┐ │ Your Backend│ │ Session Actor │ │ Client SDK │ │ (worker) │ │ (stateful) │ │ (webview) │ └──────┬──────┘ └───────┬────────┘ └────────┬────────┘ │ │ │ │ worker.command │ server.command │ │───────────────────────►│──────────────────────────►│ │ │ │ │ │ client.command_response │ │ server.command_result │◄──────────────────────────│ │◄───────────────────────│ │ │ │ │ │ worker.yield_to_user │ server.set_interactive │ │───────────────────────►│──────────────────────────►│ │ │ │ │ │ ┌──────────────────┐ │ │ │ │ User interacts │ │ │ │ │ in webview │ │ │ │ └──────────────────┘ │ │ │ │ │ │ client.events (stream) │ │ server.command_result │◄──────────────────────────│ │◄───────────────────────│ (condition matched) │ │ │ │

Key concepts

  • Sessions — The session lifecycle and state machine
  • Commands — Playwright-style browser commands (navigate, click, type, evaluate)
  • Yield to User — Hand control to the user and wait for conditions
  • Events — Telemetry events streamed from the client

Protocol

For full wire-level details on the WebSocket protocol:

Get started

Last updated on