Provider Setup
Set the API key for whichever provider you want to use. You can configure more than one provider at a time and mix models from different providers across the different roles.- OpenRouter
- Google Gemini
- MiniMax
OpenRouter provides a single API key that unlocks
access to hundreds of models from Anthropic, OpenAI, Google, DeepSeek,
Mistral, and more. It is the most flexible option and is the recommended
starting point for most self-hosters.Set your key in Example model strings you can use with OpenRouter:BugViper automatically routes to OpenRouter for any model string that does
not start with
.env:gemini/ or MiniMax-.Model Role Assignment
BugViper breaks the review pipeline into distinct steps, and you can assign a different model to each one. All model roles fall back toDEEPAGENT_MODEL if not explicitly set, so the minimum configuration is just one variable.
The primary model used by the review agent(s). This is also the global
fallback — if
ORCHESTRATOR_MODEL, SUBAGENT_MODEL, JUDGE_MODEL, or
DEDUP_MODEL are left unset, they all default to this value. Choose a model
with strong code understanding for best results.The model used by the orchestrator in Deep mode. The orchestrator is
responsible for coordinating the three specialized sub-agents (correctness,
security, and performance). Defaults to
DEEPAGENT_MODEL if not set.The model used by each specialized sub-agent in Deep mode. You can set this to
a different model than the orchestrator — for example, a faster model for
sub-agents and a stronger model for orchestration. Defaults to
DEEPAGENT_MODEL if not set.The model used by the verifier pass. After the review agents produce their
findings, the judge validates each one against the actual PR diff, removes
false positives, and classifies issues as
valid, nitpick, or
outside_diff. A strong reasoning model works best here.The model used for deduplication. After all agents have run, this model merges
duplicate findings that refer to the same underlying issue. Because this is a
classification-style task, a smaller model is sufficient.
The model used to generate the summary that is posted as the PR review body.
This is a summarization task and does not require deep code reasoning, so a
smaller model keeps costs down without affecting quality.