OpenCodeReview (in breve ocr) nasce come assistente interno di code review di Alibaba Group: secondo il progetto ha servito per due anni decine di migliaia di sviluppatori, prima di essere rilasciato alla community come progetto open source. Legge i diff di Git, manda i file modificati a un modello linguistico configurabile e restituisce commenti di revisione strutturati, ancorati alla riga esatta di codice.
Perché non basta chiedere la review a un agente generico
Il README del progetto è esplicito nel descrivere i limiti che si incontrano chiedendo una code review a un agente generalista (Claude Code compreso) tramite una semplice skill testuale:
- Copertura incompleta — su changeset grandi l'agente tende a "tagliare gli angoli", revisionando solo una parte dei file
- Deriva di posizione — il problema segnalato non coincide con il punto reale del codice: numeri di riga e riferimenti ai file scivolano fuori bersaglio
- Qualità instabile — una skill guidata solo dal linguaggio naturale è difficile da debuggare e la qualità oscilla al variare di dettagli minimi del prompt
La causa, secondo gli autori, è architetturale: un processo guidato puramente dal linguaggio non ha vincoli forti.
L'approccio: ingegneria deterministica più agente
La scelta di progetto è dividere i compiti. Quello che non deve sbagliare è affidato a codice deterministico, non al modello:
- Selezione dei file — quali file vanno revisionati e quali filtrati viene deciso da logica applicativa, così nessuna modifica importante si perde
- Raggruppamento intelligente — i file correlati (per esempio
message_en.propertiesemessage_zh.properties) finiscono nella stessa unità di revisione; ogni gruppo gira come sub-agente con contesto isolato, il che rende la revisione stabile anche su changeset enormi e naturalmente parallelizzabile - Matching delle regole — le regole di revisione vengono associate al file in base alle sue caratteristiche (il progetto include documenti di regole dedicati per decine di linguaggi, da Java e Go a PHP, Rust, Swift, Terraform)
- Moduli esterni di posizionamento e riflessione — componenti indipendenti verificano dove va agganciato il commento e se il contenuto regge
All'agente restano le decisioni dinamiche e il recupero di contesto: leggere l'intero file, cercare nel codice, guardare gli altri file modificati.
Nel benchmark pubblicato dal progetto — 200 pull request reali da 50 repository open source, 10 linguaggi, con verifica incrociata di oltre 80 ingegneri senior — ocr dichiara precisione e F1 più alti di un agente generico a parità di modello, consumando circa un nono dei token. Il richiamo (recall) è invece più basso: è un compromesso dichiarato, precisione contro rumore.
Installazione
Serve Git 2.41 o superiore. La CLI si installa da npm:
npm install -g @alibaba-group/open-code-review
Poi si configura il modello (non serve se si usa la modalità delega, vedi sotto):
ocr config provider # sceglie il provider o ne aggiunge uno custom
ocr config model # sceglie il modello del provider attivo
ocr llm test # verifica la connettività
Uso da riga di comando
# tutte le modifiche staged, unstaged e non tracciate
ocr review
# intervallo di branch (dal punto di divergenza da main)
ocr review --from main --to feature-branch
# singolo commit
ocr review --commit abc123
# scansione a file interi, senza bisogno di storia git
ocr scan
ocr scan --path internal/agent
# risultato su file (consigliato quando a leggerlo è un altro agente)
ocr review --format json --output result.json
Le sessioni interrotte si riprendono con ocr session list e --resume <session-id>.
Il plugin per Claude Code
Dentro Claude Code bastano due comandi:
/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review
Si ottengono due slash command: /open-code-review:review e /open-code-review:delegate-review. Esistono integrazioni equivalenti per Codex, Cursor, Kimi Code e OpenCode.
La modalità delega: il pezzo più interessante
Nella delegation mode il modello non lo mette OpenCodeReview, lo mette l'agente che già si sta usando. ocr si occupa solo della parte deterministica — selezione dei file, raggruppamento, risoluzione delle regole — e passa il lavoro a Claude Code, che esegue la revisione con il proprio LLM:
ocr delegate preview
ocr delegate rule src/main.go src/handler.go
In pratica: nessuna API key aggiuntiva, nessun costo separato, ma si guadagnano i vincoli ingegneristici che a un agente generico mancano. Per chi ha già un abbonamento a Claude Code è il modo più diretto di provarlo.
Quando ha senso
| Scenario | Modalità consigliata |
|---|---|
| Provarlo senza configurare nulla, avendo già Claude Code | Plugin + delegate-review |
| Revisione automatica in CI/CD (GitHub Actions, GitLab CI, Gerrit) | CLI con LLM configurato |
| Audit di un codebase sconosciuto, senza diff significativi | ocr scan |
| Changeset molto grandi dove l'agente generico "salta" dei file | CLI o plugin: il raggruppamento a sub-agenti è pensato per questo |
Il progetto è multipiattaforma (Windows, macOS, Linux), ha estensioni per VS Code e IntelliJ IDEA e un visualizzatore di sessioni nel browser per rivedere i commenti e marcarli come risolti o ignorati.