Machines started from BMA’s desktop templates run a Linux desktop. People can watch it, take control from the agent, and hand it back; they can also attach a terminal. Everything runs over the daemon’s outbound connection.

Watch a session’s desktop (Managed Agents API)

GET /v1/sessions/{id}/desktop/stream?desktop_session_id=dsn_…&origin=… (BMA extension) mints a single-use, origin-bound watch ticket that expires in 15–120 seconds, so a browser never holds your API key:
The browser opens url with Sec-WebSocket-Protocol: bma.desktop.v1, bma.ticket.<ticket> from the same Origin. The URL never contains the ticket. bma-sdk wraps the call as getSessionDesktopStream / GetSessionDesktopStream / get_session_desktop_stream.

Desktop sessions and control (native API)

Control is enforced by the server: while a person holds control, the agent’s desktop actions are rejected. After a release or hand-back the agent re-observes the screen before continuing. Terminal sessions work the same way: POST /machines/{machineID}/terminal-sessions, then a connection ticket and a WebSocket attach with resumable output.

Status