Home Docs Download About Contact
Download

The CLI

Every tool in one binary — build, test, fmt, run, add.

Tooling Updated 2026-08-01 Edit this page

The prism command is the entire toolchain. There is no prism-toolchain package, no version-skew matrix, no separate install for the compiler vs the package manager. One binary, one version.

Core commands

CommandWhat it does
prism initCreate a new project and prism.toml manifest
prism installInstall dependencies from the lockfile
prism addAdd a package dependency
prism removeRemove a package dependency
prism updateUpdate dependencies within the lockfile
prism publishPublish a package to the registry
prism buildProduce an optimized binary
prism runBuild and run
prism testRun the test suite (fn test_* functions)
prism lspStart the language server
prism taskRun Facet tasks
prism targetsList the targets your project can compile for
prism auditCheck dependencies for known issues

A session

$ prism init hello
$ cd hello
$ prism run

That compiles and runs src/main.prism. The compiler is fast enough that prism run is the default loop — no separate watch flag needed.

$ prism add http
 resolved 1 package in 0.4s
$ prism test
 4 passed · 0 failed

Flags

The important ones, consistently named across commands:

prism build -o myapp     # name the output binary
prism run -v             # verbose output
prism targets            # list supported targets
prism --version          # compiler version

Every command accepts --help. Every error message includes a suggestion and a reference to the relevant documentation page.

Tasks with Facet

Repetitive workflows are declared in a Facet file — the task-runner DSL executed with prism task. The runner searches from the current directory upward for a file named Facet:

flag verbose : bool = false

task build {
    desc = "Build the project"
    depends = []
    inputs = []
    outputs = []
    timeout = 60

    env {
        KEY = "value"
    }

    prism "build"
}

task test {
    desc = "Run the tests"
    depends = ["build"]
    prism "test"
}

Run a task by name:

prism task build
prism task test

Tasks can depend on other tasks (depends = ["build"]), set environment variables, and impose timeouts — enough to script a full release without leaving the toolchain.

Note: the CLI is also the language server’s host. prism lsp starts the server for editors that need it, but supported editors find it automatically.

Next: The language server.