Sober | Local-first open-source code review for the agentic era
Public Beta<br>v0.8.5-beta — Defense Module: install gate + agent-hook detector. Enterprise hardened image: pay what you want, 0 € default.<br>Get the offer
Source
The open-source code review standard · v0.8.5-beta
AI writes the code.<br>Sober keeps it honest.
AI tools ship code at machine speed; most of it never sees a<br>serious reviewer. Sober is that reviewer: a state-of-the-art,<br>100% open-source code review app that catches secrets, unsafe<br>shell, and AI slop before they leave your machine, reasons<br>across 10 languages (320 grammars routable), and<br>backs every finding with evidence you can inspect. No cloud. No<br>subscription. Your models, your forge, your merge authority.
Install Sober — Free
Read the agent briefing
No subscription<br>Local-first<br>100% open source<br>Evidence-backed<br>Your models<br>Forgejo + GitLab supported
$ sober version<br>sober v0.8.5-beta
$ sober status --base HEAD<br>repo: sovereign-society/sober<br>route: frontier<br>preflight: pass<br>queue: 0 idle
$ sober preflight --base HEAD<br>preflight OK
How Sober works
Two jobs, one product. Local mode is the second thought at the<br>keyboard. Raccoon is the forge-side gatekeeper that reviews MRs and<br>PRs without taking merge authority away from humans.
Local tool<br>At the keyboard
Run status, preflight, and review before commit or push. State<br>lives under .sober/. Nothing is published unless you<br>run an explicit write command.
sober status<br>sober preflight --base main<br>sober review --base main<br>sober forge post --merge-request 42
Raccoon daemon<br>Beside the forge
Webhooks from Forgejo or GitLab enqueue jobs. Raccoon reviews the<br>MR worktree, stores evidence, posts append-only notes, and can set<br>advisory labels. Humans still merge.
sober raccoon forge serve-webhook \<br>--config /etc/sober/raccoon.kdl \<br>--listen 0.0.0.0:8787
sober raccoon forge catchup --once
01<br>Status
Read real repo state before any model call.
sober status
02<br>Preflight
Secrets, private metadata, shell danger, prompt injection.
sober preflight
03<br>Review
Route to local or approved remote models under your policy.
sober review
04<br>Evidence
SQLite store keeps runs, findings, jobs, memory, resume packs.
sober plan evidence
05<br>Forge post
Optional write: one append-only note, optional advisory labels.
sober forge post
What ships in v0.8.5-beta
This is what state-of-the-art code review looks like in the<br>agentic era: deterministic guardrails that run in milliseconds,<br>model review with evidence you can inspect, and a forge daemon<br>that never auto-merges. Built for the age of agent-generated<br>code — and for the humans who have to live with it.
Git hooks, one command
sober hooks install all wires pre-commit, pre-merge,<br>and pre-push to run deterministic preflight — no model, works<br>offline, catches secrets and slop before they leave your machine.
Explain every finding
Each finding gets a stable ID (F-49, F-720).<br>sober explain F-49 shows severity, evidence, the exact<br>source line, a suggested fix, and copy-paste verify commands.<br>--polish adds a plain-language model summary.
Deterministic preflight
No model required. Pattern-matches secrets, private files, unsafe<br>eval(/exec( calls, curl|sh<br>pipes, and AI-slop shapes. Tightened in v0.8.1 to stop<br>false-positives on comments and test fixtures; v0.8.3-beta kills<br>the identifier-substring and fixture-URL false-positive classes.<br>v0.8.5-beta adds the agent-hook detector — flags<br>.claude/settings.json SessionStart hooks, VS Code<br>folderOpen tasks, and npm lifecycle scripts that<br>fetch runtimes (the Shai-Hulud worm surfaces).
Four model routes
local (Ollama, default), daily,<br>frontier, security. Each with its own<br>budget, privacy classification, and endpoint chain. BYOK — your<br>keys, your providers, your call-home policy.
Advisory, never auto-merge
The Raccoon daemon posts evidence and sets advisory labels<br>(Sober clean, Sober findings,<br>Sober error). Merge authority stays with the human.<br>Always. By design.
Universal anti-slop
Every reviewer profile includes a non-negotiable anti-slop floor:<br>reject rubber-stamp LGTM, untested paste, vendored junk.<br>AI-assisted code is assumed; the demand is evidence, not approval.
Tier-1 language intelligence
10 languages reason, 320 route. Sober parses 320<br>tree-sitter grammars and extracts review-relevant AST facts —<br>functions, calls, auth/db calls, defers, injection sinks — for<br>Go, Rust, Zig, Janus, Python, JavaScript, TypeScript,<br>TSX, C, and Bash . Bash is the highest-stakes surface:<br>eval, exec, source sinks.<br>Adding a language's reasoning is one declarative<br>.scm query file — no hand-coded extractor per<br>language. --auto-provision recovers a missing grammar<br>during review; local_only routes stay hermetically<br>offline by constitutional design.
One reviewer, two voices. Yours either way.
Sober adapts to whoever is writing the code. Senior engineers get<br>signal, not noise. Junior developers get a reviewer that teaches.<br>Same product, two professional modes — and the human...