Repository navigation
v0.8.0
A big release: headless VMs, two new experimental backends, background jobs, and much better MCP support.
Highlights
- Headless VMs.
boxery new NAME --headless(orvm_manage new {headless: true}) builds from the stock Ubuntu image without a desktop, and needs nobuild-base. Desktop VMs are still the default (#55). - Background jobs. Use
boxery run --bg,jobs,logs,wait,killandjobs --prune, or thevm_jobstool in MCP and pi. Jobs survive disconnects and report real exit codes (#28, #36). - VM shapes. Pick a named size with
--shape small|standard|large. You can define your own in~/.config/boxery/shapes.jsonon the host (#29). boxery resizechanges a VM's CPUs, memory or disk after it's created (#26).- Host upgrades.
boxery upgrade-hostupdates a host in place. It checks the result and rolls back if the checks fail.boxery versionwarns when the host is behind the controller (#66). - Live desktop in chat. In MCP Apps clients, the
vm_viewtool shows a VM's desktop inline, and you can take control of it (#56).
New backends (experimental)
- exe.dev: run VMs on exe.dev from any machine with ssh, a Mac included (#30).
lsnow reports tunnel state, and the docs explain how to set up an always-on host (#45, #65). - cloud-hypervisor: Linux + KVM without libvirt. Each VM gets its own network isolation (#25).
Agent tools
vm_manageaddsstart,stop,resize,snap-rm,images,new --from, and size parameters (#33).vm_leaselets MCP and pi agents lease VMs from the shared pool. Leases renew while the session is active and are released when it ends (#34).vm_infois a new read-only tool, so clients that support annotations don't ask for approval on lookups (#35).- MCP progress notifications and structured output, sent only to clients that support them (#35).
vm_editis atomic and checks for conflicts. It no longer needs Python in the guest (#44).vm_copystreams transfers with bounded memory and cleans up properly when cancelled (#32).
Reliability
- Host lifecycle operations are serialized, and work left behind by a crash is recovered. New:
boxery-host reconcile(#24). boxery-hosthas been rewritten from bash to Node (#48–#52).- Fixed a hang on Lima hosts when an operation started a VM (#26).
- Screenshots fail with a clear error, instead of returning NaN sizes, when the desktop isn't ready yet (#63).
Upgrading
Stop running boxery-host processes before you upgrade from 0.7.0. The old locks don't coordinate with the new SQLite-based ones (#24).