machine0: Persistent NixOS and Ubuntu VMs via CLI
machine0 is a cloud infrastructure platform that allows users to deploy and manage persistent NixOS and Ubuntu virtual machines (VMs) entirely through a command-line interface (CLI). The service is specifically designed for long-running tasks, reproducible development environments, and autonomous AI agents that require isolated credentials and dedicated resources.
Core Infrastructure and Capabilities
machine0 utilizes real KVM/QEMU virtualization to provide dedicated CPU and RAM, avoiding the noise of shared environments. The platform supports a wide range of resource configurations and global availability.
Hardware and Scaling
- Compute Options: VM sizes range from
small(1 vCPU, 1 GB RAM) to6xl(60 vCPU, 240 GB RAM). - GPU Acceleration: Optional GPU support is available with H100, H200, L40S, and MI300X hardware.
- Global Reach: Infrastructure is deployed across four regions: US, UK, EU, and Asia, maintaining a 99.99% uptime SLA.
Networking and Connectivity
Every VM is assigned a public static IP address and a corresponding HTTPS endpoint at <vm>.mac0.io. This architecture eliminates the need for NAT or tunnels, making it suitable for hosting web applications and databases that require stable network addresses.
Deployment and Configuration Models
Users can choose between two primary OS environments, both of which are designed for reproducibility and automation.
NixOS with Flakes
For users requiring deterministic builds, machine0 supports NixOS with Flakes. This allows the entire operating system to be defined as code, enabling one-command rollbacks and the elimination of configuration drift.
Ubuntu with Ansible
For those preferring a standard Linux distribution, Ubuntu images are available and come pre-installed with common developer tools, including Docker, Node, Python, Claude Code, and Codex. These environments can be managed using Ansible for configuration management.
Operational Workflow and Lifecycle Management
All machine0 operations are executed via the CLI, with an optional --json flag for programmatic integration. The platform also includes a remote MCP server to allow AI agents to drive infrastructure changes.
VM Lifecycle Commands
- Provisioning: New VMs are created using the
machine0 newcommand, specifying the image and size. - Configuration: The
machine0 provisioncommand applies NixOS flake configurations to a running VM. - State Management: Users can use
machine0 stop,machine0 suspend, andmachine0 resume. Suspending a VM freezes its state and stops compute billing, while only charging for image storage. - Snapshotting: The
machine0 image newcommand creates "golden images" from existing VMs, which can then be used to spin up identical clones.
Pricing Structure
machine0 employs a pay-as-you-go model with per-minute billing across all regions.
| Size | CPU | RAM | Disk | Hourly Rate | Approx. Monthly |
|---|---|---|---|---|---|
small |
1 vCPU | 1 GB | 25 GB | $0.013 | $9 |
medium |
2 vCPU | 2 GB | 60 GB | $0.034 | $25 |
large |
2 vCPU | 4 GB | 80 GB | $0.052 | $38 |
xl |
4 vCPU | 8 GB | 160 GB | $0.104 | $76 |
xxl |
8 vCPU | 16 GB | 320 GB | $0.208 | $152 |
xxxl |
16 vCPU | 64 GB | 200 GB | $0.825 | $602 |
4xl |
32 vCPU | 128 GB | 480 GB | $1.980 | $1,445 |
5xl |
48 vCPU | 192 GB | 720 GB | $2,168 | $2.970 |
6xl |
60 vCPU | 240 GB | 900 GB | $3.714 | $2,711 |
Storage Costs: While a VM is suspended, users are charged $0.078/GB/month for image storage. A minimum top-up of $5 is required, and unused credits are refundable.
Community Insights and Use Cases
Community discussion highlights the platform's utility for AI-driven development and the advantages of declarative infrastructure.
AI Agent Integration
Users have reported success using machine0 for hosting autonomous agents like OpenClaw and Hermes, as well as integrating the platform with Claude Code for rapid environment setup.
Declarative Infrastructure
Technical discussions emphasize the superiority of Nix-based distribution for VMs. One contributor noted the value of immutable OS patterns:
"For VMs especially, I want my OS to be immutable. My VMs should contain no state other than my application state. Upgrades should be a full image replacement and reboot."
Other users have raised questions regarding the handling of IPv4 address persistence during per-minute billing cycles and the practicalities of detecting state drift when VMs are modified manually outside of a Nix flake.