nito ask --file is enough; this recipe is for a repeatable review you run on every change.
How It Works
Three ideas make this both private and useful. It runs from your terminal, not your chat. Anito command from the shell is a direct call to Nito. It does not pass through a Claude Code or Codex turn, so your harness’s own model provider never sees the diff. That is the first privacy boundary.
It uses Private-tier models. Every Nito call runs at the privacy level of the model it uses. Private-tier models are open-weight models routed with zero data retention enforced upstream: the provider is instructed not to store your prompt or the response. So the review goes to a model that is told to forget it, not to a frontier provider that may retain it. See Privacy Levels for the full ladder.
It uses Fusion, not one model. A single reviewer, human or model, misses things and has blind spots. Fusion sends the diff to two or three models at once and returns each model’s findings plus a synthesis that separates what they agree on from what only one raised. Agreement is a strong signal to act; disagreement tells you where to look closer.
Prerequisites
- Nito installed and signed in. See Nito CLI.
- A paid plan for the Fusion version (multi-model). The single-model variation runs on Free.
git, and a repository with changes to review.
Step 1: Choose your reviewers
List the Private-tier models your account can use and pick two, ideally with different strengths (a coder-tuned model plus a strong general model):qwen/qwen3-coder (code-tuned) and z-ai/glm-5.2 (strong general) are a good default pair. Any two distinct Private-tier models work; picking different families surfaces more.
Step 2: A one-line review, to confirm it works
Before scripting, confirm the pieces work with a single command.--stdin reads the whole prompt from the pipe, so the instruction and the diff go in together:
Step 3: The review script
Save this asnito-review.sh and make it executable (chmod +x nito-review.sh). It is production-shaped: configurable reviewers, a choice of what to review, a structured review format, and it fails cleanly.
MODELSarray keeps your reviewers in one place. Add a third ID for a wider panel; remove one to go faster.RANGEargument lets the same script review staged changes (the default) or a whole branch (./nito-review.sh main...HEAD).- Structured format (
SEVERITY file:line problem -> fix) makes the output consistent enough to skim or grep. --web-search offkeeps the run self-contained; a code review needs no web lookup.--stdincarries the instruction and diff together, because it cannot also take a prompt argument.
Step 4: Run it
Step 5: Read the output
Fusion prints each model’s findings, then a synthesis. Abridged and representative:- Where the models agree (here,
auth.go:42) is your highest-confidence finding. Fix it first. - Where only one model flags something (
handler.go:17,auth.go:58) is worth a look; a real issue often shows up in only one reviewer. - The synthesis gives you the reconciled, deduplicated list without either model’s noise.
Reviewing a Single File or Directory
For a focused pass, attach one file instead of a diff:Machine-Readable Output
To feed the review into a report or a PR comment, useask --json and pull the content:
--json object also carries model and privacy_route, so a report can record exactly which model reviewed the code and at what privacy level.
Variations
Free plan single reviewer. Fusion needs a paid plan;ask does not:
private: /nito:private (Claude Code) or $nito:private (Codex) runs the turn incognito so your harness never sends the code upstream.
Privacy Notes
- Terminal, not chat. Running
nitofrom the shell means the review never enters a Claude Code or Codex turn, so your harness provider is not in the path at all. - Private level is retention-off, not secrecy. The provider is instructed not to store your code; it still processes it to produce the review. For a stronger guarantee where the provider cannot read the input at all, the Confidential level runs inside attested hardware, subject to model availability.
- A Fusion runs at the least-private level among its participants. A Fusion of Private-tier models stays Private, and mixing in an Anonymous model pulls the whole run to Anonymous. A Confidential model cannot be mixed in at all: that combination is refused rather than downgraded. Keep every reviewer at Private. See Fusion.
Troubleshooting
Where to Go Next
Commit Message Git Hook
Automate the next step: generate the commit message from the same diff.
Multi Model Answer Checker
Cross-check an answer from Claude Code or Codex against independent models.
Scripting and Automation
Output modes, exit codes, and piping for scripts and hooks.
Privacy Levels
What Private level guarantees, and the stronger levels above it.

