{"slug": "show-hn-stateful-linux-microvms-for-coding-agents", "title": "Show HN: Stateful Linux microVMs for coding agents", "summary": "AHVM released a client that gives coding agents persistent Linux microVMs with interactive shells, files, networking and snapshots, running on a Linux server the user controls. The tool installs via curl or Homebrew on Apple Silicon Macs and Linux x86_64, requires a server with KVM, systemd, glibc 2.35+, Python 3, OpenSSL 3 and GNU tar, and its default Ubuntu image ships Node.js LTS, Bun, Python, Git, build tools, Claude Code, Codex, OpenCode and Pi. Ordinary VMs pause after 30 seconds of inactivity and idle-stop after one hour, with snapshots and crash recovery from the latest checkpoint.", "body_md": "Stateful Linux microVMs for coding agents, on the hardware you control.\n\n[Website](https://ahvm.app) ·\n  [Documentation](https://ahvm.app/docs/) ·\n  [Releases](https://github.com/mariobm/agent-house/releases)\n\nAHVM gives your coding agents persistent Linux machines with interactive shells, files, networking and snapshots. Install the client on your Mac or Linux machine; your sandboxes run on a Linux server you control. No domain or public API port is needed.\n\nThe default [Ubuntu image](https://github.com/mariobm/agent-house/blob/main/docs/DEVELOPMENT-IMAGE.md) includes Node.js LTS, Bun,\nPython, Git, build tools, Claude Code, Codex, OpenCode and Pi. Bring your own\nprovider credentials. New image builds open interactive shells as `ahvm`; use `sudo` for administration.\nExisting images retain their previous user until recreated from an updated image.\n\n```\ncurl -fsSL https://ahvm.app/install.sh | bash\nexport PATH=\"$HOME/.local/bin:$PATH\"\n```\n\nOr use Homebrew:\n\n```\nbrew install mariobm/ahvm/ahvm\n```\n\nClients are available for Apple Silicon Macs and Linux x86_64. The curl\ninstaller needs curl, gzip and Python 3. You can [inspect the script](https://ahvm.app/install.sh)\nbefore running it.\n\n```\nahvm host add home --ssh root@YOUR_SERVER_IP --install\n```\n\nExisting SSH aliases work too: replace `root@YOUR_SERVER_IP` with your alias.\nThe server needs Linux x86_64, KVM, systemd, glibc 2.35+, Python 3, OpenSSL 3\nand GNU tar. Use root or an account with passwordless sudo.\n\nInstallation downloads the runtime and Ubuntu image. Leave off `--install` to\nconnect an already installed server. The first host becomes your default if none\nis selected; `--context home` selects a host for one command. SSH handles encryption and host-key\nchecks; the admin token is not saved on your laptop.\n\n```\nahvm contexts\nahvm use home\nahvm create dev --cpus 2 --memory 4096\n# Bash opens inside the VM:\nbun --version\nexit\n```\n\nOmit the name to let AHVM generate one: `ahvm create`. Interactive creation\nopens Bash automatically. Use `--no-shell` to create without attaching; `--json`\nand redirected stdin or stdout also return without opening a shell.\n\nType `exit` to end Bash and return to your local terminal. Your VM and files\nremain. Press `Ctrl-]` instead to detach while keeping the shell session alive.\nRun `ahvm shell dev` to open a new shell, or `ahvm start dev` first if the VM\nhas stopped automatically while idle. Ordinary VMs first pause after 30 seconds\nwithout activity and resume automatically on guest work; connected shells stay\nawake. See [idle pause](https://github.com/mariobm/agent-house/blob/main/docs/IDLE-PAUSE.md) for configuration and stop behavior.\n\n```\nprintf 'Hello from AHVM\\n' > hello.txt\nahvm files put dev ./hello.txt /workspace/hello.txt\nahvm files get dev /workspace/hello.txt ./download.txt\nahvm snapshot create dev before-change\nahvm stop dev\nahvm start dev\n```\n\nUploads replace the guest file only when complete. With default local storage, stop saves a disk and memory checkpoint for non-desktop VMs; desktop VMs restart from disk. Idle-stop defaults to one hour, and wake is explicit. Crash recovery uses the latest checkpoint. Keep off-host backups for important data.\n\nWhen you are finished, delete the VM and its working disk:\n\n```\nahvm delete dev\n```\n\nInvited accounts can connect the CLI with `ahvm login`, check their workspace with\n`ahvm whoami`, and revoke access with `ahvm logout`. Compute-enabled pilot\nworkspaces use `ahvm create dev` and `ahvm shell dev` after `ahvm use cloud`.\nLogin selects Cloud only when no default exists. Use `ahvm context` to inspect\nyour connection, `ahvm contexts` to list choices, and `ahvm use home` to switch\nback. `ahvm --context cloud delete dev` targets Cloud for just one command.\nNames belong to the selected connection; AHVM never searches other hosts. See [cloud setup and limits](https://github.com/mariobm/agent-house/blob/main/docs/CLOUD-LOGIN.md).\n\n```\nahvm image available\nahvm image list\nahvm image pull ubuntu-dev\nahvm image default ubuntu-dev\nahvm create another-dev --image ubuntu-dev\n```\n\nUbuntu is the automatic default. These are VM disks, not Docker images. Downloads\nare verified against a signed catalog and cached on your server. Updating an\nimage affects future sandboxes; existing filesystems and snapshots stay unchanged.\nSee [building your own images](https://github.com/mariobm/agent-house/blob/main/docs/IMAGE-PUBLISHING.md).\n\nThe desktop preview adds XFCE, Bash and Firefox to the Ubuntu development image. It runs on the same Linux server without a GPU. With a desktop-capable release:\n\n```\nahvm create dev-desktop --desktop --no-shell\nahvm desktop dev-desktop\n```\n\nThe first create downloads `ubuntu-desktop` to your saved SSH host. The Mac\nclient includes the native viewer. Closing its window leaves the VM running;\n`ahvm stop dev-desktop` preserves files but discards the desktop session.\nRemove it with `ahvm delete dev-desktop`. Desktop snapshots are not supported.\nSee the [desktop image guide](https://github.com/mariobm/agent-house/blob/main/images/ubuntu-desktop/README.md).\n\n```\nahvm upgrade                 # Client installed with curl\nbrew upgrade ahvm            # Client installed with Homebrew\nahvm host upgrade home       # Server\n```\n\nUse the client upgrade command matching your installation. Server upgrades preserve configuration and the selected image, check API health, and roll back the runtime and database if the new version fails to start.\n\nAHVM is an early-release product for evaluation; it is not yet qualified for hostile multi-tenant workloads.\n\nThe runtime is Rust, using the pinned `libkrucible` fork of libkrun. Private\nsubmodule access is required to build the VMM; see the [build guide](https://github.com/mariobm/agent-house/blob/main/docs/RUST-INSTALL.md).\n\n```\nmake build\nmake test\nmake check\n```\n\nAgent House originated as a fork of [Bhatti](https://github.com/sahil-shubham/bhatti).\n\nAHVM is open-source under the standard [MIT License](https://github.com/mariobm/agent-house/blob/main/LICENSE), with no revenue\ncap or paid commercial software license requirement. Commercial use is permitted.\n\nUpstream and third-party licenses remain valid. See [NOTICE](https://github.com/mariobm/agent-house/blob/main/NOTICE), the retained\n[Apache-2.0 text](https://github.com/mariobm/agent-house/blob/main/licenses/Apache-2.0.txt) and the\n[licensing explanation](https://github.com/mariobm/agent-house/blob/main/docs/LICENSING.md) for attribution and scope.\n\nOn a supported Linux GPU host:\n\n```\nahvm create omarchy --image omarchy-desktop --no-shell\nahvm desktop omarchy\n```\n\nThe first create downloads the image on a saved SSH host. Defaults to 4 CPUs and\n8 GiB RAM. See [setup, requirements and limitations](https://github.com/mariobm/agent-house/blob/main/docs/OMARCHY-DESKTOP.md).", "url": "https://wpnews.pro/news/show-hn-stateful-linux-microvms-for-coding-agents", "canonical_source": "https://github.com/mariobm/agent-house", "published_at": "2026-10-04 17:17:14+00:00", "updated_at": "2026-10-04 17:42:20.241603+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure", "ai-tools"], "entities": ["AHVM", "Ubuntu", "Node.js", "Bun", "Python", "Git", "Claude Code", "Codex"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-stateful-linux-microvms-for-coding-agents", "markdown": "https://wpnews.pro/news/show-hn-stateful-linux-microvms-for-coding-agents.md", "text": "https://wpnews.pro/news/show-hn-stateful-linux-microvms-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-stateful-linux-microvms-for-coding-agents.jsonld"}}