Runloop · Schema

Runloop Launch Parameters

LaunchParameters enable you to customize the resources available to your Devbox as well as the environment set up that should be completed before the Devbox is marked as 'running'.

AIAI AgentsCoding AgentsSandboxesDevboxesCode ExecutionEvaluationBenchmarksSWE-BenchMCPSnapshotsmicroVMEnterpriseSOC 2

Properties

Name Type Description
launch_commands array Set of commands to be run at launch time, before the entrypoint process is run.
resource_size_request object Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM,
available_ports array [Deprecated] A list of ports to make available on the Devbox. This field is ignored.
keep_alive_time_seconds integer Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds).
after_idle object Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value.
custom_cpu_cores integer Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16.
custom_gb_memory integer Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB.
custom_disk_size integer Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB.
architecture object The target architecture for the Devbox. If unset, defaults to x86_64.
user_parameters object Specify the user for execution on Devbox. If not set, default `user` will be used.
required_services array A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started.
network_policy_id string (Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly
lifecycle object Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match) and resume triggers via lifecy
View JSON Schema on GitHub

JSON Schema

runloop-launch-parameters-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/runloop-ai/main/json-schema/runloop-launch-parameters-schema.json",
  "title": "Runloop Launch Parameters",
  "description": "LaunchParameters enable you to customize the resources available to your Devbox as well as the environment set up that should be completed before the Devbox is marked as 'running'.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "launch_commands": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Set of commands to be run at launch time, before the entrypoint process is run."
    },
    "resource_size_request": {
      "$ref": "#/$defs/ResourceSize",
      "nullable": true,
      "description": "Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM, 8 GiB disk. LARGE: 2 vCPU, 8 GiB RAM, 16 GiB disk. X_LARGE: 4 vCPU, 16 GiB RAM, 16 GiB disk. XX_LARGE: 8 vCPU, 32 GiB RAM, 16 GiB disk. CUSTOM_SIZE: set custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size."
    },
    "available_ports": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "nullable": true,
      "description": "[Deprecated] A list of ports to make available on the Devbox. This field is ignored."
    },
    "keep_alive_time_seconds": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds)."
    },
    "after_idle": {
      "$ref": "#/$defs/IdleConfigurationParameters",
      "nullable": true,
      "description": "Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value. Use lifecycle.after_idle instead."
    },
    "custom_cpu_cores": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "description": "Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16."
    },
    "custom_gb_memory": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "description": "Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB."
    },
    "custom_disk_size": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "description": "Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB."
    },
    "architecture": {
      "$ref": "#/$defs/Architecture",
      "nullable": true,
      "description": "The target architecture for the Devbox. If unset, defaults to x86_64."
    },
    "user_parameters": {
      "$ref": "#/$defs/UserParameters",
      "nullable": true,
      "description": "Specify the user for execution on Devbox. If not set, default `user` will be used."
    },
    "required_services": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started."
    },
    "network_policy_id": {
      "type": "string",
      "nullable": true,
      "description": "(Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly overridden."
    },
    "lifecycle": {
      "$ref": "#/$defs/LifecycleConfigurationParameters",
      "nullable": true,
      "description": "Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match) and resume triggers via lifecycle.resume_triggers."
    }
  },
  "$defs": {
    "ResourceSize": {
      "type": "string",
      "enum": [
        "X_SMALL",
        "SMALL",
        "MEDIUM",
        "LARGE",
        "X_LARGE",
        "XX_LARGE",
        "CUSTOM_SIZE"
      ],
      "description": "The size of the Devbox resources for Runloop to allocate.\n\nX_SMALL: 0.5 cpu x 1GiB memory x 4GiB disk\nSMALL: 1 cpu x 2GiB memory x 4GiB disk\nMEDIUM: 2 cpu x 4GiB memory x 8GiB disk\nLARGE: 2 cpu x 8GiB memory x 16GiB disk\nX_LARGE: 4 cpu x 16GiB memory x 16GiB disk\nXX_LARGE: 8 cpu x 32GiB memory x 16GiB disk\nCUSTOM_SIZE: To choose a custom size, set this enum and also the custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size in launch parameters. CPU must be 0.5, 1, or a multiple of 2 (max 16). Memory must be 1 or a multiple of 2 (max 64GiB). Disk must be a multiple of 2 (min 2GiB, max 64GiB). The cpu:memory ratio must be between 1:2 and 1:8 inclusive.\n",
      "x-enum-descriptions": {
        "X_SMALL": "0.5 cpu x 1GiB memory x 4GiB disk",
        "SMALL": "1 cpu x 2GiB memory x 4GiB disk",
        "MEDIUM": "2 cpu x 4GiB memory x 8GiB disk",
        "LARGE": "2 cpu x 8GiB memory x 16GiB disk",
        "X_LARGE": "4 cpu x 16GiB memory x 16GiB disk",
        "XX_LARGE": "8 cpu x 32GiB memory x 16GiB disk",
        "CUSTOM_SIZE": "To choose a custom size, set this enum and also the custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size in launch parameters. CPU must be 0.5, 1, or a multiple of 2 (max 16). Memory must be 1 or a multiple of 2 (max 64GiB). Disk must be a multiple of 2 (min 2GiB, max 64GiB). The cpu:memory ratio must be between 1:2 and 1:8 inclusive."
      }
    },
    "IdleAction": {
      "type": "string",
      "enum": [
        "shutdown",
        "suspend"
      ],
      "description": "Action to take after Devbox idle timer is triggered.\n\nshutdown: Shutdown the Devbox.\nsuspend: Suspend the Devbox.\n",
      "x-enum-descriptions": {
        "shutdown": "Shutdown the Devbox.",
        "suspend": "Suspend the Devbox."
      }
    },
    "IdleConfigurationParameters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idle_time_seconds": {
          "type": "integer",
          "format": "int32",
          "description": "After idle_time_seconds, on_idle action will be taken."
        },
        "on_idle": {
          "$ref": "#/$defs/IdleAction",
          "description": "Action to take after Devbox becomes idle."
        }
      },
      "required": [
        "idle_time_seconds",
        "on_idle"
      ]
    },
    "Architecture": {
      "type": "string",
      "enum": [
        "x86_64",
        "arm64"
      ]
    },
    "UserParameters": {
      "type": "object",
      "additionalProperties": false,
      "description": "Configuration for the Linux user in the Devbox environment.",
      "properties": {
        "username": {
          "type": "string",
          "description": "Username for the Linux user."
        },
        "uid": {
          "type": "integer",
          "format": "int32",
          "description": "User ID (UID) for the Linux user. Must be a non-negative integer."
        }
      },
      "required": [
        "username",
        "uid"
      ]
    },
    "ResumeTriggers": {
      "type": "object",
      "additionalProperties": false,
      "description": "Triggers that can resume a suspended Devbox.",
      "properties": {
        "http": {
          "type": "boolean",
          "nullable": true,
          "description": "When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume."
        },
        "axon_event": {
          "type": "boolean",
          "nullable": true,
          "description": "When true, axon events targeting a suspended Devbox will trigger a resume."
        }
      }
    },
    "LifecycleConfigurationParameters": {
      "type": "object",
      "additionalProperties": false,
      "description": "Lifecycle configuration for Devbox idle and resume behavior. Configure idle policy via after_idle and resume triggers via resume_triggers.",
      "properties": {
        "after_idle": {
          "$ref": "#/$defs/IdleConfigurationParameters",
          "nullable": true,
          "description": "Configure Devbox lifecycle based on idle activity. If both this and the top-level after_idle are set, they must have the same value. Prefer this field for new integrations."
        },
        "resume_triggers": {
          "$ref": "#/$defs/ResumeTriggers",
          "nullable": true,
          "description": "Triggers that can resume a suspended Devbox."
        }
      }
    }
  }
}