
CodeVetter
Execution-backed verification for coding-agent changes
About CodeVetter
CodeVetter is an open-source verification tool for code written by AI coding agents. Its starting point is that agents write code fast and leave it unverified: a plausible diff, or a model saying it looks good, is not proof that the requested task was done. CodeVetter binds the requested task to the exact change the agent made, runs the repository's own checks against it (tests, type checks, builds, browser flows and API checks) and keeps a pass, fail or unverified verdict together with the evidence and the limits behind it. A model can suggest what to test, but in CodeVetter execution decides, and missing or irrelevant evidence stays marked as unverified rather than being turned into a confidence score.
It runs locally on an Apple silicon Mac as a native desktop app with a bundled codevetter CLI and a local MCP sidecar. There is no CodeVetter account and no hosted CodeVetter server: product state and verification evidence live in a local SQLite database on your machine. Optional model review goes straight to the provider you configure (Anthropic, OpenAI or OpenRouter), using your own credentials. The project is built by Sarthak Agrawal and published on GitHub at Codevetter/codevetter with more than 1,500 commits and frequent signed releases, the latest being version 1.16.2 on 22 October 2026. The site and the root package.json describe it as ISC licensed, while the repository LICENSE file is the MIT licence; both are permissive. There is no paid plan; your only cost is whatever your chosen model provider charges for optional review.
You download the signed and notarized DMG from the latest GitHub release, drag CodeVetter into Applications and launch it. It needs an Apple silicon Mac on macOS 14 or newer. If you only want the terminal tools, a published installer verifies the release SHA-256 digest, the Developer ID signature and Gatekeeper acceptance, then links codevetter and codevetter-mcp into your local bin folder without opening the app.
Next you point it at a local repository and an agent change. From the CLI, a call such as codevetter check with a commit range and a task description (the homepage example is "Reject expired sessions") runs the declared checks and prints a result for each one: a failing test, a passing typecheck, and a browser refresh journey that stays unverified because nothing exercised it. CodeVetter separates regressions introduced by the agent from failures that already existed, and links each failing check back to the exact change with the command, the bounded output and the limitation, so a reviewer can confirm it without re-running everything.
Finally you keep or share the result. Completed reviews export fail-closed JSON, Markdown and self-contained offline HTML evidence, and an MCP client such as Claude Code can be given read-only access to one repository's stored evidence after you explicitly enable that scope.
- •
Task-Bound Verification - The requested outcome and the exact agent revision travel together, so the verifier cannot quietly grade an easier task. Each verdict covers only the declared task and evidence boundary; a pass does not claim behaviour that was never checked.
- •
Repository-Owned Checks - Your project's own tests, builds, type checks, browser flows and API checks set the verdict boundary. Checks run in a bounded environment, and agent regressions are kept apart from pre-existing and environment failures.
- •
Evidence Bundles - Every verdict keeps its command, bounded output, artifacts and stated limitations. Reviews export as fail-closed JSON, Markdown or offline HTML, so another engineer or another agent can re-check the result later.
- •
Bundled CLI and MCP Sidecar - The app ships the codevetter CLI with JSON output and a codevetter-mcp server. MCP access is scoped to one repository you enable and exposes existing evidence read-only; it does not run checks or an agent on your behalf.
- •
Optional Model Review - Provider-backed review runs through a supported local agent CLI such as Claude or Codex, with your Anthropic, OpenAI or OpenRouter keys stored in the macOS keychain. Review is treated as one input that can flag suspicious code and suggest what to test, never as the verdict.
- •
Local-First and Inspectable - No account, no hosted backend and no default crash or usage telemetry. A public benchmark of 27 synthetic cases and 29 labelled findings publishes its inputs, scorer, outputs and limitations, and the site states plainly that it measures a narrow recognition task rather than production-wide accuracy.
CodeVetter is for engineers and teams who supervise or evaluate coding-agent changes and want reproducible acceptance evidence before they trust, compare or ship an agent's work. It is most useful when an agent touches behaviour that can look fine in a diff but fail at runtime, such as authorization rules, browser state, API contracts, persistence or concurrency. Solo developers running Claude Code or Codex can check a change set on their own machine before pushing, and teams can attach an exported evidence bundle to a pull request instead of a bare approval.
It also suits developers with strict data boundaries, since there is no CodeVetter server holding the repository and the only outside party is the model provider you choose for optional review. The site positions it alongside hosted pull-request reviewers such as CodeRabbit and Greptile rather than as a replacement: those review every pull request after you push, while CodeVetter verifies one change locally before you push, and a team can run both. It is not yet for Intel Mac, Windows or Linux users, as only an Apple silicon build is published, and in-app automatic updates are still being verified, so updates are manual for now.

















