Synopsis
Description
Thecreate command spins up a new VM, waits for it to be SSH-ready, and leaves it running. You can give it a name or let SmolVM generate one automatically. Use smolvm ssh to connect to the VM afterwards.
Options
A unique identifier for the VM. If you skip this flag, SmolVM auto-generates a name like
vm-a1b2c3d4. Use this name to reference the VM in other commands like smolvm ssh and smolvm stop.Guest operating system. Choices:
alpine, ubuntu. Alpine is smaller and boots faster. Ubuntu provides a more complete Linux environment with apt.Guest memory in MiB.
Root filesystem size in MiB.
Backend override. Choices:
auto, firecracker, qemu. The auto option selects the best backend for your platform.Seconds to wait for VM boot and SSH readiness.
Examples
Create a VM with an auto-generated name
vm-a1b2c3d4) and prints it after the VM is ready. You can then use that name with smolvm ssh and other commands.
Example output:
Create a VM with a custom name
Create a VM with more resources
Create an Ubuntu VM
apt and a more familiar Linux environment. They take slightly longer to boot than Alpine.
Specify a backend
Increase boot timeout for slower systems
What happens during create
- SmolVM configures a new VM with the specified settings (or defaults)
- If you did not provide
--name, SmolVM generates a unique identifier - The VM process starts with the selected backend
- SmolVM waits for the VM to boot and become SSH-ready
- Once ready, the VM stays running in the background
smolvm ssh <name> or use the Python SDK with SmolVM.from_id("<name>").
Exit codes
| Code | Description |
|---|---|
0 | Success - VM created and SSH-ready |
1 | Error - VM creation or boot failed |
Related commands
smolvm ssh- Connect to the VM after creationsmolvm list- See all running VMssmolvm env- Set environment variables on the VMsmolvm cleanup- Clean up VMs when done