verum — Command-line interface
The verum binary is self-contained: compiler, interpreter, linker,
package manager, LSP server, and formatter in one executable. It
exposes the following subcommands.
Project lifecycle
verum new <name> # create a new project
verum init [path] # initialise an existing directory
verum deps add <pkg> [--version X] [--dev] [--build]
verum deps remove <pkg> [--dev] [--build]
verum deps update [<pkg>]
verum deps list [--tree]
Build, run, test
verum build [--release] [--target TRIPLE] [--lto thin|full] [--timings]
verum run [--interp | --aot] [-- args...]
verum check [PATH] [--workspace] [--parse-only]
verum test [--filter REGEX] [--coverage] [--nocapture]
verum bench [--filter REGEX] [--save-baseline NAME | --baseline NAME]
verum watch [<command>] [--clear] [--skip-verify]
verum run is interpreter-first. Add --aot for LLVM native
execution when latency matters (LLVM warmup adds ~200 ms).
Verification & analysis
verum verify [FILE] --mode <runtime|static|formal|fast|thorough|certified|synthesize> \
--solver z3 --timeout 30 [--cache] [--function NAME]
verum analyze [--escape] [--context] [--refinement] [--all]
verum audit [--details] [--direct-only]
verum lint [--fix] [--deny-warnings]
verum fmt [--check]
Verification modes map to strategies documented in Verification → gradual verification.
Profiling
verum profile [FILE] [--compilation] [--memory] [--cpu] [--cache] \
[--hot-threshold 5.0] [--output OUT] [--suggest]
--compilation shows phase timings; --memory reports CBGR tier
distribution (Tier 0 / 1 / 2 breakdown); --suggest emits actionable
optimisation hints.
Docs & diagnostics
verum doc [--open] [--document-private-items] [--format html|markdown|json]
verum explain <code> [--no-color] # e.g. verum explain E0312
verum info [--features] [--llvm] [--all]
verum smt-info [--json] # verification backends
verum smt-stats [--json] [--reset] # last-session routing telemetry
Interactive
verum repl [--preload FILE] [--skip-verify]
verum playbook [FILE] [--tier 0|1] [--vim] [--preload FILE] [--tutorial] \
[--profile] [--export OUT] [--no-color]
verum playbook-convert to-script <IN> [-o OUT] [--include-outputs]
verum playbook-convert from-script <IN> [-o OUT]
Packaging
verum package publish [--dry-run] [--allow-dirty]
verum package search <query> [--limit 10]
verum package install <name> [--version X]
verum tree [--duplicates] [--depth N]
Workspace
verum workspace list
verum workspace add <path>
verum workspace remove <name>
verum workspace exec -- <command> [args...]
Services
verum lsp --transport stdio|socket [--port N]
verum dap --transport stdio|socket [--port N]
Configuration
verum config show [--json]
verum config get <key>
verum config set <key> <value>
verum clean [--all]
verum version [--verbose]
Global flags
--tier 0|1|2|3 # override execution tier
-Z <flag=value> # unstable / experimental feature flag
-D <lint> # deny lint
-W <lint> # warn on lint
-A <lint> # allow lint
-F <lint> # forbid lint
-Z, -D/-W/-A/-F are accepted wherever a command compiles code
(build, run, test, check, fmt, lint, doc, lsp, dap, playbook).
Environment variables
VERUM_HOME=~/.verum # toolchain root
VERUM_LOG=debug # log level
VERUM_SMT_TELEMETRY=1 # emit SMT routing telemetry
VERUM_TARGET_DIR=target # build-output directory
VERUM_TOKEN=... # registry token for package publish
Configuration files
verum.toml— project manifest (see verum.toml)..verum/config.toml— user-level config.target/.verum-cache/— build / VBC / proof cache.
See also
- Build system — how invocations feed the pipeline.
- Cog packages —
verum packageflows. - Reference → CLI commands — full per-command reference with all flags.