The CLI
verve-cli scaffolds new projects from the framework checkout it was built in. Build it with zig build (it lands at zig-out/bin/verve-cli).
verve-cli new
verve-cli new <target-dir> [options]| Option | Effect |
|---|---|
--web | scaffold a standard HTTP server app (default) |
--desktop | scaffold a native desktop app (OS webview) |
--template full\|minimal | desktop only: demo-rich scaffold vs single-window starter |
--name <ident> | package name (defaults to sanitized target dir basename) |
--verve-path <path> | path to the Verve checkout the scaffold depends on |
--release <tag> | desktop only: depend on a release tarball instead of a local path |
--release-hash <hash> | pin the release tarball hash (requires --release) |
Notes:
- The target directory must be empty (or absent) — the CLI refuses to scaffold over existing files.
--namemust be a valid Zig identifier; a basename likemy-projectis auto-sanitized tomy_project.- Web scaffolds copy the full framework tree (
build.zig,src/,tools/); desktop scaffolds vendor the platform layer and reference Verve through a.pathdependency —--verve-pathoverrides the default baked in at CLI build time.
Examples
# Standard web app
verve-cli new blog
# Desktop app, full demo scaffold (tray, notifications, multi-window…)
verve-cli new studio --desktop
# Desktop app, minimal single-window starter
verve-cli new widget --desktop --template minimal
# Explicit package name for a hyphenated directory
verve-cli new my-site --name mysiteAfter scaffolding
cd blog
zig build run # web: dev server on :8080
# or, desktop:
zig build && ./zig-out/bin/app