> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ns.rocks/llms.txt
> Use this file to discover all available pages before exploring further.

# Get desktop automation capabilities



## OpenAPI

````yaml /openapi.yaml get /v1/machines/{id}/desktop/capabilities
openapi: 3.1.0
info:
  title: Nullspace API
  version: 0.1.0
  description: |
    Cloud machine platform for AI agents. Create on-demand microVMs,
    execute commands, manage files, automate desktop environments,
    and stream output over WebSocket.
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://api.13-215-85-171.sslip.io
    description: Private beta
  - url: https://nullspace.example
    description: Self-hosted single-host owned-domain
  - url: http://localhost
    description: Self-hosted single-host localhost/no-domain via Caddy
  - url: http://localhost:3000
    description: Local development direct API
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Public process-liveness check (no auth required)
  - name: Machines
    description: Machine lifecycle, execution, and process management
  - name: Files
    description: Filesystem operations within a machine
  - name: Git
    description: First-class structured git operations within a machine
  - name: Desktop
    description: Desktop automation (mouse, keyboard, screenshots)
  - name: Recording
    description: Screen recording management
  - name: PTY
    description: Pseudo-terminal session management
  - name: Templates
    description: Machine template management
  - name: Agent Deployments
    description: Named, versioned agent deployment control plane
  - name: Volumes
    description: Persistent volume control plane and attached volume actions
  - name: WebSocket
    description: Streaming execution and PTY over WebSocket
  - name: Monitor
    description: In-repo WebSocket stream for machine health, metrics, and process updates
  - name: API Keys
    description: Runtime API key metadata and dormant self-serve key management
  - name: Account
    description: Dormant Supabase-session account profile, export, and deletion routes
  - name: Admin
    description: Supabase-session operator console APIs for account support
  - name: Auth
    description: Dormant self-serve Auth proxy routes gated by deployment config
  - name: Code
    description: Stateful code execution via Jupyter kernels (Code Interpreter)
  - name: Internal Operations
    description: Operator-only internal API surfaces; not part of the public SDK contract
paths:
  /v1/machines/{id}/desktop/capabilities:
    parameters:
      - $ref: '#/components/parameters/MachineId'
    get:
      tags:
        - Desktop
      summary: Get desktop automation capabilities
      operationId: desktopCapabilities
      responses:
        '200':
          description: Desktop capability matrix
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesktopCapabilities'
components:
  parameters:
    MachineId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: Machine ID (e.g. mch_a1b2c3d4)
  schemas:
    DesktopCapabilities:
      type: object
      required:
        - version
        - capture
        - input
        - display
        - windows
        - launch
        - open
        - clipboard
        - streaming
        - recording
      properties:
        version:
          type: integer
          enum:
            - 2
        capture:
          $ref: '#/components/schemas/DesktopCaptureCapabilities'
        input:
          $ref: '#/components/schemas/DesktopInputCapabilities'
        display:
          $ref: '#/components/schemas/DesktopDisplayCapabilities'
        windows:
          $ref: '#/components/schemas/DesktopWindowCapabilities'
        launch:
          $ref: '#/components/schemas/DesktopLaunchCapabilities'
        open:
          $ref: '#/components/schemas/DesktopOpenCapabilities'
        clipboard:
          $ref: '#/components/schemas/DesktopClipboardCapabilities'
        streaming:
          $ref: '#/components/schemas/DesktopStreamingCapabilities'
        recording:
          $ref: '#/components/schemas/DesktopRecordingCapabilities'
    DesktopCaptureCapabilities:
      type: object
      required:
        - compressed_formats
        - region
        - cursor_overlay
      properties:
        compressed_formats:
          type: array
          items:
            type: string
        region:
          type: boolean
        cursor_overlay:
          type: boolean
    DesktopInputCapabilities:
      type: object
      required:
        - mouse
        - keyboard
      properties:
        mouse:
          type: boolean
        keyboard:
          type: boolean
    DesktopDisplayCapabilities:
      type: object
      required:
        - topology_model
        - multi_monitor
        - primary_monitor
      properties:
        topology_model:
          type: string
          enum:
            - xrandr
        multi_monitor:
          type: boolean
        primary_monitor:
          type: boolean
    DesktopWindowCapabilities:
      type: object
      required:
        - class_name
        - active
        - pid
        - desktop
        - desktop_name
      properties:
        class_name:
          type: boolean
        active:
          type: boolean
        pid:
          type: boolean
        desktop:
          type: boolean
        desktop_name:
          type: boolean
    DesktopLaunchCapabilities:
      type: object
      required:
        - modes
        - uri_argument_for_desktop_entry
      properties:
        modes:
          type: array
          items:
            type: string
            enum:
              - executable
              - desktop_entry
        uri_argument_for_desktop_entry:
          type: boolean
    DesktopOpenCapabilities:
      type: object
      required:
        - target_kinds
      properties:
        target_kinds:
          type: array
          items:
            type: string
            enum:
              - path
              - file_url
              - uri
    DesktopClipboardCapabilities:
      type: object
      required:
        - text_read
        - text_write
        - viewer_panel
        - view_only_copy
      properties:
        text_read:
          type: boolean
        text_write:
          type: boolean
        viewer_panel:
          type: boolean
        view_only_copy:
          type: boolean
    DesktopStreamingCapabilities:
      type: object
      required:
        - raw_vnc
        - managed_viewer
        - view_only
        - default_surface
        - raw_vnc_role
        - raw_vnc_mode
        - raw_vnc_auth
        - managed_viewer_auth_required
      properties:
        raw_vnc:
          type: boolean
          description: Raw `vnc://` connection info is available.
        managed_viewer:
          type: boolean
          description: >-
            The managed browser viewer flow is available. In edge mode the
            production viewer origin is edge-owned; `api_compat` is limited to
            local, single-host OSS, or explicitly gated operator-debug
            compatibility.
        view_only:
          type: boolean
          description: >-
            Managed viewer sessions can be started in view-only mode with
            server-side RFB input filtering.
        default_surface:
          type: string
          enum:
            - managed_viewer
          description: The preferred desktop viewing surface for product and SDK guidance.
        raw_vnc_role:
          type: string
          enum:
            - disabled
            - operator_only
            - escape_hatch
          description: >-
            The intended role of the raw VNC route in the public product
            surface.
        raw_vnc_mode:
          type: string
          enum:
            - disabled
            - operator
            - public
          description: >-
            API policy mode controlling whether raw VNC is disabled,
            operator-only, or publicly exposed.
        raw_vnc_auth:
          type: string
          enum:
            - none
          description: >-
            Guest-side raw VNC authentication mode for the built-in desktop
            templates.
        managed_viewer_auth_required:
          type: boolean
          description: >-
            The managed browser viewer requires the short-lived `auth` query
            token.
    DesktopRecordingCapabilities:
      type: object
      required:
        - basic
      properties:
        basic:
          type: boolean
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token

````