
Strumento CLI basato sull'IA che analizza il codice alla ricerca di vulnerabilità di sicurezza, bug e anti-pattern utilizzando LLM. Supporta provider locali e cloud, git diff e integrazione CI/CD.
Revisione del codice basata su AI nel tuo terminale.
Un comando. Feedback immediato. Rileva vulnerabilità di sicurezza, bug e pattern errati prima che arrivino in produzione.
Installa · Avvio rapido · Utilizzo · Provider · Contribuisci
codereview invia il tuo codice a un LLM e restituisce una recensione strutturata e codificata a colori direttamente nel tuo terminale — con valutazioni di gravità, riferimenti alle righe e suggerimenti concreti per le correzioni.
Niente browser. Nessuna PR richiesta. Nessuna attesa per i colleghi. Basta:
codereview app.py
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
./install.sh
Oppure manualmente:
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
Tutte le dipendenze (rich, requests) si installano automaticamente. Nessun'altra configurazione necessaria.
codereview ha bisogno di un LLM per analizzare il tuo codice. L'opzione gratuita più veloce è Groq — niente carta di credito, niente prova, solo gratuito.
export GROQ_API_KEY="gsk_your_key_here"
Per renderlo permanente (in modo da non doverlo impostare ad ogni sessione del terminale):
# Per zsh (predefinito su Mac)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.zshrc
source ~/.zshrc
# Per bash (predefinito su Linux)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.bashrc
source ~/.bashrc
codereview --init groq
codereview yourfile.py
Ecco fatto. Stai eseguendo revisioni del codice con AI.
Prima volta che esegui? Basta digitare codereview senza argomenti e ti guiderà attraverso l'intera configurazione.
codereview app.py
codereview src/auth.py src/db.py src/api.py
git add .
codereview --staged
codereview --last 3
codereview --diff origin/main
cat suspicious_code.py | codereview --stdin
codereview app.py --model gpt-4
codereview app.py --provider ollama
codereview --setup
codereview funziona con qualsiasi API compatibile con OpenAI. Scegli ciò che funziona per te:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
# 1. Installa Ollama
# Mac: Scarica da https://ollama.com
# Linux: curl -fsSL https://ollama.com/install.sh | sh
# 2. Scarica un modello
ollama pull llama3
# 3. Avvia il server
ollama serve
# 4. Inizializza (nessuna chiave API richiesta)
codereview --init ollama
export OPENAI_API_KEY="sk-..."
codereview --init openai
export ANTHROPIC_API_KEY="sk-ant-..."
codereview --init anthropic
La configurazione è memorizzata in ~/.codereview/config.json:
{
"provider": "groq",
"model": "llama-3.3-70b-versatile",
"base_url": "https://api.groq.com/openai/v1",
"max_tokens": 2048,
"temperature": 0.2
}
Le chiavi API non sono mai memorizzate nel file di configurazione. Vengono lette solo dalle variabili d'ambiente.
export CODEREVIEW_API_KEY="any-key" # Sovrascrittura universale
export CODEREVIEW_MODEL="gpt-4" # Sovrascrittura modello
codereview app.py --model gpt-4 --provider openai
Tuoi Codice --> CLI codereview --> API LLM --> Output Strutturato Terminale
(file/diff) (costruttore prompt) (qualsiasi provider) (risultati codificati a colori)
$ codereview api/auth.py
Punteggio: 3/10
🔴 CRITICO — Segreto JWT hardcoded
La chiave segreta è hardcoded alla riga 12.
Suggerimento: Usa variabile d'ambiente: os.environ["JWT_SECRET"]
🔴 CRITICO — Nessun hashing delle password
Le password sono memorizzate in chiaro alla riga 34.
Suggerimento: Usa bcrypt: bcrypt.hashpw(password, bcrypt.gensalt())
🟡 AVVISO — Il token non scade mai
I token JWT non hanno scadenza impostata.
Suggerimento: Aggiungi rivendicazione exp con timedelta
$ git add .
$ codereview --staged
Punteggio: 8/10
🔵 INFO — Considera l'aggiunta di gestione errori
Il nuovo endpoint API non cattura ConnectionError.
Suggerimento: Avvolgi in try/except con logica di retry.
$ codereview --last 3
Punteggio: 9/10
⚪ STILE — Nomenclatura incoerente
Mix di snake_case e camelCase in utils.py
Suggerimento: Mantieni snake_case come da PEP 8.
Aggiungi al tuo workflow GitHub Actions:
name: Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- run: pip install ai-code-review
- run: codereview --diff origin/main
env:
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
ai-code-review/
├── codereview/
│ ├── __init__.py # Versione
│ ├── cli.py # Interfaccia a riga di comando + configurazione primo avvio
│ ├── reviewer.py # Chiamate API LLM + analisi risposta
│ ├── formatter.py # Formattazione output terminale ricco
│ ├── git_utils.py # Utilità di estrazione diff/file Git
│ └── config.py # Gestione configurazione + gestione chiavi API
├── tests/
│ ├── test_reviewer.py # Test analisi revisione
│ └── test_git_utils.py # Test utilità Git
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md
Non hai impostato la chiave API. L'opzione gratuita più veloce:
# 1. Ottieni una chiave gratuita su https://console.groq.com
# 2. Imposta:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
Il tuo client HTTP è bloccato da Cloudflare. Assicurati di essere aggiornato:
git pull
pip install -e .
Il modello è stato deprecato. Reinizializza per ottenere il modello più recente:
codereview --init groq
Il server Ollama non è in esecuzione:
ollama serve
Poi riprova in un nuovo terminale.
Le dipendenze non sono state installate. Esegui:
pip install rich requests
Oppure reinstalla:
pip install -e .
L'installazione non lo ha aggiunto al tuo PATH. Usalo direttamente:
python3 -m codereview.cli yourfile.py
Oppure crea un alias:
echo 'alias codereview="python3 -m codereview.cli"' >> ~/.zshrc
source ~/.zshrc
PR benvenute! Questo progetto è mantenuto attivamente.
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
pip install pytest
pytest -v
MIT — vedi LICENSE
Se codereview ti ha salvato da un bug, dagli una ⭐
Creato da Jayden Dancer
| Gravità | Cosa trova | Esempio |
|---|
| 🔴 Critico | Vulnerabilità di sicurezza, perdita di dati, crash | SQL injection, eval() su input utente, segreti hardcoded |
| 🟡 Avviso | Bug, gestione errori mancante, race condition | Divisione per zero, eccezioni non gestite, perdite di risorse |
| 🔵 Info | Miglioramenti delle prestazioni, pattern migliori | Allocazioni inutili, cache mancante, query N+1 |
| ⚪ Stile | Nomenclatura, formattazione, documentazione | Docstring mancanti, nomenclatura incoerente, codice morto |