# Changelog

## 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

  • GPU instance support
  • 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