
Ferramenta CLI com inteligência artificial que revisa código em busca de vulnerabilidades de segurança, bugs e anti-padrões usando LLMs. Suporta provedores locais e na nuvem, diffs do git e integração com CI/CD.
Revisão de código com IA diretamente no seu terminal.
Um comando. Feedback instantâneo. Detecta vulnerabilidades de segurança, bugs e padrões ruins antes de chegarem à produção.
Instalar · Início Rápido · Uso · Provedores · Contribuir
O codereview envia seu código para um LLM e retorna uma revisão estruturada e codificada por cores diretamente no terminal — com classificações de gravidade, referências de linha e sugestões concretas de correção.
Sem navegador. Sem PR. Sem esperar por colegas. Apenas:
codereview app.py
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
./install.sh
Ou manualmente:
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
Todas as dependências (rich, requests) são instaladas automaticamente. Nada mais a configurar.
O codereview precisa de um LLM para analisar seu código. A opção gratuita mais rápida é o Groq — sem cartão de crédito, sem teste, apenas gratuito.
export GROQ_API_KEY="gsk_sua_chave_aqui"
Para torná-la permanente (para não precisar defini-la a cada sessão do terminal):
# Para zsh (padrão no Mac)
echo 'export GROQ_API_KEY="gsk_sua_chave_aqui"' >> ~/.zshrc
source ~/.zshrc
# Para bash (padrão no Linux)
echo 'export GROQ_API_KEY="gsk_sua_chave_aqui"' >> ~/.bashrc
source ~/.bashrc
codereview --init groq
codereview seu_arquivo.py
Pronto. Você está executando revisões de código com IA.
Primeira vez executando? Basta digitar codereview sem argumentos e ele o guiará por toda a configuração.
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 codigo_suspeito.py | codereview --stdin
codereview app.py --model gpt-4
codereview app.py --provider ollama
codereview --setup
O codereview funciona com qualquer API compatível com OpenAI. Escolha o que funciona para você:
export GROQ_API_KEY="gsk_sua_chave_aqui"
codereview --init groq
# 1. Instalar o Ollama
# Mac: Baixe de https://ollama.com
# Linux: curl -fsSL https://ollama.com/install.sh | sh
# 2. Baixar um modelo
ollama pull llama3
# 3. Iniciar o servidor
ollama serve
# 4. Inicializar (nenhuma chave de API necessária)
codereview --init ollama
export OPENAI_API_KEY="sk-..."
codereview --init openai
export ANTHROPIC_API_KEY="sk-ant-..."
codereview --init anthropic
A configuração é armazenada em ~/.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
}
As chaves de API nunca são armazenadas no arquivo de configuração. Elas são lidas apenas de variáveis de ambiente.
export CODEREVIEW_API_KEY="qualquer-chave" # Substituição universal
export CODEREVIEW_MODEL="gpt-4" # Substituir modelo
codereview app.py --model gpt-4 --provider openai
Seu Código --> CLI codereview --> API LLM --> Saída Estruturada no Terminal
(arquivo/diff) (construtor de prompt) (qualquer provedor) (achados com código de cores)
$ 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.
Adicione ao seu fluxo de trabalho do 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 # Versão
│ ├── cli.py # Interface de linha de comando + configuração inicial
│ ├── reviewer.py # Chamadas à API LLM + análise de resposta
│ ├── formatter.py # Formatação de saída rica no terminal
│ ├── git_utils.py # Utilitários de extração de diff/arquivo git
│ └── config.py # Gerenciamento de configuração + manipulação de chave de API
├── tests/
│ ├── test_reviewer.py # Testes de análise de revisão
│ └── test_git_utils.py # Testes de utilitários git
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md
Você não definiu sua chave de API. A opção gratuita mais rápida:
# 1. Obtenha uma chave gratuita em https://console.groq.com
# 2. Defina-a:
export GROQ_API_KEY="gsk_sua_chave_aqui"
codereview --init groq
Seu cliente HTTP está sendo bloqueado pelo Cloudflare. Certifique-se de estar atualizado:
git pull
pip install -e .
O modelo foi descontinuado. Re-inicialize para obter o modelo mais recente:
codereview --init groq
O servidor Ollama não está em execução:
ollama serve
Depois tente novamente em um novo terminal.
As dependências não foram instaladas. Execute:
pip install rich requests
Ou reinstale:
pip install -e .
A instalação não o adicionou ao seu PATH. Use diretamente:
python3 -m codereview.cli seu_arquivo.py
Ou crie um alias:
echo 'alias codereview="python3 -m codereview.cli"' >> ~/.zshrc
source ~/.zshrc
PRs são bem-vindos! Este projeto é mantido ativamente.
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
pip install pytest
pytest -v
MIT — veja LICENSE
Se o codereview te salvou de um bug, dê uma ⭐
Construído por Jayden Dancer
| Severidade | O que encontra | Exemplo |
|---|
| 🔴 Crítico | Vulnerabilidades de segurança, perda de dados, travamentos | SQL injection, eval() em entrada do usuário, segredos codificados |
| 🟡 Aviso | Bugs, falta de tratamento de erros, condições de corrida | Divisão por zero, exceções não tratadas, vazamento de recursos |
| 🔵 Info | Melhorias de desempenho, padrões melhores | Alocações desnecessárias, falta de cache, consultas N+1 |
| ⚪ Estilo | Nomenclatura, formatação, documentação | Docstrings ausentes, nomenclatura inconsistente, código morto |