Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/stratosphere-ve/core/llms.txt

Use this file to discover all available pages before exploring further.

Each virtual machine in Stratosphere Core is backed by a JSON file at vms/<vmname>.json. This file holds the VM’s identity metadata and declares its hardware and network configuration. The file is created automatically when you run the Create VM action (CLI option 8), though the current implementation creates an empty file — field population is planned for a future release.

Example configuration

{
  "vm": {
    "name": "example",
    "uuid": "example-id",
    "created_at": "1970-01-01T12:00:00Z"
  },
  "cpu": {
    "cores": 2,
    "threads": 2,
    "type": "host"
  },
  "memory": {
    "size_mb": 2048
  },
  "network": {
    "interfaces": [
      {
        "name": "eth0",
        "type": "nat",
        "mac": "auto"
      }
    ]
  },
  "storage": {
    "disks": [
      {
        "name": "example-disk",
        "path": "vms/example/example-disk-0.qcow2",
        "size_gb": 20,
        "format": "qcow2"
      }
    ]
  }
}

File naming

Config files follow the pattern vms/<vmname>.json. The VM name comes directly from what you enter at the CLI prompt when creating a VM. For example, a VM named web-server is stored at vms/web-server.json.

Schema reference

The vm object holds the VM’s core identity fields.
FieldTypeDescription
namestringHuman-readable VM name. Matches the file name.
uuidstringUnique identifier for this VM instance.
created_atstringISO 8601 timestamp of when the VM was created.
"vm": {
  "name": "example",
  "uuid": "example-id",
  "created_at": "1970-01-01T12:00:00Z"
}
The cpu object defines the virtual CPU allocation.
FieldTypeDescription
coresintNumber of virtual CPU cores allocated to the VM.
threadsintNumber of threads per core.
typestringCPU emulation type. Use "host" to pass through host CPU features.
"cpu": {
  "cores": 2,
  "threads": 2,
  "type": "host"
}
The memory object specifies how much RAM is allocated to the VM.
FieldTypeDescription
size_mbintAmount of RAM in megabytes (MB).
"memory": {
  "size_mb": 2048
}
2048 MB equals 2 GB. Set this to a multiple of 1024 for clean GB boundaries.
The network object contains a list of virtual network interfaces under the interfaces key.
FieldTypeDescription
namestringInterface name as seen inside the VM (e.g. eth0).
typestringNetwork mode. "nat" routes traffic through the host.
macstringMAC address. Set to "auto" to have one generated automatically.
"network": {
  "interfaces": [
    {
      "name": "eth0",
      "type": "nat",
      "mac": "auto"
    }
  ]
}
The storage object contains a list of virtual disks under the disks key.
FieldTypeDescription
namestringDisk label used to identify this disk.
pathstringFile path to the disk image, relative to the project root.
size_gbintDisk capacity in gigabytes.
formatstringDisk image format. "qcow2" is the standard QEMU copy-on-write format.
"storage": {
  "disks": [
    {
      "name": "example-disk",
      "path": "vms/example/example-disk-0.qcow2",
      "size_gb": 20,
      "format": "qcow2"
    }
  ]
}
VMCreate() currently creates an empty vms/<name>.json file without writing any fields into it. The schema above documents the intended format that will be populated by a future release.

Build docs developers (and LLMs) love