Runs vs VMs
Use a VM when:- You need an interactive shell — for debugging, exploration, or development
- Your environment is hard to express as a one-shot script (custom drivers, system packages, manual setup)
- You want to keep state between sessions (model weights, datasets, conda envs)
- You need to SSH in from another tool (a remote VS Code session, a port-forwarded service, a profiling tool)
- The work is a one-shot job that has a defined start and end
- You don’t need the machine after it finishes
- You want to be billed only for active execution time
Lifecycle
VMs go through these states:pending / provisioning → running / ready → stopped / terminated / error
A VM is billable from the moment it enters running, regardless of whether you’ve connected. Terminating it ends both the VM and the billing.
Storage on VMs
Each VM is provisioned with at least 100 GB of local disk, used for the OS, your code, and anything you write while the VM is running. This disk is wiped on termination — VMs are not durable storage. Your account’s S3 bucket is not auto-mounted on VMs (unlike Docker runs, where it’s mounted at/mnt/s3 by default). If you want bucket access from a VM, mount it yourself with s3fs, mc, rclone, or any other S3 client using credentials from POST /storage/credentials — see Storage.
Attaching extra persistent volumes to a VM is not currently supported through the API; the dashboard exposes a placeholder for this feature.
Connecting
Once a VM isready, fetch its IP and SSH in using the key you supplied at launch:
The default SSH user depends on the image. If
root doesn’t work, the VM detail in the dashboard or the API response will list the right username.CLI
lyceum vm availability prints a table of hardware profiles you can launch right now, their per-GPU hourly price, and which GPU-count configurations (1×, 2×, 4×, 8×) are currently supported. Use it before lyceum vm start to confirm capacity.
REST API
| Method | Endpoint | Purpose |
|---|---|---|
GET | /vms/list | List all your VMs |
GET | /vms/{vm_id}/status | Status, IP, and connection info |
GET | /vms/availability | Check availability for a hardware profile |
POST | /vms/create | Provision a new VM |
DELETE | /vms/{vm_id} | Terminate a VM |
Launch an instance
Provision a new GPU VM with your SSH key.

