Skip to content

Configuration

How a repository is reviewed goes in .codemop.yml, read from the default branch so a pull request can’t change it. Every setting is optional:

ignore: # paths not to review, added to the defaults (lock files, minified files...)
- "docs/*"
- "*.snap"
min_confidence: 0.6 # drop suggestions the model is less sure of (default 0.5)
max_comments: 5 # most inline comments in a review; the rest are listed in the summary (default 10)
chunk_tokens: 20000 # largest piece of diff sent in one request (default: the model's own)
merge_check: true # see "Blocking merges"

It can’t choose the provider, the model or where requests go, or raise what a review may cost: whoever runs CodeMop decides that, in the workflow. Otherwise reviewing someone else’s pull request could send your API key to their server.

The Action’s inputs:

Input Default
api-key (required) The provider’s API key, from a secret
provider anthropic anthropic, mistral, openai, openrouter, ollama or openai-compatible
model the provider’s claude-opus-5-5 for Anthropic, codestral-latest for Mistral; others need one named
base-url For openai-compatible or a self-hosted endpoint
effort high Claude’s effort: low is cheaper and faster
max-changed-lines 3000 Don’t review (or pay for) a pull request bigger than this
max-comments the repository’s, or 10 Most inline comments in a review
checklist true The checkboxes in the summary
context true Send the code around each change too (see below)
review-drafts false Review draft pull requests too
github-token the workflow’s A personal access token, so CI runs on CodeMop’s commits

Context. As well as the diff, CodeMop sends the whole of each changed function, where the changed code is used in other files, and the definitions it uses: for Python, TypeScript and JavaScript, while other languages get the lines around each change. A change can be right in itself and break the code that calls it: in the eval, context took those bugs from 6/16 found to 16/16, for about 13% more per review. The repository is read in one download, kept in memory, and never checked out or run.