Gerrit AI Review Agent for OpenRouter

Implementation of the Gerrit's AI Code Review Agent API on top of OpenRouter, a unified gateway exposing 300+ LLMs (Anthropic, OpenAI, Google, Meta, DeepSeek, xAI and more) behind a single OpenAI-compatible API.

Install this plugin and enable the Gerrit AI chat to enjoy a side-by-side collaboration with the LLM of your choice on the Change screen.

License

This script is licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

How to use

Prerequisites

Gerrit v3.14 or newer with the following additional plugins:

An OpenRouter API key: create one at https://openrouter.ai/keys. Free-tier models (suffix :free) work with any key but are rate-limited; paid models require credits on the account.

Available models

The dropdown is assembled at runtime from a small static list combined with a live query against the OpenRouter catalog (/api/v1/models). The catalog result is cached for 24 hours, and re-fetched immediately if a review call returns HTTP 404 (i.e. a previously listed slug went away upstream).

Static — paid floating aliases (always-fresh, no script update needed):

  • ~anthropic/claude-opus-latest — auto-tracks newest Opus
  • ~anthropic/claude-sonnet-latest — auto-tracks newest Sonnet
  • ~openai/gpt-latest — auto-tracks newest GPT
  • ~google/gemini-pro-latest — auto-tracks newest Gemini Pro
  • ~anthropic/claude-haiku-latest — cheaper/faster Anthropic
  • ~google/gemini-flash-latest — cheaper/faster Google
  • ~openai/gpt-mini-latest — cheaper/faster OpenAI

Dynamic — DeepSeek (latest *-pro slug): the highest-versioned deepseek/deepseek-v<N>-pro slug from the live catalog. OpenRouter does not mint a floating alias for DeepSeek, so we approximate by parsing the version number from the id and picking the largest. Currently that resolves to deepseek/deepseek-v4-pro (1M context, top open-vendor SWE-bench Verified).

Dynamic — free tier (top 5 by code-review heuristic, picked live from the catalog): typically GLM, GPT-OSS, Qwen3-coder variants depending on what OpenRouter currently exposes. Free-tier slugs rotate frequently; dynamic selection avoids stale hard-coded lists. Qwen entries are often rate-limited (HTTP 429) under load — the script retries once and then surfaces a user-facing notice in the chat panel.

The heuristic combines four signals available in the catalog payload:

SignalWeightWhy
id contains coder / code+100direct evidence of a code-specialized model
reasoning mode (supported_parameters includes reasoning, or id contains thinking)+60reasoning models generally outperform plain chat on code review
big-vendor namespace (openai/, anthropic/, google/, meta-llama/, deepseek/, qwen/, z-ai/, mistralai/, nvidia/)+40empirically these slugs rotate less and respond more reliably
context_length / 10000tie-breakermore diff fits in prompt

The scoring is intentionally cheap to evaluate (no extra network calls) and uses only fields present in the catalog response. It is a heuristic, not a benchmark; if a vendor publishes a low-quality “code-mini” free model it would still rank highly. Re-tune the weights in the script if real-world picks regress.

Ordering: the dropdown serves the paid options first (always-fresh ~latest aliases, then the dynamically-selected DeepSeek flagship), followed by the five dynamic free picks. That matches the strongest quality guarantees at the top of the chat panel selector.

If the catalog fetch fails (network outage, etc.) the dropdown falls back to the seven static ~latest aliases above so reviews are not blocked.

Grok-4 is deliberately not surfaced: it ranks mid-pack on code-review benchmarks (SWE-bench / Aider polyglot) compared to the Anthropic, OpenAI, Google and DeepSeek frontier. It remains reachable through the OpenRouter catalog for users who explicitly want it.

Install in Gerrit

Copy the ai-review-agent-openrouter-1.0.groovy script into your Gerrit site ($GERRIT_SITE) plugins' directory.

cp ai-review-agent-openrouter-1.0.groovy "$GERRIT_SITE/plugins/"