Skip to content

DesktopClient

Source: src/services/desktop.ts

DesktopClient(transport: Leap0Transport)

Drives the desktop sandbox APIs for browser and GUI automation.

  • Leap0Error: If API calls, stream decoding, or response validation fail.
desktopUrl(sandbox: SandboxRef): string

Returns the base desktop URL for opening the remote UI in a browser.

  • sandbox: Sandbox ID or sandbox-like object.
  • The base desktop URL.
async displayInfo(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopDisplayInfo>

Returns display metadata for the desktop session.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Desktop display metadata.
async screen(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopDisplayInfo>

Returns the currently active desktop screen geometry.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Desktop screen geometry.
async resizeScreen(sandbox: SandboxRef, payload: DesktopSetScreenParams, options?: RequestOptions): Promise<DesktopDisplayInfo>

Resizes the desktop screen to the requested dimensions.

  • sandbox: Sandbox ID or sandbox-like object.
  • payload: Screen resize parameters.
  • options: Optional request settings such as timeout and query params.
  • Updated desktop display metadata.
async windows(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopWindow[]>

Lists windows visible on the desktop.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • The visible desktop windows.
async screenshot(sandbox: SandboxRef, params: DesktopScreenshotParams = {}, options?: RequestOptions): Promise<Uint8Array>

Captures a screenshot and returns raw image bytes.

  • sandbox: Sandbox ID or sandbox-like object.
  • params: Screenshot parameters.
  • options: Optional request settings such as timeout and query params.
  • Raw screenshot bytes.
async screenshotRegion(sandbox: SandboxRef, payload: DesktopScreenshotRegionParams, options?: RequestOptions): Promise<Uint8Array>

Captures a screenshot of a required rectangular region.

  • sandbox: Sandbox ID or sandbox-like object.
  • payload: Region screenshot parameters.
  • options: Optional request settings such as timeout and query params.
  • Raw screenshot bytes.
async pointerPosition(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopPointerPosition>

Returns the current pointer position.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • The current pointer position.
async movePointer(sandbox: SandboxRef, x: number, y: number, options?: RequestOptions): Promise<DesktopPointerPosition>

Moves the desktop pointer to a coordinate.

  • sandbox: Sandbox ID or sandbox-like object.
  • x: Horizontal coordinate.
  • y: Vertical coordinate.
  • options: Optional request settings such as timeout and query params.
  • The updated pointer position.
async click(sandbox: SandboxRef, params: DesktopClickParams = {}, options?: RequestOptions): Promise<DesktopPointerPosition>

Clicks the current pointer position or an explicit coordinate.

  • sandbox: Sandbox ID or sandbox-like object.
  • params: Click parameters.
  • options: Optional request settings such as timeout and query params.
  • The resulting pointer position.
async drag(sandbox: SandboxRef, payload: DesktopDragParams, options?: RequestOptions): Promise<DesktopPointerPosition>

Drags the pointer from one coordinate to another.

  • sandbox: Sandbox ID or sandbox-like object.
  • payload: Drag parameters.
  • options: Optional request settings such as timeout and query params.
  • The resulting pointer position.
async scroll(sandbox: SandboxRef, payload: DesktopScrollParams, options?: RequestOptions): Promise<DesktopPointerPosition>

Scrolls the desktop in the requested direction.

  • sandbox: Sandbox ID or sandbox-like object.
  • payload: Scroll parameters.
  • options: Optional request settings such as timeout and query params.
  • The resulting pointer position.
async typeText(sandbox: SandboxRef, text: string, options?: RequestOptions): Promise<boolean>

Types text into the active desktop input target.

  • sandbox: Sandbox ID or sandbox-like object.
  • text: Text to type.
  • options: Optional request settings such as timeout and query params.
  • Whether the action succeeded.
async pressKey(sandbox: SandboxRef, key: string, options?: RequestOptions): Promise<boolean>

Sends a single key press to the desktop.

  • sandbox: Sandbox ID or sandbox-like object.
  • key: Key to press.
  • options: Optional request settings such as timeout and query params.
  • Whether the action succeeded.
async hotkey(sandbox: SandboxRef, keys: string[], options?: RequestOptions): Promise<boolean>

Sends a key chord such as Ctrl+C or Cmd+Shift+P.

  • sandbox: Sandbox ID or sandbox-like object.
  • keys: Keys to press together.
  • options: Optional request settings such as timeout and query params.
  • Whether the action succeeded.
async recordingStatus(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopRecordingStatus>

Returns current desktop recording state.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • The current recording state.
async startRecording(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopRecordingStatus>

Starts desktop recording.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • The updated recording state.
async stopRecording(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopRecordingStatus>

Stops desktop recording.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • The updated recording state.
async recordings(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopRecordingSummary[]>

Lists recorded desktop sessions.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Desktop recording summaries.
async getRecording(sandbox: SandboxRef, id: string, options?: RequestOptions): Promise<DesktopRecordingSummary>

Fetches metadata for a single recording.

  • sandbox: Sandbox ID or sandbox-like object.
  • id: Recording identifier.
  • options: Optional request settings such as timeout and query params.
  • The recording metadata.
async downloadRecording(sandbox: SandboxRef, id: string, options?: RequestOptions): Promise<Uint8Array>

Downloads a recording and returns raw file bytes.

  • sandbox: Sandbox ID or sandbox-like object.
  • id: Recording identifier.
  • options: Optional request settings such as timeout and query params.
  • Raw recording file bytes.
async deleteRecording(sandbox: SandboxRef, id: string, options?: RequestOptions): Promise<void>

Deletes a recording by ID.

  • sandbox: Sandbox ID or sandbox-like object.
  • id: Recording identifier.
  • options: Optional request settings such as timeout and query params.
async health(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopHealth>

Returns desktop service health, accepting both healthy and degraded status codes.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Desktop health information.
async processStatus(sandbox: SandboxRef, options?: RequestOptions): Promise<DesktopProcessStatusList>

Returns aggregate status for desktop-managed processes.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Aggregate process status information.
async getProcess(sandbox: SandboxRef, name: string, options?: RequestOptions): Promise<DesktopProcessStatus>

Returns status for a named desktop-managed process.

  • sandbox: Sandbox ID or sandbox-like object.
  • name: Process name.
  • options: Optional request settings such as timeout and query params.
  • Status for the named process.
async restartProcess(sandbox: SandboxRef, name: string, options?: RequestOptions): Promise<DesktopProcessRestart>

Restarts a named desktop-managed process.

  • sandbox: Sandbox ID or sandbox-like object.
  • name: Process name.
  • options: Optional request settings such as timeout and query params.
  • The restart operation result.
async processLogs(sandbox: SandboxRef, name: string, options?: RequestOptions): Promise<DesktopProcessLogs>

Returns logs for a named desktop-managed process.

  • sandbox: Sandbox ID or sandbox-like object.
  • name: Process name.
  • options: Optional request settings such as timeout and query params.
  • Process logs.
async processErrors(sandbox: SandboxRef, name: string, options?: RequestOptions): Promise<DesktopProcessErrors>

Returns error logs for a named desktop-managed process.

  • sandbox: Sandbox ID or sandbox-like object.
  • name: Process name.
  • options: Optional request settings such as timeout and query params.
  • Process error logs.
async statusStream(sandbox: SandboxRef, options: RequestOptions = {}): AsyncIterable<DesktopStatusStreamEvent>

Streams desktop process status updates.

  • sandbox: Sandbox ID or sandbox-like object.
  • options: Optional request settings such as timeout and query params.
  • Leap0Error: If the stream returns malformed events or reports an error envelope.
async waitUntilReady(sandbox: SandboxRef, timeout = 60, options: RequestOptions = {}): Promise<void>

Waits until the desktop reports a running state or all tracked processes are up.

  • sandbox: Sandbox ID or sandbox-like object.
  • timeout: Timeout in seconds.
  • options: Optional request settings such as timeout and query params.
  • Leap0Error: If the desktop never becomes ready or a non-retryable error occurs.
await sandbox.desktop.waitUntilReady();