Skip to main content
Complete configuration reference for greptile.json. All parameters are optional.
Looking for the recommended config format? The .greptile/ folder supports everything greptile.json does, plus cascading per-directory overrides, separate rules files, and structured rules with severity and disable-by-ID. greptile.json is still fully supported — if both exist in the same directory, .greptile/ takes precedence.
Place greptile.json in your repository root. Settings are read from the source branch of the PR and override dashboard settings.

Review Behavior

ParameterTypeDefaultDescription
strictnessnumber2Severity threshold. Must be 1, 2, or 3
commentTypesarray["logic", "syntax", "style", "info"]Comment types to provide. Options: logic, syntax, style, info
triggerOnUpdatesbooleanfalseReview every commit to the PR, not just when opened
skipReviewstring-Set to "AUTOMATIC" to skip auto-reviews but allow manual triggers
modelstring-Specify which AI model to use for reviews

PR Filters

Control which PRs get reviewed:
ParameterTypeDescription
labelsarrayReview only PRs with these labels
disabledLabelsarraySkip PRs with these labels
includeAuthorsarrayReview only PRs from these authors. Empty = all authors (except excluded)
excludeAuthorsarrayNever review PRs from these authors
includeBranchesarrayReview only PRs to these branches. Empty = all branches (except excluded)
excludeBranchesarrayNever review PRs to these branches
includeKeywordsstringNewline-separated keywords. Review only PRs with these in title/description
ignoreKeywordsstringNewline-separated keywords. Skip PRs with these in title/description
fileChangeLimitnumberSkip PRs with more than this many changed files (minimum: 1)

File Patterns

ParameterTypeDescription
ignorePatternsstringNewline-separated file patterns to skip (follows .gitignore syntax)
Example:
{
  "ignorePatterns": "**/*.generated.*\ndist/**\nnode_modules/**"
}

Custom Context

ParameterTypeDescription
instructionsstringNatural language instructions for code reviews
customContextobjectAdvanced context with rules, files, and other arrays
patternRepositoriesarrayRelated repos to reference (format: org/repo)
customContext structure:
{
  "customContext": {
    "rules": [
      {
        "rule": "Use async/await instead of callbacks",
        "scope": ["src/**/*.ts"]
      }
    ],
    "files": [
      {
        "path": "docs/style-guide.md",
        "description": "Company style guide",
        "scope": ["src/**"]
      }
    ],
    "other": [
      {
        "content": "This is a legacy codebase - be cautious with changes",
        "scope": ["legacy/**"]
      }
    ]
  }
}

Review Output

Control how reviews appear:
ParameterTypeDescription
commentstringDisclaimer/prefix added to every PR summary
shouldUpdateDescriptionbooleanIf true, updates PR description. If false, posts as review comment
updateExistingSummaryCommentbooleanUpdate existing review comment instead of creating new one
updateSummaryOnlybooleanOnly update summary, don’t post individual inline comments
fixWithAIbooleanAdd AI fix prompts to help AI tools understand fixes
hideFooterbooleanHide Greptile footer from review comments

Review Components

Control visibility of individual review components:
ParameterTypeDescription
includeIssuesTablebooleanInclude issues table in review
includeConfidenceScorebooleanInclude confidence scores in review
includeSequenceDiagrambooleanInclude diagrams in review (sequence, ER, class, or flow — auto-selected based on changes)

Review Sections

Fine-grained control over section visibility and behavior:
ParameterTypeProperties
summarySectionobjectincluded (boolean), collapsible (boolean), defaultOpen (boolean)
issuesTableSectionobjectincluded (boolean), collapsible (boolean), defaultOpen (boolean)
confidenceScoreSectionobjectincluded (boolean), collapsible (boolean), defaultOpen (boolean)
sequenceDiagramSectionobjectControls the diagram section (sequence, ER, class, or flow). Properties: included (boolean), collapsible (boolean), defaultOpen (boolean)
Example:
{
  "summarySection": {
    "included": true,
    "collapsible": true,
    "defaultOpen": false
  }
}

GitHub-Specific

