Skip to main content
BugViper supports multiple LLM providers and lets you assign a different model to each step of the review pipeline. You can use a powerful frontier model for deep code analysis while keeping a smaller, cheaper model for tasks like deduplication and summary synthesis — giving you full control over quality and cost.

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 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 .env:
Example model strings you can use with OpenRouter:
BugViper automatically routes to OpenRouter for any model string that does not start with 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 to DEEPAGENT_MODEL if not explicitly set, so the minimum configuration is just one variable.
DEEPAGENT_MODEL
string
default:"deepseek/deepseek-v4-flash"
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.
ORCHESTRATOR_MODEL
string
default:"DEEPAGENT_MODEL"
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.
SUBAGENT_MODEL
string
default:"DEEPAGENT_MODEL"
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.
JUDGE_MODEL
string
default:"deepseek/deepseek-v4-flash"
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.
DEDUP_MODEL
string
default:"openai/gpt-4o-mini"
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.
SYNTHESIS_MODEL
string
default:"openai/gpt-4o-mini"
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.
Use a smaller, cheaper model for DEDUP_MODEL and SYNTHESIS_MODEL — tasks like deduplication and summary generation don’t require deep code reasoning. For example, openai/gpt-4o-mini via OpenRouter is fast and very cost-effective for these steps, freeing you to use a stronger model for DEEPAGENT_MODEL and JUDGE_MODEL where it matters most.