
Herramienta CLI impulsada por IA que revisa el código en busca de vulnerabilidades de seguridad, errores y antipatrones utilizando LLMs. Admite proveedores locales y en la nube, diferencias de git e integración con CI/CD.
Revisión de código impulsada por IA en tu terminal.
Un comando. Comentarios instantáneos. Detecta vulnerabilidades de seguridad, errores y malas prácticas antes de que lleguen a producción.
Instalación · Inicio rápido · Uso · Proveedores · Contribuir
codereview envía tu código a un LLM y devuelve una revisión estructurada y codificada por colores directamente en tu terminal — con clasificaciones de gravedad, referencias de línea y sugerencias concretas de corrección.
Sin navegador. Sin necesidad de PR. Sin esperar a compañeros. Solo:
codereview app.py
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
./install.sh
O manualmente:
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
Todas las dependencias (rich, requests) se instalan automáticamente. No hay nada más que configurar.
codereview necesita un LLM para analizar tu código. La opción gratuita más rápida es Groq — sin tarjeta de crédito, sin prueba, solo gratis.
export GROQ_API_KEY="gsk_tu_clave_aqui"
Para hacerlo permanente (para no tener que configurarlo en cada sesión de terminal):
# Para zsh (predeterminado en Mac)
echo 'export GROQ_API_KEY="gsk_tu_clave_aqui"' >> ~/.zshrc
source ~/.zshrc
# Para bash (predeterminado en Linux)
echo 'export GROQ_API_KEY="gsk_tu_clave_aqui"' >> ~/.bashrc
source ~/.bashrc
codereview --init groq
codereview tu_archivo.py
Eso es todo. Ya estás ejecutando revisiones de código con IA.
¿Es la primera vez que lo ejecutas? Simplemente escribe codereview sin argumentos y te guiará a través de toda la configuración.
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 funciona con cualquier API compatible con OpenAI. Elige la que mejor se adapte a ti:
export GROQ_API_KEY="gsk_tu_clave_aqui"
codereview --init groq
# 1. Instala Ollama
# Mac: Descarga desde https://ollama.com
# Linux: curl -fsSL https://ollama.com/install.sh | sh
# 2. Descarga un modelo
ollama pull llama3
# 3. Inicia el servidor
ollama serve
# 4. Inicializa (no se necesita clave API)
codereview --init ollama
export OPENAI_API_KEY="sk-..."
codereview --init openai
export ANTHROPIC_API_KEY="sk-ant-..."
codereview --init anthropic
La configuración se almacena en ~/.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
}
Las claves API nunca se almacenan en el archivo de configuración. Se leen únicamente de las variables de entorno.
export CODEREVIEW_API_KEY="cualquier-clave" # Sobrescritura universal
export CODEREVIEW_MODEL="gpt-4" # Sobrescribe el modelo
codereview app.py --model gpt-4 --provider openai
Tu Código --> CLI codereview --> API LLM --> Salida Estructurada en Terminal
(archivo/diff) (constructor de prompt) (cualquier proveedor) (hallazgos codificados por colores)
$ 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.
Agrega a tu flujo de trabajo de 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 # Versión
│ ├── cli.py # Interfaz de línea de comandos + configuración inicial
│ ├── reviewer.py # Llamadas a API LLM + análisis de respuesta
│ ├── formatter.py # Formateo de salida en terminal con Rich
│ ├── git_utils.py # Utilidades de extracción de diffs/archivos de git
│ └── config.py # Gestión de configuración + manejo de claves API
├── tests/
│ ├── test_reviewer.py # Pruebas de análisis de revisión
│ └── test_git_utils.py # Pruebas de utilidades de git
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md
No has configurado tu clave API. La opción gratuita más rápida:
# 1. Obtén una clave gratuita en https://console.groq.com
# 2. Configúrala:
export GROQ_API_KEY="gsk_tu_clave_aqui"
codereview --init groq
Tu cliente HTTP está siendo bloqueado por Cloudflare. Asegúrate de estar actualizado:
git pull
pip install -e .
El modelo fue descontinuado. Reinicializa para obtener el modelo más reciente:
codereview --init groq
El servidor de Ollama no está en ejecución:
ollama serve
Luego inténtalo de nuevo en una nueva terminal.
Las dependencias no se instalaron. Ejecuta:
pip install rich requests
O reinstala:
pip install -e .
La instalación no lo agregó a tu PATH. Úsalo directamente:
python3 -m codereview.cli tu_archivo.py
O crea un alias:
echo 'alias codereview="python3 -m codereview.cli"' >> ~/.zshrc
source ~/.zshrc
¡PRs son bienvenidos! Este proyecto se mantiene activamente.
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
pip install pytest
pytest -v
MIT — ver LICENSE
Si codereview te salvó de un error, dale una ⭐
Construido por Jayden Dancer
| Gravedad | Lo que encuentra | Ejemplo |
|---|
| 🔴 Crítico | Vulnerabilidades de seguridad, pérdida de datos, fallos | Inyección SQL, eval() en entrada de usuario, secretos hardcodeados |
| 🟡 Advertencia | Errores, falta de manejo de errores, condiciones de carrera | División por cero, excepciones no capturadas, fugas de recursos |
| 🔵 Información | Mejoras de rendimiento, mejores patrones | Asignaciones innecesarias, faltas de caché, consultas N+1 |
| ⚪ Estilo | Nombrado, formato, documentación | Faltas de docstrings, nombrado inconsistente, código muerto |