ParameterTypeDescription
statusCheckbooleanCreate a GitHub status check for each review. When enabled, Greptile posts a status check (pass/fail indicator) instead of a comment like “X files reviewed, no comments”. Set to true to disable the “X files reviewed” comments.
statusCommentsEnabledbooleanPost a summary comment on PRs after review. This controls the main review summary comment, not the “X files reviewed” status message.
Common confusion: To disable the “X files reviewed, no comments” message, set statusCheck: true (not statusCommentsEnabled: false). When statusCheck is enabled, Greptile uses GitHub’s status check system instead of posting status comments.

Complete Example

greptile.json
{
  "strictness": 2,
  "commentTypes": ["logic", "syntax"],
  "model": "gpt-4",
  "instructions": "Focus on security and maintainability",
  "ignorePatterns": "**/*.generated.*\ndist/**\n*.md",
  "patternRepositories": ["acme/shared-utils"],
  "triggerOnUpdates": false,
  "fileChangeLimit": 100,
  "includeAuthors": [],
  "excludeAuthors": ["dependabot[bot]"],
  "includeBranches": ["main", "develop"],
  "excludeBranches": ["draft/**"],
  "customContext": {
    "rules": [
      {
        "rule": "All API endpoints must have rate limiting",
        "scope": ["src/api/**/*.ts"]
      }
    ],
    "files": [
      {
        "path": "docs/architecture.md",
        "description": "System architecture"
      }
    ]
  },
  "shouldUpdateDescription": false,
  "updateExistingSummaryComment": true,
  "statusCheck": true,
  "includeConfidenceScore": true,
  "summarySection": {
    "included": true,
    "collapsible": false,
    "defaultOpen": true
  }
}

Parameter Reference by Category

  • comment - string
  • commentTypes - array
  • customContext - object
  • disabledLabels - array
  • excludeAuthors - array
  • excludeBranches - array
  • fileChangeLimit - number
  • fixWithAI - boolean
  • hideFooter - boolean
  • ignoreKeywords - string
  • ignorePatterns - string
  • includeAuthors - array
  • includeBranches - array
  • includeConfidenceScore - boolean
  • includeIssuesTable - boolean
  • includeKeywords - string
  • includeSequenceDiagram - boolean (controls all diagram types)
  • instructions - string
  • labels - array
  • model - string
  • patternRepositories - array
  • shouldUpdateDescription - boolean
  • skipReview - string (literal "AUTOMATIC")
  • statusCheck - boolean
  • statusCommentsEnabled - boolean
  • strictness - number (1, 2, or 3)
  • triggerOnUpdates - boolean
  • updateExistingSummaryComment - boolean
  • updateSummaryOnly - boolean
  • Section objects: summarySection, issuesTableSection, confidenceScoreSection, sequenceDiagramSection

Validation

Common mistakes:Trailing commas:
{
  "strictness": 2,
  "commentTypes": ["logic"],
}
No trailing comma:
{
  "strictness": 2,
  "commentTypes": ["logic"]
}
Validate your JSON:
npx jsonlint greptile.json
strictness must be 1, 2, or 3:
{
  "strictness": 4
}
❌ Invalid - only 1, 2, or 3 allowedcommentTypes must be valid:
{
  "commentTypes": ["logic", "syntax", "style", "info"]
}
✅ Valid options: logic, syntax, style, infoskipReview must be exactly “AUTOMATIC”:
{
  "skipReview": "AUTO"
}
❌ Invalid - must be "AUTOMATIC" exactly
✅ Correct: Repository root
your-repo/
├── greptile.json
├── src/
└── package.json
❌ Wrong: Subdirectory
your-repo/
├── src/
│   └── greptile.json
└── package.json
Check:
  1. File is in repository root
  2. File exists in the source branch of the PR
  3. JSON is valid (use jsonlint)
  4. Parameter names are spelled correctly
  5. Waiting for new PR (changes don’t affect existing reviews)
Export dashboard settings: Go to app.greptile.com/review/github → Click copy/download icon

Configuration Hierarchy

Settings priority (highest to lowest):
  1. Org enforced rules (set by admins in the dashboard — cannot be overridden)
  2. .greptile/ folder (per-directory and repo-wide settings)
  3. greptile.json in repository root
  4. Dashboard settings (organization defaults)
If both .greptile/ and greptile.json exist in the same directory, .greptile/ takes precedence and greptile.json is ignored. See Customization Overview for details.

What’s Next