Voxup Omnibus Installer Spec
voxup Omnibus Installer Specification
Section titled “voxup Omnibus Installer Specification”May 2026
Motivation
Section titled “Motivation”While Vox ships as a single CLI binary (vox), building and executing full-stack applications locally still silently delegates to external system toolchains: Node.js/pnpm for frontend bundling, rustup for WASM standard libraries, and Cargo for ML execution.
Relying on the user’s host OS environment causes significant friction, as users often lack these dependencies or have incompatible versions. vox doctor --auto-heal attempts to fix this, but fails if the foundational tools (like npm or curl) are entirely missing or permission-gated.
The solution is voxup: an omnibus installer modeled after rustup. It bootstraps the Vox environment by securely fetching hermetic, pre-compiled, and portable versions of all required toolchains into an isolated ~/.vox/toolchains/ directory, completely bypassing the host OS package managers.
Architecture
Section titled “Architecture”1. The Bootstrap Script
Section titled “1. The Bootstrap Script”Users will install Vox via a single command that does not require brew, dpkg, or .msi:
# macOS/Linuxcurl --proto '=https' --tlsv1.2 -sSf https://vox-lang.org/voxup | sh
# Windows (PowerShell)Invoke-WebRequest -Uri https://vox-lang.org/voxup.ps1 -OutFile voxup.ps1; .\voxup.ps1The bootstrap script is intentionally minimal. Its only job is to detect the host architecture (e.g., x86_64-apple-darwin, aarch64-unknown-linux-gnu), download the voxup Rust binary for that target, and execute it.
2. The voxup Binary
Section titled “2. The voxup Binary”The voxup binary acts as the local toolchain multiplexer and installer. It manages:
~/.vox/bin/(where thevoxproxy executable lives, added to$PATH)~/.vox/toolchains/(where isolated toolchains live)
Core Commands:
Section titled “Core Commands:”voxup install default(Installs the latest stablevox-cliand mandatory toolchains)voxup update(Updates the CLI and toolchains)voxup toolchain add <name>(e.g.,node-v22,wasm-sysroot)
3. Hermetic Toolchain Management
Section titled “3. Hermetic Toolchain Management”When voxup install runs, it resolves a manifest (channels/stable.toml) that defines the exact matrix of required dependencies for Vox to operate on the current platform.
It then downloads these as isolated bundles into ~/.vox/toolchains/:
- Vox CLI: The actual
voxexecutable. - Hermetic Node.js: A minimal, portable Node.js binary +
pnpmspecifically for Vox’s internal usage. The user’s systemnodeis ignored. - WASM Sysroots: Pre-compiled
wasm32-wasip1standard libraries. No local Cargo/Rustup is needed forvox run --isolation wasm. - LLVM/Mold (Linux): If required for fast ML inference compilation.
4. CLI Path Execution
Section titled “4. CLI Path Execution”When the user types vox build, the shell executes the ~/.vox/bin/vox proxy.
This proxy sets up the isolated environment:
export PATH=~/.vox/toolchains/node-v22/bin:~/.vox/toolchains/wasm-sysroot/bin:$PATHIt then forwards the command to the actual vox binary. The vox CLI now reliably finds pnpm and node in its PATH without polluting the user’s global system PATH.
Implementation Plan
Section titled “Implementation Plan”Phase 1: voxup Scaffold
Section titled “Phase 1: voxup Scaffold”- Create
crates/voxupin the repository. - Implement downloading and extracting of
.tar.gzand.zipbundles usingreqwestandtar/zip. - Implement
PATHmodification logic for bash (.bashrc), zsh (.zshrc), and PowerShell profile.
Phase 2: Manifest Resolution
Section titled “Phase 2: Manifest Resolution”- Define the
channels/stable.tomlschema for tracking toolchain versions. - Setup GitHub Actions CI to automatically build and upload hermetic Node and WASM bundles to the release page.
- Implement signature verification (Ed25519) in
voxupto verify downloaded bundles.
Phase 3: Proxy Execution
Section titled “Phase 3: Proxy Execution”- Implement the
voxproxy wrapper invoxupthat manipulatesstd::env::set_var("PATH", ...)before callingexecvto the real CLI.
Phase 4: Migration
Section titled “Phase 4: Migration”- Deprecate the direct
.msi,brew, anddpkginstructions in theREADME.md. - Advise existing users to run
voxup installto migrate to the hermetic environment. - Phase out Node/Rust installation logic from
vox doctor --auto-heal, asvoxupguarantees their presence.