All docsThe CLI

The CLI

The one command line tool and every subcommand it has: run, build, disasm, ast, tokens, tools, test, and the package manager verbs.

One binary, venutian, and one pipeline underneath every subcommand: source text, tokenize, parse, resolve every use, analyze, compile to bytecode, run on the virtual machine.

Run a program

shell
venutian run hello.ven

Compiles (if needed) and executes in one step. It also runs an already compiled .vbc file directly, with no recompilation.

Build to bytecode

shell
venutian build hello.ven -o hello.vbc

Writes Venutian's own bytecode format, a text .vbc file you can read directly rather than a binary you have to trust:

text
wrote hello.vbc

Run the compiled form the same way you run source:

shell
venutian run hello.vbc

--emit-source-map out.json also writes a source map that attributes each function to its file alongside the build.

Inspect a program

Three commands show a program's insides at each stage of the pipeline, all before it runs:

shell
venutian tokens hello.ven
output
1:1   PRINT 'print'
1:7   TEXT 'Hello from Venutian'
1:28  NEWLINE
3:1   EOF
shell
venutian ast hello.ven
json
{
  "node": "Program",
  "statements": [
    {
      "node": "PrintStatement",
      "args": [
        { "node": "TextLiteral", "value": "Hello from Venutian" }
      ]
    }
  ]
}
shell
venutian disasm hello.ven
output
== main ==
   0 LOAD_CONST 0
   1 PRINT 1
   2 HALT

ast is the structural editing hook agent tooling reaches for; tokens --diagnostics-format json prints the same stream as a JSON array of {kind, value, line, column} for the same reason. See the interactive stepper for the same three views wired to a live example.

Tool schemas and introspection

shell
venutian tools file.ven

Dumps every tool make function's calling schema as JSON, the native hook for AI function calling. A tool make's leading string statement becomes that schema's description, the one place a leading string in a Venutian function body is ever captured.

shell
venutian introspect module.ven

Dumps a module's real exported functions, shapes, and behaviors, with signatures and fields, straight from the parsed AST.

Interactive mode

shell
venutian

or explicitly:

shell
venutian repl

See interactive mode for the full rundown.

Check for type errors

shell
venutian check file.ven
text
file.ven: no type errors found

Type annotations in a parameter list are read and checked here; they are not enforced at ordinary run time (see the language tour).

Version

shell
venutian --version
text
Venutian 1.0.0

--format=json prints {"version", "commands"} instead, with commands read live from the CLI's own command table.

The package manager

shell
venutian install [path-or-archive]
venutian uninstall <name>
venutian list
venutian lock
venutian verify

Full walkthrough in the package manager, including the marketplace verbs (search, outdated, update, publish) for the network registry.

Native compilation

shell
venutian build --native file.ven -o binary

Covered in full in native compilation.

The conformance suite

shell
venutian test

Runs Venutian's own test suite against the current build.

Its own vocabulary

Venutian's CLI does not borrow another toolchain's flag vocabulary; every verb above is its own, named for what it does.