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
| Command | What it does |
|---|---|
prism init | Create a new project and prism.toml manifest |
prism install | Install dependencies from the lockfile |
prism add | Add a package dependency |
prism remove | Remove a package dependency |
prism update | Update dependencies within the lockfile |
prism publish | Publish a package to the registry |
prism build | Produce an optimized binary |
prism run | Build and run |
prism test | Run the test suite (fn test_* functions) |
prism lsp | Start the language server |
prism task | Run Facet tasks |
prism targets | List the targets your project can compile for |
prism audit | Check 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 lspstarts the server for editors that need it, but supported editors find it automatically.
Next: The language server.