Getting Started
Vizzini has no tagged release yet, so build it from source. The engine, the
pkg/reviewer Go API and the pr-review CLI are complete and tested.
Requirements
Section titled “Requirements”| Tool | Version | Used for |
|---|---|---|
| Go | 1.25+ | Building and testing (cuelang.org/go sets the floor) |
cue CLI |
v0.17.1 | make vet-cue |
golangci-lint |
v2 | make lint |
curl, sha256sum |
any | Seeding the tokenizer cache once |
| A C compiler | any | Only for make test, because Go’s race detector needs cgo |
| An OpenAI-compatible endpoint | A LiteLLM proxy in front of the model you review with |
Build and test
Section titled “Build and test”git clone https://github.com/infrashift/vizzini-pr-reviewercd vizzini-pr-reviewermake test # seeds .cache/tiktoken on first run, then runs go test -racemake vet-cue # cue vet ./schema/...make lint # golangci-lint + go mod tidy checkmake build # static bin/pr-reviewThe first make test downloads the two tokenizer encodings (about 5.3 MB)
and checks them against pinned SHA-256 hashes. After that, everything runs
offline. The tests actively block network access. See
Running Offline.
Your first review
Section titled “Your first review”export VIZZINI_LITELLM_URL=http://litellm:4000/v1export VIZZINI_MODEL=<model name in your LiteLLM config>export VIZZINI_API_KEY=<proxy key>export TIKTOKEN_CACHE_DIR=$PWD/.cache/tiktoken
git diff main...HEAD | ./bin/pr-review --mode reviewYou get Markdown: a summary, a risk score, and findings sorted most severe
first, each pinned to file:line. Add --format json for machines, or try
--mode describe for a PR description and --mode improve for concrete code
suggestions.
Next: the CLI Reference, Embedding in Go, or How a Review Works.