Skip to main content
Goal. Get a thorough, multi-model review of your changes without sending proprietary code to your IDE’s model provider. This recipe builds a reusable script that reviews a git diff from your terminal, on Private-tier models (open-weight models with retention switched off upstream), using Fusion so several models review at once and their findings are reconciled into one report. When to reach for it. A pre-commit or pre-PR pass on code you cannot send to a frontier provider, a focused security review of a sensitive module, or a second set of eyes before you push. For a one-off question about a single file, 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. A nito 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:
If that returns a review, you are ready to script the full multi-model version.

Step 3: The review script

Save this as nito-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.
The parts that matter:
  • MODELS array keeps your reviewers in one place. Add a third ID for a wider panel; remove one to go faster.
  • RANGE argument 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 off keeps the run self-contained; a code review needs no web lookup.
  • --stdin carries 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:
Read it in this order:
  1. Where the models agree (here, auth.go:42) is your highest-confidence finding. Fix it first.
  2. 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.
  3. 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, use ask --json and pull the content:
The --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:
Review from inside your chat. To review with the host model held back rather than from the terminal, use 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 nito from 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.