Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.machine0.io/llms.txt

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

new

Create a VM.
machine0 new <vm> [flags]
FlagDescriptionDefault
-s, --sizeVM sizesmall
-r, --regionus, uk, eu, asiaeu
-i, --imageImage slugubuntu-24-04-loaded
-k, --keySSH key nameDefault key
machine0 new my-vm
machine0 new my-vm --size large --region us
machine0 new my-gpu --size gpu-h100-1

ls

List all VMs.
machine0 ls
machine0 ls --json

get

Show VM details: specs, pricing, IP, SSH key, timestamps.
machine0 get <vm>

start

Start a stopped or suspended VM. Suspended VMs are recreated from their snapshot with the same name, size, region, and key. Requires sufficient wallet balance.
machine0 start <vm>

stop

Stop a running VM.
machine0 stop <vm>
Stopped VMs still incur charges. Suspend or destroy to stop billing.

reboot

machine0 reboot <vm>

suspend

Snapshot the VM, delete the cloud instance, pay only image storage.
machine0 suspend <vm> [flags]
FlagDescription
-y, --yesSkip confirmation
The VM moves to SUSPENDED. Start again with machine0 start. Destroying a suspended VM also deletes its snapshot.

rm

Destroy a VM.
machine0 rm [vm] [flags]
FlagDescription
-a, --allDestroy all VMs
-y, --yesSkip confirmation

ssh

SSH into a VM or run a remote command.
machine0 ssh <vm> [command...]
FlagDescriptionDefault
--usernameSSH usernameubuntu
machine0 ssh my-vm
machine0 ssh my-vm "docker ps"
machine0 ssh my-vm --username nix
If the VM is still starting, the CLI waits for SSH. Commands run under the remote user’s default non-login shell. For login-shell initialization, wrap with: machine0 ssh my-vm bash -lc 'your-command'.

update

Update a VM’s name or default SSH username.
machine0 update <vm> [flags]
FlagDescription
-n, --nameNew name (updates mac0.io endpoint)
--default-ssh-usernameDefault SSH username
-y, --yesSkip confirmation

provision

Provision a VM with a Nix flake or Ansible playbook.
machine0 provision <vm> <source> [flags]
FlagDescriptionDefault
--usernameSSH usernameauto
--dry-runPrint planned actions without executing
<source> can be a local directory, flake.nix path, remote flake ref, or .yml playbook. Append #profile to pick a specific NixOS configuration.
machine0 provision my-vm setup.yml
machine0 provision my-vm ./flake.nix#minimal
machine0 provision my-vm github:owner/repo#default
See Provisioning for details.

sizes

Show available VM sizes and pricing.
machine0 sizes [flags]
FlagDescription
-a, --allInclude out-of-stock sizes