AIを活用したコードレビューをターミナルで。
ワンコマンドで即座にフィードバック。セキュリティ脆弱性、バグ、悪いパターンを本番環境に届く前にキャッチします。
codereviewはコードをLLMに送信し、構造化された色分けされたレビューをターミナルに直接表示します — 重要度評価、行番号参照、具体的な修正提案付き。
ブラウザ不要。PR不要。チームメイトを待つ必要なし。次のようにするだけ:
codereview app.py
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
./install.sh
または手動で:
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
すべての依存関係(rich, requests)は自動インストールされます。他に設定は必要ありません。
codereviewはコードを分析するためにLLMが必要です。最も速い無料オプションは Groq です — クレジットカード不要、トライアル不要、単に無料です。
export GROQ_API_KEY="gsk_your_key_here"
永続的にするため(毎回ターミナルセッションで設定する必要がなくなります):
# zshの場合(Macのデフォルト)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.zshrc
source ~/.zshrc
# bashの場合(Linuxのデフォルト)
echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.bashrc
source ~/.bashrc
codereview --init groq
codereview yourfile.py
以上です。AIコードレビューが動いています。
初回実行ですか? 引数なしでcodereviewと入力するだけで、セットアップ全体を案内します。
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はOpenAI互換のAPIならどれでも動作します。自分に合ったものを選んでください:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
# 1. Ollamaをインストール
# Mac: https://ollama.com からダウンロード
# Linux: curl -fsSL https://ollama.com/install.sh | sh
# 2. モデルをプル
ollama pull llama3
# 3. サーバーを起動
ollama serve
# 4. 初期化(APIキー不要)
codereview --init ollama
export OPENAI_API_KEY="sk-..."
codereview --init openai
export ANTHROPIC_API_KEY="sk-ant-..."
codereview --init anthropic
設定は ~/.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
}
APIキーは設定ファイルに保存されません。 環境変数からのみ読み取られます。
export CODEREVIEW_API_KEY="any-key" # 汎用上書き
export CODEREVIEW_MODEL="gpt-4" # モデルの上書き
codereview app.py --model gpt-4 --provider openai
あなたのコード --> codereview CLI --> LLM API --> 構造化されたターミナル出力
(file/diff) (プロンプトビルダー) (任意のプロバイダー) (色分けされた結果)
$ codereview api/auth.py
Score: 3/10
🔴 CRITICAL — ハードコードされたJWTシークレット
12行目に秘密鍵がハードコードされています。
提案: 環境変数を使用: os.environ["JWT_SECRET"]
🔴 CRITICAL — パスワードのハッシュ化なし
34行目でパスワードが平文で保存されています。
提案: bcryptを使用: bcrypt.hashpw(password, bcrypt.gensalt())
🟡 WARNING — トークンに有効期限なし
JWTトークンに有効期限が設定されていません。
提案: timedeltaでexpクレームを追加
$ git add .
$ codereview --staged
Score: 8/10
🔵 INFO — エラーハンドリングの追加を検討
新しいAPIエンドポイントがConnectionErrorをキャッチしていません。
提案: try/exceptでラップし、リトライロジックを追加。
$ codereview --last 3
Score: 9/10
⚪ STYLE — 命名が不統一
utils.pyでsnake_caseとcamelCaseが混在
提案: PEP 8に従いsnake_caseに統一。
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 # バージョン
│ ├── cli.py # コマンドラインインターフェース + 初回実行セットアップ
│ ├── reviewer.py # LLM API呼び出し + 応答解析
│ ├── formatter.py # Richを用いたターミナル出力フォーマット
│ ├── git_utils.py # Git差分/ファイル抽出ユーティリティ
│ └── config.py # 設定管理 + APIキー処理
├── tests/
│ ├── test_reviewer.py # レビュー解析テスト
│ └── test_git_utils.py # Gitユーティリティテスト
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md
APIキーが設定されていません。最も速い無料オプション:
# 1. https://console.groq.com で無料キーを取得
# 2. 設定:
export GROQ_API_KEY="gsk_your_key_here"
codereview --init groq
HTTPクライアントがCloudflareによってブロックされています。最新版であることを確認:
git pull
pip install -e .
モデルが非推奨になりました。初期化し直して最新モデルを取得:
codereview --init groq
Ollamaサーバーが起動していません:
ollama serve
その後、新しいターミナルで再試行。
依存関係がインストールされていません。実行:
pip install rich requests
または再インストール:
pip install -e .
インストールでPATHに追加されませんでした。直接使用:
python3 -m codereview.cli yourfile.py
またはエイリアスを作成:
echo 'alias codereview="python3 -m codereview.cli"' >> ~/.zshrc
source ~/.zshrc
PR歓迎!このプロジェクトは積極的にメンテナンスされています。
git clone https://github.com/jaydendancer12/ai-code-review.git
cd ai-code-review
pip install -e .
pip install pytest
pytest -v
MIT — 詳しくは LICENSE を参照
codereviewがバグからあなたを救ったなら、⭐を付けてください
Jayden Dancer によって作られました
| 重要度 | 見つけるもの | 例 |
|---|
| 🔴 クリティカル | セキュリティ脆弱性、データ損失、クラッシュ | SQLインジェクション、ユーザー入力に対するeval()、ハードコードされた秘密情報 |
| 🟡 警告 | バグ、エラーハンドリング不足、競合状態 | ゼロ除算、未処理の例外、リソースリーク |
| 🔵 情報 | パフォーマンス改善、より良いパターン | 不要なアロケーション、キャッシュ不足、N+1クエリ |
| ⚪ スタイル | 命名、フォーマット、ドキュメント | 不足しているドキュメント文字列、不整合な命名、デッドコード |