An AI-powered code reviewer that automatically reviews your pull requests using Claude.
Click the link below to install the Claude PR Reviewer app on your repository:
Select the repositories you want to enable automatic PR reviews for.
Create a .ai-reviewer.yml file in the root of your repository to configure how reviews work.
auto_review: true
reviewers:
default:
display_name: "Claude"
avatar: "🤖"
prompt: |
You are a senior software engineer reviewing this pull request.
Focus on:
- Code correctness and potential bugs
- Code style and best practices
- Performance considerations
- Security vulnerabilities
Be constructive and helpful in your feedback.You can configure multiple specialized reviewers that trigger on specific file patterns or labels:
auto_review: false # Only trigger reviewers with matching triggers
reviewers:
general:
display_name: "Code Reviewer"
avatar: "👨💻"
prompt: "Review for general code quality and best practices."
triggers:
- paths: ["src/**"]
security:
display_name: "Security Auditor"
avatar: "🔒"
prompt: "Focus on security vulnerabilities, injection attacks, and authentication issues."
triggers:
- paths: ["src/auth/**", "src/api/**"]
- labels: ["security"]
tests:
display_name: "Test Reviewer"
avatar: "🧪"
prompt: "Review test coverage, test quality, and suggest missing test cases."
triggers:
- paths: ["tests/**", "**/*.test.*", "**/*.spec.*"]| Option | Type | Description |
|---|---|---|
auto_review |
boolean | If true, all reviewers without triggers run on every PR |
reviewers |
object | Map of reviewer configurations |
| Option | Type | Description |
|---|---|---|
display_name |
string | Name shown on review comments |
avatar |
string | Emoji or avatar for the reviewer |
prompt |
string | Instructions for Claude on how to review |
triggers |
array | Conditions that activate this reviewer |
Triggers use OR logic - if any trigger matches, the reviewer runs.
| Option | Type | Description |
|---|---|---|
paths |
array | Glob patterns for file paths (e.g., src/**/*.py) |
labels |
array | PR labels that trigger this reviewer |
auto_review: true
reviewers:
default:
display_name: "Python Reviewer"
avatar: "🐍"
prompt: |
Review this Python code for:
- PEP 8 compliance
- Type hint usage
- Proper error handling
- Pythonic idiomsauto_review: true
reviewers:
default:
display_name: "React Reviewer"
avatar: "⚛️"
prompt: |
Review this React/TypeScript code for:
- Component design and reusability
- Hook usage and dependencies
- TypeScript type safety
- Performance (unnecessary re-renders)
- Accessibility concernsauto_review: false
reviewers:
frontend:
display_name: "Frontend Reviewer"
avatar: "🎨"
prompt: "Review frontend code for UI/UX, accessibility, and React best practices."
triggers:
- paths: ["packages/web/**", "packages/ui/**"]
backend:
display_name: "Backend Reviewer"
avatar: "⚙️"
prompt: "Review backend code for API design, database queries, and error handling."
triggers:
- paths: ["packages/api/**", "packages/server/**"]
infra:
display_name: "Infrastructure Reviewer"
avatar: "☁️"
prompt: "Review infrastructure code for security, cost optimization, and best practices."
triggers:
- paths: ["terraform/**", "k8s/**", ".github/**"]- When you open or update a pull request, the GitHub App receives a webhook
- The service reads your
.ai-reviewer.ymlconfiguration - Matching reviewers are triggered based on changed files and PR labels
- Claude analyzes the code changes and posts inline comments
- A summary review is submitted on the pull request
If you encounter any issues or have questions, please open an issue in this repository.
