
Outil CLI alimenté par l'IA qui examine le code à la recherche de vulnérabilités de sécurité, de bugs et d'anti-patrons en utilisant des LLM. Prend en charge les fournisseurs locaux et cloud, les diffs Git et l'intégration CI/CD.
Revue de code alimentée par l'IA dans votre terminal.
Une seule commande. Retour instantané. Détecte les vulnérabilités de sécurité, les bugs et les mauvaises pratiques avant qu'ils n'atteignent la production.
Installation · Démarrage rapide · Utilisation · Fournisseurs · Contribution
codereview envoie votre code à un LLM et renvoie une revue structurée et codée par couleur directement dans votre terminal — avec des niveaux de gravité, des références de lignes et des suggestions concrètes de correction.
Pas de navigateur. Pas de PR nécessaire. Pas d'attente des coéquipiers. Juste :
codereview app.py
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
./install.sh
Ou manuellement :
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
Toutes les dépendances (rich, requests) s'installent automatiquement. Rien d'autre à configurer.
codereview a besoin d'un LLM pour analyser votre code. L'option gratuite la plus rapide est Groq — pas de carte de crédit, pas d'essai, juste gratuit.
export GROQ_API_KEY="gsk_your_key_here"
Pour la rendre permanente (afin de ne pas avoir à la définir à chaque session de terminal) :
# For zsh (default on Mac)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.zshrc
source ~/.zshrc
# For bash (default on Linux)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.bashrc
source ~/.bashrc
codereview --init groq
codereview yourfile.py
Voilà. Vous exécutez des revues de code IA.
Première exécution ? Tapez simplement codereview sans arguments et il vous guidera à travers toute la configuration.
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 works with any OpenAI-compatible API. Pick what works for you:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
# 1. Install Ollama
# Mac: Download from https://ollama.com
# Linux: curl -fsSL https://ollama.com/install.sh | sh
# 2. Pull a model
ollama pull llama3
# 3. Start the server
ollama serve
# 4. Initialize (no API key needed)
codereview --init ollama
export OPENAI_API_KEY="sk-..."
codereview --init openai
export ANTHROPIC_API_KEY="sk-ant-..."
codereview --init anthropic
La configuration est stockée dans ~/.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
}
Les clés API ne sont jamais stockées dans le fichier de configuration. Elles sont lues uniquement depuis les variables d'environnement.
export CODEREVIEW_API_KEY="any-key" # Universal override
export CODEREVIEW_MODEL="gpt-4" # Override model
codereview app.py --model gpt-4 --provider openai
Your Code --> codereview CLI --> LLM API --> Structured Terminal Output
(file/diff) (prompt builder) (any provider) (color-coded findings)
$ codereview api/auth.py
Score: 3/10
🔴 CRITICAL — Hardcoded JWT secret
Secret key is hardcoded on line 12.
Suggestion: Use environment variable: os.environ["JWT_SECRET"]
🔴 CRITICAL — No password hashing
Passwords stored in plaintext on line 34.
Suggestion: Use bcrypt: bcrypt.hashpw(password, bcrypt.gensalt())
🟡 WARNING — Token never expires
JWT tokens have no expiration set.
Suggestion: Add exp claim with timedelta
$ git add .
$ codereview --staged
Score: 8/10
🔵 INFO — Consider adding error handling
The new API endpoint doesn't catch ConnectionError.
Suggestion: Wrap in try/except with retry logic.
$ codereview --last 3
Score: 9/10
⚪ STYLE — Inconsistent naming
Mix of snake_case and camelCase in utils.py
Suggestion: Stick to snake_case per PEP 8.
Ajoutez à votre 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 # Version
│ ├── cli.py # Command-line interface + first-run setup
│ ├── reviewer.py # LLM API calls + response parsing
│ ├── formatter.py # Rich terminal output formatting
│ ├── git_utils.py # Git diff/file extraction utilities
│ └── config.py # Configuration management + API key handling
├── tests/
│ ├── test_reviewer.py # Review parsing tests
│ └── test_git_utils.py # Git utility tests
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md
Vous n'avez pas défini votre clé API. L'option gratuite la plus rapide :
# 1. Get a free key at https://console.groq.com
# 2. Set it:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
Votre client HTTP est bloqué par Cloudflare. Assurez-vous d'être à jour :
git pull
pip install -e .
Le modèle a été déprécié. Réinitialisez pour obtenir le dernier modèle :
codereview --init groq
Le serveur Ollama n'est pas en cours d'exécution :
ollama serve
Puis réessayez dans un nouveau terminal.
Les dépendances ne se sont pas installées. Exécutez :
pip install rich requests
Ou réinstallez :
pip install -e .
L'installation ne l'a pas ajouté à votre PATH. Utilisez directement :
python3 -m codereview.cli yourfile.py
Ou créez un alias :
echo 'alias codereview="python3 -m codereview.cli"' >> ~/.zshrc
source ~/.zshrc
Les PRs sont les bienvenues ! Ce projet est activement maintenu.
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
pip install pytest
pytest -v
MIT — voir LICENSE
Si codereview vous a sauvé d'un bug, donnez-lui une ⭐
Construit par Jayden Dancer
| Gravité | Ce qu'il trouve | Exemple |
|---|
| 🔴 Critique | Vulnérabilités de sécurité, perte de données, crashs | Injection SQL, eval() sur entrée utilisateur, secrets codés en dur |
| 🟡 Avertissement | Bugs, gestion d'erreur manquante, conditions de course | Division par zéro, exceptions non gérées, fuites de ressources |
| 🔵 Info | Améliorations de performance, meilleures pratiques | Allocations inutiles, mise en cache manquante, requêtes N+1 |
| ⚪ Style | Nommage, formatage, documentation | Docstrings manquants, nommage incohérent, code mort |