CodeRabbit Configuration: Complete .coderabbit.yaml Reference (2026)
Complete .coderabbit.yaml reference - review profiles, path filters, custom instructions, linter config, and example configs for every team size.
Published:
Why CodeRabbit configuration matters
Every engineering team has different coding standards, project structures, and review priorities. Running CodeRabbit with its default settings works well enough for getting started, but the real value comes from tailoring the AI reviewer to understand your specific codebase. The .coderabbit.yaml configuration file is how you make that happen.
Without configuration, CodeRabbit reviews every file with the same level of scrutiny, applies generic review criteria, and has no understanding of which parts of your codebase are security-critical versus which are boilerplate. With a well-tuned configuration, CodeRabbit focuses on what matters most to your team - checking API routes for authentication gaps, database code for injection vulnerabilities, and infrastructure files for misconfigurations - while staying quiet on auto-generated files, lock files, and build artifacts that do not need review.
This reference guide covers every section of the .coderabbit.yaml file in detail, with practical examples for solo developers, small teams, and large organizations. If you have not installed CodeRabbit yet, start with our how to use CodeRabbit guide first. If you want a broader overview of the tool’s capabilities, read our CodeRabbit review.
The .coderabbit.yaml file structure
The .coderabbit.yaml file lives in the root directory of your repository and must be committed to your default branch (typically main or master). CodeRabbit reads this file every time it reviews a pull request and applies your settings automatically.
Here is the complete top-level structure:
# .coderabbit.yaml - complete structure
language: en-US
reviews:
profile: chill
request_changes_workflow: false
high_level_summary: true
high_level_summary_placeholder: "@coderabbitai summary"
auto_title_placeholder: "@coderabbitai"
poem: false
review_status: true
collapse_walkthrough: false
sequence_diagrams: true
changed_files_summary: true
instructions: ""
path_filters: []
path_instructions: []
auto_review:
enabled: true
drafts: false
incremental_reviews: true
tools:
enabled: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
Every field is optional. If you omit a field, CodeRabbit uses its default value. You can start with a minimal configuration and expand it as you learn which settings matter most for your team.
The simplest possible .coderabbit.yaml file that still changes behavior might look like this:
reviews:
profile: chill
path_filters:
- "!**/*.lock"
This sets the review profile to chill and excludes lock files from review. Everything else uses defaults.
Review profiles
The reviews.profile field controls how aggressively CodeRabbit comments on your pull requests. This is the single most impactful configuration option because it determines the overall volume and scope of review feedback.
chill
reviews:
profile: chill
The chill profile generates fewer comments and focuses on significant issues only. CodeRabbit will flag bugs, security vulnerabilities, logic errors, and potential runtime failures. It stays quiet on style preferences, naming conventions, missing documentation, and minor code quality suggestions.
Best for: Teams that are new to CodeRabbit, teams that already have strong linting and formatting tools in place, or teams where developers find verbose automated feedback disruptive.
assertive
reviews:
profile: assertive
The assertive profile is more thorough. In addition to bugs and security issues, CodeRabbit comments on code style, naming quality, documentation gaps, test coverage concerns, and adherence to best practices. This profile generates significantly more comments per PR.
Best for: Teams that want comprehensive feedback, teams without extensive linting tooling, or teams doing thorough code quality enforcement.
followup
reviews:
profile: followup
The followup profile behaves like assertive but adds an additional layer - it tracks whether previous review comments were addressed in subsequent commits. If CodeRabbit flagged an issue on a commit and the next push does not resolve it, CodeRabbit brings it up again.
Best for: Teams that want accountability on review feedback, teams with less experienced developers who benefit from reminders, or teams where review comments frequently go unaddressed.
Most teams should start with chill and move to assertive after two to four weeks once the team is comfortable with CodeRabbit’s feedback patterns. This gradual approach prevents the common failure mode where developers are overwhelmed by automated comments on day one and tune out the tool permanently.
Path filters
The reviews.path_filters field controls which files CodeRabbit includes or excludes from review. This is critical for keeping reviews focused and avoiding noise from files that do not benefit from AI analysis.
Exclusion patterns
Use negation patterns (prefixed with !) to exclude files:
reviews:
path_filters:
# Build artifacts and generated files
- "!**/dist/**"
- "!**/build/**"
- "!**/out/**"
- "!**/.next/**"
# Dependencies
- "!**/node_modules/**"
- "!**/vendor/**"
# Lock files
- "!**/*.lock"
- "!**/package-lock.json"
- "!**/yarn.lock"
- "!**/pnpm-lock.yaml"
- "!**/Gemfile.lock"
- "!**/composer.lock"
# Generated code
- "!**/*.generated.*"
- "!**/*.gen.*"
- "!**/generated/**"
- "!**/__generated__/**"
# Minified files
- "!**/*.min.js"
- "!**/*.min.css"
# Test artifacts
- "!**/coverage/**"
- "!**/__snapshots__/**"
# Assets
- "!**/*.png"
- "!**/*.jpg"
- "!**/*.svg"
- "!**/*.ico"
- "!**/*.woff"
- "!**/*.woff2"
Inclusion patterns
You can also use inclusion patterns (without the ! prefix) to limit CodeRabbit’s scope to specific directories:
reviews:
path_filters:
- "src/**"
- "lib/**"
- "tests/**"
When inclusion patterns are present, CodeRabbit only reviews files matching those patterns and ignores everything else. This is useful for monorepos where you want CodeRabbit focused on specific services.
Combining inclusion and exclusion
You can mix both types:
reviews:
path_filters:
- "src/**"
- "lib/**"
- "!**/*.generated.*"
- "!**/*.lock"
This tells CodeRabbit to review files under src/ and lib/ but still exclude generated files and lock files within those directories.
Path-specific instructions
The reviews.path_instructions field is the most powerful configuration feature in CodeRabbit. It lets you attach natural language review guidance to specific directories or file patterns. When a PR changes files matching a pattern, CodeRabbit reads the associated instructions and adjusts its analysis focus.
Basic structure
reviews:
path_instructions:
- path: "src/api/**"
instructions: |
Review all API endpoints for:
- Input validation on all request parameters
- Proper error handling with appropriate HTTP status codes
- Authentication and authorization checks on every route
- Rate limiting considerations for public endpoints
- path: "src/db/**"
instructions: |
Review database code for:
- SQL injection prevention using parameterized queries only
- Proper connection handling and cleanup
- Transaction usage where multiple writes occur
- Index usage for frequently queried fields
Instructions for different file types
You can target instructions by file extension as well as directory:
reviews:
path_instructions:
- path: "**/*.test.*"
instructions: |
For test files, check:
- Edge case coverage including null, undefined, empty, and boundary values
- Proper assertion usage with specific expected values
- Mock cleanup and isolation between tests
- No hardcoded timeouts or sleep calls
- path: "**/*.tsx"
instructions: |
For React components, check:
- Proper cleanup in useEffect hooks
- Memoization of expensive computations and callbacks
- Accessible markup with proper ARIA attributes
- Error boundary usage for async operations
- path: "**/Dockerfile*"
instructions: |
For Dockerfiles, check:
- Multi-stage builds to minimize image size
- Non-root user for running the application
- Pinned base image versions
- Proper layer ordering for cache efficiency
Monorepo instructions
For monorepos, path instructions let you apply entirely different review criteria to each service:
reviews:
path_instructions:
- path: "services/auth/**"
instructions: |
This is the authentication service. Focus on:
- Token validation and expiration handling
- Password hashing using bcrypt, not MD5 or SHA
- OWASP authentication best practices
- Session management and cookie security
- path: "services/payments/**"
instructions: |
This is the payment processing service. Focus on:
- PCI DSS compliance patterns
- Idempotency of payment operations
- Decimal precision for currency calculations (never use float)
- Audit logging for all payment state changes
- path: "services/notifications/**"
instructions: |
This is the notification service. Focus on:
- Rate limiting for email and SMS sends
- Template injection prevention
- Proper retry logic with exponential backoff
- Dead letter queue handling for failed deliveries
Global review instructions
The reviews.instructions field provides natural language guidance that applies to every file in every PR. Use this to define project-wide conventions and set the overall tone of reviews.
reviews:
instructions: |
This is a TypeScript backend service using Express and PostgreSQL.
We follow these conventions:
- All async functions must use try-catch with structured error logging
- Database queries must use parameterized statements, never string concatenation
- API responses follow our standard envelope format: { data, error, meta }
- Environment variables must be validated at startup, not at usage time
- Do not comment on import ordering (handled by ESLint)
- Do not comment on line length (handled by Prettier)
- Do not comment on missing JSDoc unless the function is exported
Focus on bugs, security issues, and logic errors over style preferences.
The key benefit of global instructions is telling CodeRabbit what not to comment on. If your team already has Prettier for formatting and ESLint for style enforcement, there is no value in CodeRabbit duplicating those checks. Explicit exclusions in the global instructions prevent this overlap and dramatically reduce noise.
Language settings
The top-level language field controls the language CodeRabbit uses for all of its output - review comments, PR summaries, walkthrough descriptions, and chat responses.
language: en-US
Supported language codes include en-US, es, fr, de, ja, zh, ko, pt-BR, it, nl, ru, ar, hi, and over 20 others. This is particularly valuable for internationally distributed teams where not all developers are comfortable reading English review feedback.
# Japanese review comments for a team in Tokyo
language: ja
The language setting applies globally to all CodeRabbit output for the repository. There is no way to set different languages for different file paths or different reviewers within a single repository.
Chat commands
CodeRabbit supports interactive commands through PR comments. While these are not configured in .coderabbit.yaml, understanding them is essential for getting full value from your CodeRabbit configuration.
Available commands
| Command | Effect |
|---|---|
@coderabbitai review | Triggers a full re-review of the PR, re-reading the config file |
@coderabbitai resolve | Dismisses a specific review thread |
@coderabbitai explain | Provides a detailed explanation of the flagged issue |
@coderabbitai generate docstring | Generates documentation for the function in context |
@coderabbitai configuration | Displays the active configuration and any parsing errors |
@coderabbitai help | Lists all available commands |
Chat auto-reply
The chat.auto_reply field controls whether CodeRabbit automatically responds when developers reply to its review comments:
chat:
auto_reply: true
When set to true (the default), CodeRabbit responds conversationally to any reply on its review comments. When set to false, CodeRabbit only responds when explicitly mentioned with @coderabbitai.
For teams that want CodeRabbit to be fully interactive, keep this at true. For teams that find the back-and-forth distracting, set it to false and use the explicit mention syntax when you want a response.
Using commands with configuration
The @coderabbitai configuration command is especially useful when debugging your .coderabbit.yaml. If your configuration changes are not taking effect, post this command on any PR to see what CodeRabbit is actually reading. The output shows the parsed configuration including any syntax errors, default values being used, and the effective settings after merging your file with the defaults.
The @coderabbitai review command forces CodeRabbit to re-read the configuration file, which is helpful when you have just committed a .coderabbit.yaml change and want to see its effect immediately without opening a new PR.
Linter configuration
CodeRabbit Pro includes 40+ built-in linters that run alongside the AI review engine. These linters provide deterministic, rule-based analysis that complements the AI’s contextual review.
Enabling and disabling linters
reviews:
tools:
enabled: true
shellcheck:
enabled: true
markdownlint:
enabled: true
languagetool:
enabled: true
language: en-US
biome:
enabled: true
hadolint:
enabled: true
yamllint:
enabled: true
ruff:
enabled: true
eslint:
enabled: false # Disabled because we run ESLint in CI
golangci-lint:
enabled: true
Why use CodeRabbit’s linters
If your team already runs linters in CI, you might wonder why you would want CodeRabbit running them too. There are two practical reasons.
First, CodeRabbit’s linters provide feedback directly on the PR as inline comments, which is faster than waiting for a CI pipeline to complete and then scrolling through log output to find the relevant error. Developers see the issue in context, right on the line that caused it.
Second, CodeRabbit combines linter findings with its AI analysis. When a linter flags an issue, the AI can provide additional context about why the issue matters and suggest a fix that accounts for the surrounding code. This is more useful than a standalone linter message that just cites a rule number.
If you want to avoid duplicate feedback between CodeRabbit’s linters and your CI linters, disable the overlapping tools in .coderabbit.yaml and let your CI pipeline handle those specific checks.
Auto-review settings
The reviews.auto_review section controls when and how CodeRabbit automatically reviews pull requests.
reviews:
auto_review:
enabled: true
drafts: false
incremental_reviews: true
enabled
When set to true (the default), CodeRabbit automatically reviews every PR that is opened or updated. When set to false, reviews only happen when triggered manually with @coderabbitai review.
Setting this to false is useful for repositories where you only want AI review on specific PRs rather than every single one. Developers can then opt in to AI review by posting the review command.
drafts
When set to true, CodeRabbit reviews draft pull requests. The default is false, which means draft PRs are skipped until they are marked as ready for review.
Most teams keep this at false because draft PRs are often works in progress that change significantly before the developer considers them review-ready. Reviewing draft PRs generates comments on code that will likely be rewritten, which creates noise.
However, some teams set this to true because they want early feedback during development. If your workflow involves opening draft PRs as a way to get incremental feedback from both humans and tools, enabling draft review makes sense.
incremental_reviews
When set to true (the default), CodeRabbit reviews only the new changes when additional commits are pushed to an existing PR. When set to false, CodeRabbit re-reviews the entire PR on every push.
Incremental reviews are faster and produce less noise because they focus on what just changed. Full re-reviews are more thorough because they reconsider the entire diff in context. For most teams, incremental is the right choice.
Summary and walkthrough settings
Several fields control what CodeRabbit includes in its summary comment at the top of each PR:
reviews:
high_level_summary: true
high_level_summary_placeholder: "@coderabbitai summary"
collapse_walkthrough: false
sequence_diagrams: true
changed_files_summary: true
review_status: true
poem: false
high_level_summary - When true, CodeRabbit posts a natural language summary of the PR changes. This is one of the most popular features because it helps reviewers quickly understand what a PR does without reading the diff.
collapse_walkthrough - When true, the file-by-file walkthrough section is collapsed by default in the summary comment. This keeps the summary compact while still making the detailed walkthrough available with a click.
sequence_diagrams - When true, CodeRabbit generates Mermaid sequence diagrams for PRs that involve request flows, API calls, or multi-step processes. These diagrams provide a visual overview that is especially helpful for complex PRs.
changed_files_summary - When true, the summary includes a table listing every changed file with a one-line description of what changed.
poem - When true, CodeRabbit includes a short poem summarizing the PR. This is a lighthearted feature that some teams enjoy and others find distracting. The default is false.
Knowledge base settings
knowledge_base:
opt_out: false
learnings:
scope: auto
The knowledge base allows CodeRabbit to learn from your repository and your team’s feedback over time. When enabled, CodeRabbit builds context about your codebase patterns, naming conventions, architecture decisions, and review preferences.
The learnings.scope field controls how broadly CodeRabbit applies what it learns. Set to auto, it determines the appropriate scope automatically. Learnings from dismissed comments, accepted suggestions, and conversational corrections accumulate over time and improve review quality for subsequent PRs.
If your organization has data retention or privacy concerns about CodeRabbit storing repository context, set opt_out to true to disable the knowledge base entirely.
Example configs for different team sizes
Solo developer
For individual developers or very small projects, a minimal configuration keeps things quiet and focused:
language: en-US
reviews:
profile: chill
high_level_summary: true
sequence_diagrams: false
poem: false
path_filters:
- "!**/*.lock"
- "!**/dist/**"
- "!**/node_modules/**"
instructions: |
Focus only on bugs and security issues.
Do not comment on style, naming, or documentation.
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
Small team (3-10 developers)
Small teams benefit from more structured review criteria without being overwhelmed:
language: en-US
reviews:
profile: chill
request_changes_workflow: false
high_level_summary: true
collapse_walkthrough: false
sequence_diagrams: true
changed_files_summary: true
review_status: true
poem: false
instructions: |
This is a Node.js application using Express and PostgreSQL.
Conventions:
- All async functions must use try-catch with proper error logging
- Database queries must use parameterized statements
- API responses follow our envelope format: { data, error, meta }
- Do not comment on import ordering or line length (handled by linters)
Focus on bugs, security issues, and logic errors.
path_filters:
- "!**/*.lock"
- "!**/dist/**"
- "!**/build/**"
- "!**/node_modules/**"
- "!**/*.generated.*"
- "!**/coverage/**"
- "!**/__snapshots__/**"
- "!**/*.min.js"
- "!**/*.min.css"
path_instructions:
- path: "src/api/**"
instructions: |
Check all API endpoints for:
- Input validation on request parameters
- Authentication and authorization checks
- Proper HTTP status codes in error responses
- path: "src/db/**"
instructions: |
Check database code for:
- SQL injection prevention
- Proper connection handling
- Transaction usage where needed
- path: "**/*.test.*"
instructions: |
Check tests for:
- Edge case coverage
- Proper assertion usage
- Mock cleanup between tests
auto_review:
enabled: true
drafts: false
incremental_reviews: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
Medium team (10-50 developers)
Medium teams typically have more complex codebases, multiple services, and stronger conventions that need enforcement:
language: en-US
reviews:
profile: assertive
request_changes_workflow: false
high_level_summary: true
high_level_summary_placeholder: "@coderabbitai summary"
collapse_walkthrough: true
sequence_diagrams: true
changed_files_summary: true
review_status: true
poem: false
instructions: |
This is a TypeScript monorepo with multiple microservices.
Global rules:
- All functions must have explicit return types
- Error handling must use our custom AppError class
- Logging must use the structured logger, never console.log
- Environment variables must be validated at startup via config schema
- All new endpoints must have OpenAPI documentation
- Do not comment on formatting (handled by Prettier)
- Do not comment on import ordering (handled by ESLint)
- Do not comment on variable naming unless actively misleading
path_filters:
- "!**/*.lock"
- "!**/dist/**"
- "!**/build/**"
- "!**/node_modules/**"
- "!**/*.generated.*"
- "!**/__generated__/**"
- "!**/coverage/**"
- "!**/__snapshots__/**"
- "!**/*.min.js"
- "!**/*.min.css"
- "!**/*.png"
- "!**/*.jpg"
- "!**/*.svg"
- "!**/vendor/**"
- "!**/migrations/*.sql"
path_instructions:
- path: "services/auth/**"
instructions: |
Authentication service review criteria:
- Token validation and expiration handling
- Password hashing must use bcrypt with cost factor >= 12
- Session management and secure cookie settings
- OWASP Top 10 authentication checklist
- path: "services/api-gateway/**"
instructions: |
API gateway review criteria:
- Rate limiting configuration for all public endpoints
- CORS settings must not use wildcard origins in production
- Request size limits on all endpoints
- Header sanitization and forwarding
- path: "services/payments/**"
instructions: |
Payment service review criteria:
- PCI DSS compliance patterns
- Idempotency keys for all payment operations
- Decimal precision for currency (never use floating point)
- Audit logging for all payment state changes
- path: "packages/shared/**"
instructions: |
Shared library review criteria:
- Backward compatibility of all exported APIs
- Type safety and generic usage
- Performance considerations since this code runs in every service
- path: "**/*.test.*"
instructions: |
Test review criteria:
- Edge case coverage including null, undefined, empty, and boundary values
- No hardcoded timeouts or arbitrary sleep calls
- Proper test isolation with setup/teardown
- Assertions must test specific expected values
- path: "**/Dockerfile*"
instructions: |
Dockerfile review criteria:
- Multi-stage builds to reduce image size
- Non-root user for production
- Pinned base image versions with SHA256 digests
- Secrets must not be embedded in the image
- path: "**/*.config.*"
instructions: |
Configuration file review criteria:
- No hardcoded secrets or credentials
- Environment-specific values must use env variables
- Reasonable default values for all settings
auto_review:
enabled: true
drafts: false
incremental_reviews: true
tools:
enabled: true
shellcheck:
enabled: true
markdownlint:
enabled: true
hadolint:
enabled: true
yamllint:
enabled: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
Large team or enterprise (50+ developers)
Large organizations need the most comprehensive configuration with strict review standards and broad coverage:
language: en-US
reviews:
profile: assertive
request_changes_workflow: true
high_level_summary: true
collapse_walkthrough: true
sequence_diagrams: true
changed_files_summary: true
review_status: true
poem: false
instructions: |
This is an enterprise TypeScript platform with strict security
and compliance requirements. All code must follow our internal
engineering standards document.
Rules:
- All user input must be validated and sanitized
- All database operations must use the approved ORM, never raw SQL
- All API responses must include correlation IDs for tracing
- Error messages must not expose internal system details
- All new features must have feature flags
- Logging must use structured JSON format via the approved logger
- No direct HTTP calls - use the approved HTTP client wrapper
- Do not comment on formatting (enforced by CI)
- Do not comment on import ordering (enforced by CI)
Security-specific focus:
- Flag any hardcoded credentials, tokens, or API keys immediately
- Check for path traversal vulnerabilities in file operations
- Verify CSRF protection on state-changing endpoints
- Check for mass assignment vulnerabilities in request handlers
path_filters:
- "!**/*.lock"
- "!**/dist/**"
- "!**/build/**"
- "!**/out/**"
- "!**/node_modules/**"
- "!**/vendor/**"
- "!**/*.generated.*"
- "!**/__generated__/**"
- "!**/coverage/**"
- "!**/__snapshots__/**"
- "!**/*.min.js"
- "!**/*.min.css"
- "!**/*.png"
- "!**/*.jpg"
- "!**/*.svg"
- "!**/*.ico"
- "!**/*.woff"
- "!**/*.woff2"
- "!**/vendor/**"
- "!**/third_party/**"
path_instructions:
- path: "**/*auth*/**"
instructions: |
Security-critical path. Apply maximum scrutiny:
- Verify all authentication flows against OWASP guidelines
- Check token generation for sufficient entropy
- Verify proper session invalidation on logout
- Check for timing attack vulnerabilities in comparisons
- path: "**/*payment*/**"
instructions: |
PCI-regulated path. Apply compliance-level scrutiny:
- Verify no card data is logged or stored in plaintext
- Check all operations for idempotency
- Verify decimal precision for all monetary values
- Check audit trail completeness
- path: "**/middleware/**"
instructions: |
Middleware must always call next() or send a response.
Check for proper error propagation to error handler.
Verify request/response transformation correctness.
- path: "**/migrations/**"
instructions: |
Database migrations must be reversible with both up and down.
Must not drop columns containing production data without a
separate data migration. Must use transactions for multi-step DDL.
auto_review:
enabled: true
drafts: false
incremental_reviews: true
tools:
enabled: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
For enterprise setups, you may also want to integrate with your project management tools. See our guide on CodeRabbit GitHub integration for GitHub-specific configuration and CodeRabbit GitLab integration for GitLab setups.
Advanced configuration tips
Reducing false positives
The most common complaint about any automated review tool is false positives - comments that are technically correct but not relevant to your project’s context. Here are the most effective ways to reduce them in CodeRabbit:
-
Tell CodeRabbit what not to review. Add explicit exclusions in your global instructions for things your other tools already handle. If ESLint enforces import ordering and Prettier handles formatting, say so in the instructions.
-
Add framework context. If your project uses Next.js App Router, tell CodeRabbit in the instructions. If you use a specific ORM, mention it. Without this context, CodeRabbit may flag patterns that are idiomatic in your framework.
-
Reply to false positives. When CodeRabbit posts an irrelevant comment, reply with an explanation of why it does not apply. CodeRabbit stores these as learnings and avoids similar suggestions in future reviews.
-
Use the chill profile. If the assertive profile generates too much noise, switching to chill immediately reduces comment volume by focusing only on high-severity issues.
Overriding configuration per PR
You cannot override .coderabbit.yaml on a per-PR basis through the configuration file itself. However, you can effectively customize review behavior for individual PRs by using the @coderabbitai chat commands. For example, posting @coderabbitai review - focus on security issues only on a specific PR tells CodeRabbit to adjust its focus for that particular review.
Validating your configuration
Before committing changes to .coderabbit.yaml, validate the YAML syntax using any standard YAML validator. Common mistakes include using tabs instead of spaces for indentation, missing colons after keys, and incorrect nesting depth.
After committing, post @coderabbitai configuration on any open PR to verify that CodeRabbit is reading your file correctly. The output shows the parsed configuration, any errors, and the effective settings.
Considering alternatives
While CodeRabbit is the most widely adopted AI code review tool, it is not the only option. If your team needs more than just PR reviews - such as SAST scanning, secret detection, infrastructure-as-code security, and engineering metrics in a single platform - CodeAnt AI offers a compelling alternative at $24-40/user/month. CodeAnt AI bundles AI-powered PR reviews with static analysis, secret detection, dead code removal, and DORA metrics dashboards, which can replace multiple tools in your pipeline. For teams that want a single platform covering both code review and security scanning, it is worth evaluating alongside CodeRabbit.
For more on CodeRabbit’s pricing and how it compares to alternatives, see our detailed CodeRabbit pricing breakdown.
Putting your configuration into practice
Getting the most from your CodeRabbit configuration is an iterative process, not a one-time setup. Start with a minimal .coderabbit.yaml that sets the review profile and excludes obvious noise files. Run it for a week or two and observe which comments are helpful and which are irrelevant. Then expand the configuration by adding global instructions that address the most common false positives, path-specific instructions for your most critical code, and linter configuration that complements your existing CI pipeline.
The teams that get the most value from CodeRabbit are the ones that treat the .coderabbit.yaml file as a living document - updating it monthly based on team feedback, new project areas, and evolving coding standards. A well-maintained configuration file turns CodeRabbit from a generic automated reviewer into a context-aware team member that understands your specific codebase and review priorities.
For the complete setup walkthrough, including installation and onboarding, read our guide on how to use CodeRabbit. For a detailed review of CodeRabbit’s capabilities and limitations, see our CodeRabbit review.
Frequently Asked Questions
What is the .coderabbit.yaml file and where does it go?
The .coderabbit.yaml file is CodeRabbit's repository-level configuration file that controls how the AI reviews your pull requests. It must be placed in the root directory of your repository and committed to your default branch (usually main or master). CodeRabbit reads this file on every PR and applies your custom settings automatically. Each repository can have its own independent configuration file. The file must be named exactly .coderabbit.yaml - not .coderabbit.yml or coderabbit.yaml.
What are the available CodeRabbit review profiles?
CodeRabbit offers three review profiles. The chill profile generates fewer comments and focuses only on significant issues like bugs, security vulnerabilities, and logic errors. The assertive profile is more thorough and comments on style, naming conventions, documentation, and best practices in addition to bugs and security. The followup profile behaves like assertive but additionally checks whether previous review comments were addressed in subsequent commits. You set the profile in .coderabbit.yaml under reviews.profile.
How do I exclude files from CodeRabbit review using path filters?
Add a path_filters section under reviews in your .coderabbit.yaml file and use negation patterns prefixed with an exclamation mark. For example, adding '!**/*.lock' excludes all lock files, '!**/dist/**' excludes build output directories, and '!**/node_modules/**' excludes dependency folders. CodeRabbit supports standard glob patterns so you can be as specific or broad as needed. Changes to path filters take effect on the next pull request without any restart or reinstallation.
How do path-specific instructions work in CodeRabbit?
Path-specific instructions let you provide natural language review guidance for specific directories or file patterns. In .coderabbit.yaml, add a path_instructions section under reviews with entries that each contain a path glob pattern and an instructions field. For example, you can instruct CodeRabbit to focus on input validation for API route files and SQL injection prevention for database files. CodeRabbit reads these instructions on every review and adjusts its analysis focus based on which files changed in the PR.
Can I change the language CodeRabbit uses for review comments?
Yes. Set the top-level language field in your .coderabbit.yaml file to any supported language code. CodeRabbit supports over 30 languages including en-US for English, es for Spanish, fr for French, de for German, ja for Japanese, zh for Chinese, ko for Korean, pt-BR for Portuguese, and many others. When you set a language, all of CodeRabbit's review comments, PR summaries, and walkthrough descriptions are written in that language.
What chat commands can I use with CodeRabbit in pull requests?
You can interact with CodeRabbit by posting comments on your PR. Key commands include @coderabbitai review to trigger a full re-review, @coderabbitai resolve to dismiss a specific comment, @coderabbitai explain to get a detailed explanation of a finding, @coderabbitai generate docstring to create documentation for a function, @coderabbitai configuration to display the current config, and @coderabbitai help to list all available commands. You can also reply conversationally to any CodeRabbit comment to ask follow-up questions or request alternatives.
How do I configure CodeRabbit's built-in linters?
CodeRabbit Pro includes 40+ built-in linters that run alongside the AI review. Configure them under the reviews.tools section of your .coderabbit.yaml file. You can enable or disable specific tools like shellcheck, markdownlint, languagetool, biome, hadolint, yamllint, and others. Each tool can be configured individually with custom settings. For example, you can set markdownlint to ignore line length rules or configure languagetool to use a specific language dialect.
How do I configure CodeRabbit for a monorepo?
Use the path_instructions section to define different review criteria for each service or package in your monorepo. For example, set instructions for services/auth/** to focus on token validation and authentication best practices, services/payments/** to check PCI compliance and decimal precision, and packages/shared/** to verify backward compatibility. You can also use path_filters to exclude specific service directories from review entirely. This approach lets one .coderabbit.yaml file handle complex multi-service codebases.
What is the difference between global instructions and path-specific instructions?
Global instructions are set under reviews.instructions and apply to every file in every pull request. They are best for setting the overall tone, defining project-wide conventions, and telling CodeRabbit what not to comment on. Path-specific instructions are set under reviews.path_instructions with glob patterns and only apply when files matching those patterns are changed. They are best for domain-specific review criteria like security checks for API routes or performance focus for database queries. Both can be used together and path-specific instructions supplement the global ones.
How do I enable or disable auto-review in CodeRabbit?
Control auto-review behavior in the reviews.auto_review section of your .coderabbit.yaml file. Set enabled to true for automatic reviews on every PR or false to require manual triggering with @coderabbitai review. You can also configure whether CodeRabbit reviews draft PRs by setting drafts to true or false, and control whether it reviews incrementally on new commits with incremental_reviews set to true or false. By default, auto-review is enabled, draft PRs are skipped, and incremental reviews are turned on.
Can I use CodeRabbit configuration to enforce team coding standards?
Yes. Write your coding standards as natural language in the reviews.instructions field and CodeRabbit will check PRs against them. For example, you can instruct it to verify that all async functions use try-catch, that API responses follow a standard envelope format, that database queries use parameterized statements, or that components follow a specific naming convention. CodeRabbit interprets these instructions semantically, which means it catches violations that rule-based linters would miss because your standards involve intent and context rather than just syntax patterns.
What happens if my .coderabbit.yaml has a syntax error?
If your .coderabbit.yaml contains a YAML syntax error such as incorrect indentation, missing colons, or invalid nesting, CodeRabbit falls back to its default configuration and reviews the PR using standard settings. It does not skip the review entirely. You can verify your configuration by commenting @coderabbitai configuration on any PR, which displays the active configuration including any parsing errors. Use a YAML validator before committing changes to avoid syntax issues. The file must be valid YAML with proper indentation using spaces, not tabs.
Explore More
Tool Reviews
Related Articles
Free Newsletter
Stay ahead with AI dev tools
Weekly insights on AI code review, static analysis, and developer productivity. No spam, unsubscribe anytime.
Join developers getting weekly AI tool insights.
Related Articles
Codacy GitHub Integration: Complete Setup and Configuration Guide
Learn how to integrate Codacy with GitHub step by step. Covers GitHub App install, PR analysis, quality gates, coverage reports, and config.
March 13, 2026
how-toCodacy GitLab Integration: Setup and Configuration Guide (2026)
Set up Codacy with GitLab step by step. Covers OAuth, project import, MR analysis, quality gates, coverage reporting, and GitLab CI config.
March 13, 2026
how-toHow to Set Up Codacy with Jenkins for Automated Review
Set up Codacy with Jenkins for automated code review. Covers plugin setup, Jenkinsfile config, quality gates, coverage, and multibranch pipelines.
March 13, 2026
CodeRabbit Review
CodeAnt AI Review