new
Create a VM.
machine0 new <vm> [flags]
Alias: create
| Flag | Description | Default |
|---|
-s, --size <size> | VM size | small |
-r, --region <region> | Region (us, uk, eu, asia) | eu |
-i, --image <image> | Image slug | ubuntu-24-04 |
-k, --key <name> | SSH key name | Default key |
--enable-proxy <bool> | HTTPS proxy at <vm>.mac0.io | true |
machine0 new my-vm
machine0 new my-vm --size large --region us
machine0 new my-gpu --size gpu-h100-1
List all VMs.
Alias: list
get
Show VM details.
Accepts a VM name or ID. Shows hardware specs, pricing, IP, SSH key, and timestamps.
start
Start a stopped VM.
stop
Stop a running VM.
Stopped VMs still incur charges. Destroy a VM to stop billing.
reboot
Reboot a running VM.
Destroy a VM.
Alias: destroy
| Flag | Description |
|---|
-a, --all | Destroy all VMs |
-y, --yes | Skip confirmation prompt |
machine0 rm my-vm
machine0 rm my-vm --yes
machine0 rm --all
ssh
SSH into a VM or run a remote command.
machine0 ssh <vm> [command...]
| Flag | Description | Default |
|---|
--username <user> | SSH username | ubuntu |
machine0 ssh my-vm
machine0 ssh my-vm "docker ps"
machine0 ssh my-vm --username root "whoami"
If the VM is still starting, the CLI waits for SSH to become available.
update
Update a VM’s name or proxy setting.
machine0 update <vm> [flags]
| Flag | Description |
|---|
-n, --name <name> | New name |
--enable-proxy <bool> | Enable/disable HTTPS proxy |
machine0 update my-vm --name new-name
machine0 update my-vm --enable-proxy false
provision
Run an Ansible playbook on a VM.
machine0 provision <vm> <playbook> [flags]
| Flag | Description | Default |
|---|
--username <user> | SSH username | ubuntu |
machine0 provision my-vm setup.yml
The CLI waits for SSH availability before running the playbook.
sizes
Show available VM sizes and pricing.
| Flag | Description |
|---|
-a, --all | Include out-of-stock sizes |