Repository navigation
Sync a local checkout into a VM with one command, without giving the VM GitHub access. This release also groups the CLI into command families, adds terminal status reporting, and fixes VM lifecycle and connection errors.
New
-
vm_sync/boxery sync. Push your local commit plus staged, unstaged and untracked changes into a VM, then verify that the working trees match. Repeated syncs send only missing git objects; ignored files such asnode_modulesstay in place. Sync refuses credential files (including in the history being sent) and VM-side changes it would overwrite. Your local index, refs and stash are untouched. This is a one-way, explicit push—not a watcher or a way to fetch VM edits. Sync documentation. (#207)boxery sync demo # current checkout → demo:~/project -
CLI command families. Related commands now live under
snapshot,agent,job,access,lease,poolandhost, with help for each family and action. For example,boxery snapshot create demo before-refactorandboxery access ls demo. Older spellings keep working without warnings, so existing scripts need no changes.boxery help --alllists everything. (#243) -
Terminal status for long commands. Supporting terminals can show running, successful and failed commands through OSC 7501 status reporting. (#244)
-
VM@HOSTshorthand for SSH. Useboxery ssh demo@myhostto select a registered host. (#239) -
Version and usage conventions.
boxery --versionandboxery -Vwork; CLI usage errors consistently exit 2. (#235)
Fixes
- VM lifecycle: starting an already-running VM and stopping an already-stopped one succeed; stopping waits until the VM is off. Both operations reject nonexistent VMs. VM records reflect the size the backend actually allocated. (#226, #227, #230)
- Guest updates:
new --headlessreboots once if first-boot updates request it. Creating or forking from outdated guest software warns with guidance. Node upgrades remove the old npm before unpacking the new version. (#208, #236) - Connection errors: failed SSH readiness checks explain what went wrong instead of silently exiting 255. Desktop, copy and grant operations report missing VMs clearly. (#231, #232)
- Host setup and listing: host registration and setup find the documented SSH key and keys used by existing hosts.
lsno longer lists the same host twice when it has a profile alias. (#240, #241) - Agent workflows:
promptchecks pi's LLM grant before starting, and its log hint works from~/project.attachvalidates the agent (pi,opencodeorshell) and requires a terminal. (#224, #225, #229) - Actionable hints: errors name the command spelling and
--hostselection you used. Elapsed times use a monotonic clock. (#237, #247)
Under the hood
- CLI command rules are centralized, with tests for argument handling, host selection and side effects. (#246)
- CI groups shell tests by platform and focuses macOS coverage on platform-sensitive behavior. Lifecycle and SSH fixture tests use explicit readiness checks instead of timing assumptions. (#245, #248, #252)
Upgrading
- Update your controller installation, then run
boxery upgrade-hostfor each host. - Image layers changed. Run
boxery patch NAME(orboxery patch --all) to update existing VMs; rebuild outdated desktop bases for future VMs. - Existing command spellings remain supported. Scripts parsing CLI errors should account for usage errors now exiting 2.
Full changelog: v0.11.0...v0.12.0