## 0.0.4.3 Apr 17, 2026
- NixOS provisioning is now a pure nix flake — no bash wrapper.
machine0 provision <vm> ./packages/nix-phase2 scp's the flake and runs nixos-rebuild switch. Claude Code ships as a pinned nix package (faster provisioning, reproducible version).
- New NixOS VMs come with the
nix user pre-configured and SSH hardened from first boot. machine0 ssh <vm> connects as nix immediately, no post-provision username flip required.
machine0 images upload --default-ssh-username <user> — set the SSH username that machine0 ssh will use for VMs from this image. Useful for custom images where the default user isn't root or ubuntu.
## 0.0.4.2 Apr 16, 2026
- NixOS VMs now get the correct hostname by passing a NixOS-native config snippet as user-data
## 0.0.4.1 Apr 15, 2026
- CLI help now groups account commands (login, logout, whoami, billing, topup) under their own ACCOUNT section for easier scanning
- File sync commands show as FILE SYNC with simpler
<local> and <remote> argument names
- Use case commands grouped under USE CASES with VM size and specs in descriptions
- Consistent
[flags] terminology and full command paths in all help output
## 0.0.4.0 Apr 15, 2026
- Full MCP reference documentation: browse all 28 tools with parameters, descriptions, and examples at docs.machine0.io
- MCP setup guides for Claude Desktop, Claude Code, and other MCP clients
- MCP tool descriptions now include detailed guidance on managed keys, provisioning times, and common error recovery steps
- Documentation navigation restructured with expandable Reference section containing CLI and MCP sub-groups
- MCP setup command updated from local CLI proxy to remote server (
https://app.machine0.io/mcp)
## 0.0.3.0 Apr 15, 2026
- Remote command execution via MCP: run shell commands on your VMs directly from any MCP-compatible AI assistant using
ssh_exec
- Managed SSH keys now enable server-side command execution, the recommended key type for MCP workflows
- Updated privacy policy and DPA to reflect remote execution capabilities
## 0.0.2.0 Apr 14, 2026
- Full VM lifecycle via MCP: create, start, stop, reboot, destroy machines from any MCP-compatible AI assistant
- SSH key management via MCP: create, list, update, and delete SSH keys
- Image management via MCP: create images from VMs, manage versions, promote/remove versions
- Size listing via MCP: browse available VM sizes with pricing and regional availability
- Structured error codes in MCP responses for actionable LLM feedback (e.g.,
INSUFFICIENT_FUNDS, MACHINE_NOT_READY)
- MCP endpoint now enforces per-user rate limiting (was bypassed due to missing flag check)
## 0.0.1.0 Apr 9, 2026
- MCP server endpoint at
/mcp for AI tool integration (Claude Code, Cursor, etc.)
- OAuth authentication flow for MCP clients with consent screen
vm_list MCP tool to list your virtual machines from any MCP-compatible AI assistant
- API key authentication support for MCP endpoint via
x-api-key header
## 1.0.59 Apr 9, 2026
- Every CLI error now shows an actionable fix command (e.g.,
Run: machine0 topup --amount 10 for insufficient balance, Run: machine0 start <vm> for stopped VMs)
- New error detection for insufficient balance, duplicate VM names, VM not found, machine limit, and account suspension
machine0 ssh now handles STOPPED, DESTROYED, ERRORED, and UNAVAILABLE VMs with specific recovery hints
- Fixed
machine0 ssh failing on freshly created VMs by adding retry logic (2s delay after boot, one retry after 5s on connection refused)
- Fixed CLI spinner not rendering in Ghostty and other terminals
- Fixed broken documentation link on OpenClaw use case page
## 1.0.57 Apr 8, 2026
machine0 sync push and machine0 sync pull commands for syncing files between your local machine and VMs using rsync over SSH
--watch flag on sync push to automatically re-sync when local files change
--dry-run flag to preview what would be transferred
--delete flag to remove files at the destination that don't exist at the source
## 1.0.56.0 Apr 8, 2026
- New
machine0 billing command shows usage breakdown by month, grouped by resource name and type (Machine, Image, Bandwidth)
- Usage defaults to current month; pass
YYYY-MM to view a specific month (e.g., machine0 billing 2026-03)
## 1.0.55.1 Apr 3, 2026
- Fixed 500 errors when creating machines or baking custom images (missing
metadata column on image_versions table due to skipped database migration)
## 1.0.55.0 Apr 3, 2026
- VM proxy URLs simplified from
<name>-<random>.mac0.io to <name>.mac0.io — shorter, easier to remember
- VM names now allow up to 63 characters (previously 46)
- VM names are automatically lowercased on create and rename
- CLI config file renamed from
config.env to machine0.env — both in ~/.machine0/ and as a new per-project override in your current working directory
- Config precedence is now: environment variables >
./machine0.env (current directory) > ~/.machine0/machine0.env > defaults
machine0 config get now shows * for home directory overrides and ** for current directory overrides
## 1.0.54.0 Apr 3, 2026
- Custom images that failed to transfer to all regions (stuck in ERRORED with "do api error: 422") can now be retried successfully
## 1.0.53.0 Apr 2, 2026
machine0 images get now shows the SSH username for each image and version, so you know which user to connect as
## 1.0.52.0 Apr 2, 2026
- Default API rate limit increased from 500 to 1000 requests per hour
- Rate limit errors during VM boot polling now back off gracefully instead of crashing the command
- Creating a VM with an image that is still being prepared now shows "image is not ready yet" instead of the confusing "image not found" error
- Eliminated redundant API calls during
machine0 use and machine0 ssh flows
## 1.0.48.0 Apr 1, 2026
- Image version status now correctly shows "READY" instead of "CREATING" for system images
machine0 images ls now shows the image Type column
## 1.0.46.0 Mar 31, 2026
machine0 use no longer fails with "Permission denied (publickey)" when SSH keys aren't ready yet on a freshly launched VM
- SSH connections to new VMs now automatically retry with backoff instead of immediately failing
## 1.0.45.0 Mar 31, 2026
- Image versioning: track, promote, and retire versions of your custom images with
machine0 images versions commands
machine0 get now shows which image version a VM was created with
## 1.0.44.0 Mar 31, 2026
- Support for FIDO/U2F hardware security keys (YubiKey, etc.) when adding SSH keys
## 1.0.42.0 Mar 30, 2026
- Suspension now triggers based on dynamic residual runway cost instead of fixed 1-hour threshold, giving users ~78 hours of runway (for a SMALL machine) to top up before resources are suspended
- Auto top-up attempts start 48 hours before the dynamic suspension point instead of at a fixed runway threshold
- Low balance warnings fire relative to the suspension point instead of at a fixed 6-hour runway
- Residual cost calculation accounts for estimated snapshot storage, existing image storage, and async suspension time with 10% safety margin
## 1.0.36.0 Mar 27, 2026
- Removed
--enable-proxy flag from machine0 new and machine0 update commands
- Removed
DEFAULT_ENABLE_PROXY config setting
- HTTPS proxying is now always on for all VMs (authenticated via session cookies)
## 1.0.33.0 Mar 26, 2026
- New
machine0 use webserver command sets up a VM as a web server and SSHs into it
## 1.0.32.0 Mar 25, 2026
- Improved error messages when the server is temporarily unreachable
## 1.0.31.0 Mar 24, 2026
- Firewall enabled by default on all new VMs via
ufw
- Security hardening for proxy authentication and session permissions
## 1.0.30.0 Mar 22, 2026
- Rate limit errors now correctly return
429 Too Many Requests instead of 401
## 1.0.29.0 Mar 21, 2026
- New
--description flag on machine0 images new to annotate custom images
- Fixed GPU sizes incorrectly shown as available when no region had capacity
## 1.0.28.0 Mar 20, 2026
- New
machine0 update command to rename VMs
- CLI now supports authentication via
MACHINE0_API_TOKEN environment variable
- New API token management page in the web dashboard
- New billing page with Stripe Customer Portal access
- API tokens are now obfuscated in
machine0 config get output
- Fixed CLI update notification showing incorrect package name
- Fixed duplicate regions appearing in machine creation
## 1.0.27.0 Mar 19, 2026
- Machine URLs are now hidden in CLI output when no IP is assigned yet
## 1.0.26.0 Mar 16, 2026
- Machines are now automatically suspended when wallet balance runs out
- Fixed SSH key provisioning for GPU instances
- Fixed interactive SSH sessions showing spurious errors on exit
- Machines in UNAVAILABLE status can now be destroyed
## 1.0.25.0 Mar 15, 2026
- New
openclaw image available
- SSH key management improvements
## 1.0.24.0 Mar 14, 2026
- Wildcard subdomain proxying, access VMs at
*.mac0.io
- Always-on auto top-up keeps your wallet funded automatically
- Bandwidth billing now tracks and charges for network usage
- Streamlined CLI with merged sizes table and top-up dialog
## 1.0.23.0 Mar 13, 2026
- Google OAuth sign-in
- Stripe integration for wallet top-up payments
- GPU instance support
- Fixed email verification links pointing to wrong URL
## 1.0.22.0 Mar 12, 2026
- Email verification added to the sign-up flow
## 1.0.21.0 Mar 10, 2026
- Multi-region support:
us, uk, eu, asia
- New
machine0 sizes command to view available sizes and pricing
## 1.0.0.0 Mar 5, 2026
- Initial public release
- CLI available via
npm install -g @machine0/cli
- Pay-as-you-go billing with auto top-up