Skip to main content

Capture the initial frame

Inline screenshots.full() uses the raw binary HTTP route through the borrowed pooled client. It still returns a semantic Screenshot. The SDK validates the body, format, dimensions, size, digest, timestamp, coordinate space, cursor state, timing, and capture backend. Use full_bytes() when a low-level caller only needs encoded bytes. JSON and base64 routes remain available for REST and compatibility clients.

Choose screenshot storage

Set storage when you call screenshots.full(). Artifact and automatic storage use the structured JSON response. Read saved images through the artifact namespace.

Use the step frame after actions

The frame follows native input synchronization. Your application owns readiness. The experimental first-visual-change interface has a separate polling and XDamage contract.

Select a screenshot source

MSS is the production default.
X11-SHM requires a managed Image containing the native extension and worker. It applies to eligible cursor-hidden, full-resolution PNG requests at scale 1. Other formats and cursor-visible requests use the compatibility path. An X-server reply timeout fails closed. Every screenshot source depends on that display, so a fallback cannot prove safe capture while the display is unresponsive. A display restart clears generation-bound clients before the daemon proves readiness again. The fixed promotion campaign rejected X11-SHM as the default. Keep it as an explicit opt-in until a new campaign passes every latency and reliability gate.

Record the desktop

Stop a recording before the owner terminates the Sandbox. Keep screenshot bytes, recordings, and artifact references out of logs.