Skip to main content
Complete configuration reference for greptile.json. All parameters are optional.
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 sequence diagrams in review

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)
sequenceDiagramSectionobjectincluded (boolean), collapsible (boolean), defaultOpen (boolean)
Example:
{
  "summarySection": {
    "included": true,
    "collapsible": true,
    "defaultOpen": false
  }
}

GitHub-Specific

ParameterTypeDescription
statusCheckbooleanCreate GitHub status check for each review
statusCommentsEnabledbooleanEnable status comments on PRs

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
  • 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. greptile.json in repository root
  2. Dashboard settings (organization defaults)
Repository-level greptile.json always overrides dashboard settings.

What’s Next