@machine0/cli
v1.0.90
Published
Cloud VMs from the CLI.
Readme
machine0 is a CLI for creating, provisioning, and snapshotting persistent cloud VMs. One command gives you a VM with dedicated CPU/RAM, a static IP, and an HTTPS endpoint. Provision declaratively with NixOS flakes or Ubuntu with Ansible.
Links
Features
- NixOS with Flakes — provision VMs declaratively. Deterministic builds, one-command rollbacks, no drift.
- Or Ubuntu with Ansible — pre-installed images with Docker, Node, Python, and popular agents. Ansible provisioning supported.
- Dedicated resources — real KVM/QEMU. 1 to 60 vCPU, up to 240 GB RAM. Not shared.
- GPUs — H100, H200, MI300X, L40S, RTX 4000 Ada, W6000 Ada. Single or 8x configurations. From $0.836/hr.
- Suspend & resume — snapshot a VM's state, stop billing, restore later. Pay only image storage while suspended.
- Static IPs & HTTPS — every VM gets a public IP and authenticated HTTPS at
<vm>.mac0.io. - Snapshots & images — snapshot any VM into a reusable image. Version, promote, and set as default for new VMs.
- File sync —
sync pushandsync pullwith--watchfor continuous sync. - CLI + MCP — every command has
--json. A remote MCP server is also available for programmatic control. - 4 regions — New York, London, Amsterdam, Singapore. Same pricing everywhere.
- Per-minute billing — no commitments, refundable credits. A small VM runs 24/7 for ~$9/mo.
- 99.99% uptime SLA — instance-level.
- Firewall — ufw enabled by default. Ports 22, 80, 443 open.
Usage
USAGE
machine0 <command> [flags]
COMMANDS
ls [flags] List VMs
get <vm> [flags] Show VM details
new <vm> [flags] Create a VM
update <vm> [flags] Update a VM
start <vm> Start a stopped or suspended VM
stop <vm> Stop a VM
reboot <vm> Reboot a VM
suspend <vm> [flags] Suspend a VM (snapshot, delete, pay only for storage). Resume later.
rm [vm] [flags] Remove a VM (--all for all)
ssh <vm> [command] [flags] SSH into a VM or run a command
provision <vm> <source> [flags] Provision a VM (NixOS flake reference or Ansible playbook .yml)
sizes [flags] Show available VM sizes and pricing
ACCOUNT
whoami [flags] Show account details
login Log in
logout Log out
billing [month] [flags] Show usage breakdown for a month (default: current month)
topup [flags] Top up your wallet balance
IMAGES
images ls [flags] List images
images get <image> [flags] Show image details and versions
images save <vm> <image> [flags] Snapshot a VM into an image
images update <image> [flags] Update image settings
images rm [image] [flags] Remove an image
images versions Manage image versions
images upload <url> [flags] Upload a custom image from a URL (creates a new version if the name already exists)
SSH KEYS
keys ls [flags] List keys
keys get <key> [flags] Show key details
keys new <key> [flags] Add a key (managed or public)
keys update <key> [flags] Update key settings
keys rm <key> [flags] Remove a key
managed = keypair stored on server, local = register your own public key
CONFIG
config get [flags] Show current configuration
config set <assignments> Set configuration variables (e.g. config set KEY=VALUE)
FILE SYNC
sync push <local> <remote> [flags] Push local files to a VM (e.g., sync push ./src myvm:~/app)
sync pull <remote> <local> [flags] Pull files from a VM to local (e.g., sync pull myvm:~/app ./src)
FLAGS
-h, --help Show help
-V, --version Show version