CLI commands
The vow binary is the toolchain entry point (compiler, runner, formatter, LSP). Package work uses vpm — prefer it over the deprecated vow add / vow sync wrappers.
vow --version # or: vow versionvow help # list commandsvow help build # per-command usageGlobal flags: -h / --help, -v / --version.
Project scaffolding
Section titled “Project scaffolding”vow new my-appvow init # same as: vow new .vow init my-api # same as: vow new my-apiCreates project.toml, src/main.vow, .gitignore, and a short README. Destination must be empty (or missing). init is an alias for new with an optional directory (defaults to .).
cd my-appvow check src/main.vowvow run src/main.vowYou can also scaffold with vpm init — see vpm.
Compile and run
Section titled “Compile and run”| Command | Usage | Notes |
|---|---|---|
| build | vow build <file.vow> [-o out] [--release] [--opt 0|1|2|3] [--json] |
Native binary. Default LLVM O1; --release is O3 + runtime -O2. --json for machine-readable diags. |
| run | vow run <file.vow> [--release] [--manifest file] [-- <program args…>] |
Compile then execute. --manifest expands grants from TOML. Args after -- go to the binary (--grant …, --audit-log, --budget cpu-ms:N). |
| check | vow check <file.vow> [--json] |
Type-check only — no codegen. Prints ok or diagnostics. |
| test | vow test <file.vow> [--json] |
Run test blocks in the file. |
| explain | vow explain <file.vow> |
Print escape / memory plan (regions, stack vs heap). |
| inspect | vow inspect <binary> [--json] |
Inspect compiled binary metadata / heuristics. |
| profile | vow profile <file.vow> [--json] [--samples N] [--grant SPEC] |
Measure runs; report p50/p95/p99 and suggested cpu-ms budget. |
vow build src/main.vow -o appvow build src/main.vow -o app --releasevow check src/main.vow --jsonvow run src/main.vow -- --grant fs-read:/tmp --grant net:example.comvow run src/main.vow --manifest vow.grants.toml -- --audit-log --budget cpu-ms:500vow profile tests/lang/phase3b_budget.vow --samples 5vow inspect ./app --json./app --grant fs-read:/tmpvow build / vow run / vow check auto-run vpm install when lock/deps are missing and vpm is on PATH.
Format and editor
Section titled “Format and editor”| Command | Usage | Notes |
|---|---|---|
| fmt | vow fmt <file.vow> [--write] |
Format to stdout; --write rewrites the file. Normalizes function → fn. Not a full prettier. |
| lsp | vow lsp |
Language server over stdio JSON-RPC. Install extension vowlang.vow-lang from the VS Code Marketplace. |
vow fmt src/main.vowvow fmt src/main.vow --writePackages and audit
Section titled “Packages and audit”Prefer vpm for day-to-day dependency work:
vpm add vow-web-server@0.2.1vpm installStill present on vow (compatibility):
| Command | Usage | Status |
|---|---|---|
| add | vow add <name> <git-url> |
Deprecated — use vpm add … --git |
| sync | vow sync |
Deprecated — use vpm install |
| audit | vow audit <pkg-or-path> |
Capability / effect audit of a package or path |
vow audit .vow audit vow-web-serverStatus regression
Section titled “Status regression”vow audit-statusRuns the built-in STATUS regression suite (tools/audit_status/). Useful for contributors verifying the feature table — not an end-user app command.
vow helpvow help <command>vow versionQuick map
Section titled “Quick map”| Goal | Command |
|---|---|
| New project | vow new <dir> or vow init |
| Type-check | vow check <file> |
| Build binary | vow build <file> -o out |
| Run once | vow run <file> [--manifest …] [-- --grant …] |
| Run tests | vow test <file> |
| Memory plan | vow explain <file> |
| Inspect binary | vow inspect <binary> [--json] |
| Profile / budgets | vow profile <file> [--samples N] |
| Format | vow fmt <file> [--write] |
| Editor LSP | vow lsp |
| Add / install deps | vpm add / vpm install |
| Global deploy tool | vow add vow-serve -g → vow-serve, vds |
| Delegate to vow-serve | vow serve start (when vow-serve on PATH) |
| Cap audit | vow audit <path> |