Claude Review Bridge — Codex + Gemini

Second-opinion code and plan review from OpenAI Codex or Google Gemini inside Claude Code

By Amir Shayegh (individual) TypeScript Local · stdio Developer toolsAI and ML

39 popularity score ★ 27 ↓ 451/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add claude-review-bridge-codex-gemini -- npx -y codex-claude-bridge@latest
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "claude-review-bridge-codex-gemini": {
      "command": "npx",
      "args": [
        "-y",
        "codex-claude-bridge@latest"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "claude-review-bridge-codex-gemini": {
      "command": "npx",
      "args": [
        "-y",
        "codex-claude-bridge@latest"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "claude-review-bridge-codex-gemini": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "codex-claude-bridge@latest"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.claude-review-bridge-codex-gemini]
command = "npx"
args = ["-y", "codex-claude-bridge@latest"]
Gemini CLITerminal
gemini mcp add --scope user claude-review-bridge-codex-gemini npx -- -y codex-claude-bridge@latest

Settings 4

OPENAI_API_KEY Optional: Optional; makes Codex bill per token instead of using the ChatGPT sign-in from codex login.
REVIEW_BRIDGE_DB Optional: Path of the SQLite file for review history and sessions; defaults to reviews.db in the current directory, :memory: for none on disk.
RB_CONFIG_PATH Optional: Exact path of a .reviewbridge.json to load; a missing file stops startup.
CODEX_PATH Optional: Absolute path of a codex binary to use instead of the SDK's bundled one.

What it does

codex-claude-bridge (registered in clients as codex-bridge) is a local MCP server that hands work written in Claude Code to a different model for review. It sends an implementation plan, a git diff or the staged changes to OpenAI Codex (the default) or to Google Gemini through the Antigravity agy CLI, and returns a structured verdict with findings, file and line references where available, and a session id that can carry context from a plan review into the later code review.

When both reviewers are signed in, a review that fails because one is rate-limited, out of usage or not signed in is retried on the other, and the result says which provider answered. A .reviewbridge.json file can instead set a deliberate mode that asks both and reports where they agree and differ. Callers pick a model by id or by tier (max, balanced, fast); Codex defaults to the balanced tier and Gemini to the max tier. Large diffs are split into chunks of about 8000 tokens by default (max_chunk_tokens) and reviewed one after another. Review history and sessions are kept in a local SQLite file.

The same package also works as a terminal command (review-precommit, review-plan, review-code) that exits with code 2 when blockers are found, so it can gate commits without any MCP client.

One detail the README does not spell out: in version 1.9.0 the Codex backend starts every Codex thread with the SDK's read-only sandbox mode, so the reviewing model can look at the repository but is not given write access to it (src/backends/codex.ts).

What it needs

RuntimeNode.js 18+

Node.js 18 or later. At least one reviewer set up: the Codex CLI (npm install -g @openai/codex, then codex login, which uses a ChatGPT plan) or an OPENAI_API_KEY for pay-per-token use; or the Antigravity agy CLI signed in with a Google AI Pro account, plus {"provider": "gemini"} in .reviewbridge.json. Review history needs the better-sqlite3 native addon to build for the host's Node.js. git for auto-captured diffs.

Limits

Auto-captured reviews (review_code, review_precommit) need a git work tree and, by default (require_cwd: true), an absolute cwd on every call; ~ is not expanded. A resumed session (session_id) stays with the provider that started it and is not failed over. If the better-sqlite3 addon cannot load, reviews still run but history and session status are not kept; after a Node.js switch it must be rebuilt with npm rebuild better-sqlite3. review_history returns 10 reviews by default, at most 100 per page. The README documents setup for Claude Code only. Its models[] field is a record of model labels, not proof of which weights served a review or an audit of what data left the machine.

Who it suits

Suits developers already working in Claude Code who hold a ChatGPT or Google AI Pro plan and want a second model to check plans and diffs before committing, with failover between the two when one runs out of usage. It is not a fit without either subscription or an OpenAI API key, and it is a community project, not published by OpenAI, Google or Anthropic. Teams wanting only a commit gate in CI can use its CLI without MCP.

Tools 5

review_plan
Sends an implementation plan for an architecture and feasibility review and returns a verdict with findings.
review_code
Reviews a supplied diff, the working-tree changes, or a base..head commit range.
review_precommit
Checks staged changes and reports whether they are ready to commit, with blockers and warnings.
review_status
Reports the status and elapsed time of a review session.
review_history
Lists past reviews, recent or for one session, with paging.

Similar servers