FAQ
What atcr is, what it isn't, and how the reconciliation actually works.
How is this different from running one model on my diff?
One model has one model's blind spots. atcr runs a panel of different models and providers, then a deterministic Go reconciler merges their findings. The value is the merge: a finding two independent models both caught scores higher than either model's opinion alone. You get one report ranked by agreement, not N walls of prose.
How does it compare to CodeRabbit, Gitar, or PR-Agent?
Those are single-model reviewers — most are hosted SaaS apps that read your PR and post comments. atcr is a local binary that runs a panel of independent models and scores their agreement, writing one auditable report to disk. The differences are architectural, not feature-by-feature. There's a full side-by-side on the Compare page, including where one of the others is the better call.
Is it deterministic? Models aren't.
The models aren't; the reconciler is. Clustering, deduplication, confidence scoring, and report rendering are pure Go — same inputs, same output. The prompts orchestrate; the binary does everything that must be reproducible. Every cross-stage handoff is a machine-parseable file on disk you can diff and audit.
What leaves my machine?
Only the model calls you configure, plus three disclosed surfaces. atcr is local-first
and bring-your-own-keys: it has no account and no analytics backend. The review tree —
payloads, per-agent findings, and the reconciled report — is written to
.atcr/ in your repo. Three things can leave, and the
privacy page discloses each in full: a usage ping carrying
four allowlisted fields, on by default (opt out with ATCR_TELEMETRY=0); a
--sync-cloud scorecard, uploaded only when you pass the flag and
pseudonymous rather than secret; and an off-by-default community quality signal. At
setup, atcr quickstart also downloads the community personas from GitHub
unless you pass --offline, which scaffolds from the built-in personas
instead. Run it offline against local models with the ping disabled, and nothing
leaves at all.
Which models and providers are supported?
Anything behind an OpenAI-compatible endpoint — OpenRouter, OpenAI, local Ollama,
vLLM, and others. You bind each persona to a model in registry.yaml and
set per-agent fallbacks. atcr doctor probes every configured endpoint
before you spend a review.
I only have one API key. Does it still work?
Yes. The companion Agent Skill contributes the host model's own review as a
+1 source, so even a single key yields two or more independent sources
and a working confidence signal. Add more providers later and the panel grows.
Can I use it in CI?
atcr review --fail-on high runs review, reconcile, and a severity gate in
one command, exiting non-zero on a confirmed high-severity finding. Point
--output-dir at an artifacts path so the run never disturbs the
interactive .atcr/latest pointer.
What happens to disagreements?
They're preserved, not flattened. When one panelist objects to another's finding, the reconciled report marks it disputed, records the objection, and lowers the confidence — instead of silently dropping it or pretending it was confirmed. The disagreement radar surfaces exactly where the panel split.
Can I change the reviewers?
The nine default personas are editable markdown files under
.atcr/personas/. Change a focus, swap a model, remove one, or add a
specialist for a single PR. See Personas and
Reconciler.
How does --auto-fix know a patch is worth keeping?
--auto-fix know a patch is worth keeping?
It runs the patch before it trusts it. An executor model generates a patch per
eligible finding, atcr applies it to the working tree, then validates it with your
validation command — a build by default, tests only if you configure them — running in
an ephemeral, network-isolated sandbox against a writable copy, so no host file is
ever mutated by unverified model output. A patch that fails validation is reverted
from the working tree automatically. What survives is opened as a GitHub pull request:
atcr never auto-merges and never commits autonomously,
so a human still approves every fix. Two flags opt out of the safety net explicitly —
--no-sandbox validates on the host, and
--allow-config-edits lets patches touch CI workflows and other blocked
config paths. See the auto-fix docs.
How are findings grouped when two reviewers find the same thing?
Findings are grouped by structure, not wording. Each one is mapped to the smallest AST block covering its line, and findings whose blocks match land in the same cluster — so the same bug survives the line-number drift between runs. Near-identical findings in a cluster then collapse into one canonical row, and the result is scored by how many independent reviewers agreed. The full mechanism — clustering, dedupe, and trust-aware confidence — is on the Reconciler page.
Still have a question?
The docs cover configuration, payload modes, and the full command surface.
Read the docs