Vertz ships a native runtime (Documentation Index
Fetch the complete documentation index at: https://docs.vertz.dev/llms.txt
Use this file to discover all available pages before exploring further.
vtz) — a standalone Rust binary with an embedded V8 JavaScript engine. It starts in ~5ms and includes a dev server with SSR + HMR, a built-in test runner, and a package manager. No Node.js required.
How it works
vtz is the primary Vertz CLI. Run it directly — no extra configuration needed.
Command architecture
Not allvtz commands work the same way. Understanding the distinction helps avoid surprises:
| Command | Engine | What it does |
|---|---|---|
vtz dev | V8 (built-in) | Dev server with SSR, HMR, and TypeScript compilation |
vtz test | V8 (built-in) | Test runner with Vitest-compatible API (details) |
vtz run <script> | Shell (spawns process) | Executes a package.json script via sh -c |
vtz exec <cmd> / vtzx | Shell (spawns process) | Runs a binary from node_modules/.bin via sh -c |
vtz install / add / remove | Rust (native) | Package management with native dependency resolution |
dev, test) run JavaScript inside the vtz binary’s own V8 engine. They use Vertz’s module loader, compiler, and runtime APIs (like @vertz/test and vertz:sqlite).
Shell commands (run, exec) spawn a child process through your system shell. They add node_modules/.bin to the PATH, then hand off execution — similar to npm run or npx. The spawned process uses whatever runtime the script calls for (Node.js, Bun, etc.).
Installation
Install script (recommended)
Install thevtz binary directly — works on macOS and Linux, both x64 and ARM:
~/.vtz/bin/ and creates a vertz symlink. The script auto-detects your platform and architecture.
To install a specific version:
Via npm (existing projects)
If you already have a project withpackage.json, the vertz meta-package includes @vertz/runtime as an optional dependency. Running vtz install (or npm install) resolves the platform-specific binary automatically.
To add the runtime explicitly:
From source
For contributors working on the Vertz monorepo:Binary resolution
The CLI resolves the runtime binary in this order:VERTZ_RUNTIME_BINARYenv var — explicit path override (fail-fast if set but missing)- Monorepo local build —
native/target/release/vtzornative/target/debug/vtz - npm package —
@vertz/runtimeresolves the platform-specific binary - Error — if none found, prints installation instructions and exits
Supported platforms
| Platform | Architecture | npm package |
|---|---|---|
| macOS | ARM (M1/M2/M3/M4) | @vertz/runtime-darwin-arm64 |
| macOS | Intel (x64) | @vertz/runtime-darwin-x64 |
| Linux | x64 | @vertz/runtime-linux-x64 |
| Linux | ARM64 | @vertz/runtime-linux-arm64 |
CLI commands
Thevtz binary supports the following commands:
Dev server options
Updating
Self-update (recommended)
The fastest way to update thevtz binary:
Via npm
If you installed the runtime through npm, update the package instead:Automatic update notifications
vtz checks for new versions automatically after running dev and install commands. When an update is available, you’ll see: