StacyVM 0.15.0 — Interactive Experience & Cross-Platform Desktop
Date: 2026-05-31 This release is all about how you use StacyVM. The sandbox and runtime engine are unchanged; everything new is operator-facing: a styled CLI, a full-screen terminal UI, a web dashboard embedded right in the binary, downloadable desktop apps for every OS, and a one-command installer. It is a minor version bump (0.14.x → 0.15.0) because the install/build flow and frontend layout changed — see Upgrade notes.New features
One-command installer
npx stacyvm-setup@latestclones StacyVM, builds the web UI and the CLI, installsstacyvmonto your PATH, runs the setup wizard, and removes the downloaded checkout — leaving a workingstacyvmcommand and nothing else.- The repo is only deleted after a successful install, so a failed run never leaves you without a binary.
Interactive CLI
- Restyled with
charmbracelet/fangand a StacyVM brand theme. - New
stacyvm setupwizard (huh forms) to pick an isolation provider (Docker / Firecracker / PRoot), the Docker runtime (runc / runsc / kata), a preview domain, and optional shell auto-completion (bash, zsh, fish). - New
stacyvm update(self-update) andstacyvm uninstall(remove binaries +~/.stacyvm).
Terminal UI (stacyvm tui)
- Full-screen Bubble Tea app with six screens: Dashboard, Sandboxes, Templates, Providers, Logs, Config.
- Keys:
1–6switch screens,Ctrl+Kcommand palette,rrefresh,q/Ctrl+Cquit; sandbox actionssspawn,eexec,fworkspace/files,llogs,ddestroy. - Workspace screen with a netrw-style file tree and a modal text editor
(
Ctrl+Sto save), an editor-majority layout, and a toggleable terminal pane.
Embedded web dashboard
- A new Next.js dashboard (
web/) with Dashboard, Sandboxes, Templates, Providers, Environments, Operations, Tenants, and Settings pages. - Built as a static export and embedded directly into the binary. Launch it with
stacyvm web-ui(aliasui), which serves it on port5749and opens a browser. (Runstacyvm servealongside it for live data.) - Refreshed branding: new logos, color palette, and icons.
Desktop app
- A Wails desktop app that packages the dashboard and
runs the StacyVM API daemon in-process — one window, no separate
serve. - Download prebuilt installers from the Releases page; full guide in Desktop App.
Cross-platform desktop distribution
Wails cannot be reliably cross-compiled (each platform links its native webview), so desktop builds now run on a native GitHub Actions matrix:.github/workflows/desktop.ymlbuilds on Linux, macOS, and Windows runners and produces a per-OS installer:- Windows — NSIS installer (
StacyVM-amd64-installer.exe) - macOS — universal
.dmg(StacyVM-macos-universal.dmg, Apple Silicon + Intel) - Linux — self-contained AppImage (
StacyVM-x86_64.AppImage) + tarball
- Windows — NSIS installer (
- Installers are attached to the GitHub Release on each
v*tag, and the workflow can also be run manually via workflow_dispatch. - A committed
desktop/build/scaffold (app icon,Info.plist, NSIS config) keeps installer branding and metadata reproducible.
The desktop app bundles the UI and API, but you still need Docker (or another
provider) running on the host to spawn sandboxes. v0.15.0 desktop builds are
unsigned, so macOS Gatekeeper and Windows SmartScreen show a one-time prompt;
the Desktop App guide documents the bypass.
Build & packaging
make buildnow builds the web UI (npm run build→web/out) before compiling the Go binary, since the CLI embeds the dashboard.make build-desktopis now OS-aware (auto-applies the Linux-only-tags webkit2_41), anddesktop/wails.jsongained afrontend:installstep so clean CI checkouts build the frontend.scripts/npm-setup.mjsbuilds the web UI beforego buildand only removes the cloned repo after a successful global install.
Upgrade notes
- Version:
0.14.x → 0.15.0(package.json,desktop/wails.json). - Building from source now requires the web UI to be built first.
make buildandnpx stacyvm-setuphandle this automatically; a barego build ./cmd/stacyvmneedsweb/outto exist. - Frontend relocation: the previous Vite frontend moved to
deprecated/web/; the active dashboard is the Next.js app inweb/. - Desktop app is a separate prebuilt download and is intentionally not
produced by
scripts/npm-setup.mjs(that builds the CLI from source).
Bug fixes
- TUI: stopped styled-in-styled nesting from leaking raw ANSI escape codes in navigation/selection rows (with a regression test).
- TUI: arrow keys now act within the active screen instead of hijacking screen
switching;
1–6switch screens. - Desktop build fixed: reuse the embedded
web.Assetsinstead of a non-existentfrontend/out, and refreshdesktop/go.sumfor the newgopsutil/v4dependency.

