claudeers.

🔓 unclaimed — this page was auto-generated from GitHub. Are you the creator?

Claim this page →
// MCP Servers

gavel

Multi-model fusion for Claude Code: ask Claude + Codex + Gemini in parallel, then judge their answers into one and act on it.

// MCP Servers[ cli ][ api ][ claude ]#claude#mcp-serversMIT$open-sourceupdated 15 days ago
Actively maintained
96/100
last commit 17 days ago
last release none
releases 0
open issues 0
// install
{
  "mcpServers": {
    "gavel": {
      "command": "npx",
      "args": ["-y", "https://github.com/junkim100/gavel"]
    }
  }
}

gavel 👨‍⚖️

Multi-model fusion for Claude Code.
Ask Claude + Codex + agy in parallel, then judge their answers into one and act on it.


/gavel:fuse <task> asks three models the same thing: the Claude Code model you're running, OpenAI Codex, and agy. Codex and agy are read-only advisors; Claude is panelist #3, the judge, and the actor. The three answers are synthesized into one fused answer, which Claude then acts on — and only Claude ever writes to your workspace.

It runs the models through their local CLIs (codex, agy), reusing your existing logins. No API keys to wire up, no MCP servers, no background jobs.

Inspiration

Gavel is inspired by OpenRouter's Fusion beats Frontier: dispatch a prompt to a panel of models, then have a judge synthesize their answers into one response that beats any single frontier model. Gavel brings that pattern into Claude Code — Codex and agy answer as advisors, and their answers are judged and fused into one before it acts.

Fused model panels outscore individual frontier models on OpenRouter's DRACO deep-research benchmark

Benchmark chart from OpenRouter's "Fusion beats Frontier" announcement (© OpenRouter), included for reference and attribution.

Install

In Claude Code:

/plugin marketplace add junkim100/gavel
/plugin install gavel@gavel

(Reload/restart if prompted.)

Local development — clone the repo and point the marketplace at the clone instead:

git clone https://github.com/junkim100/gavel.git
/plugin marketplace add /path/to/gavel    # the cloned directory
/plugin install gavel@gavel

Setup

/gavel:setup

Reports whether codex and agy are installed, authenticated, and recent enough, and offers to install Codex if it's missing. Authentication:

  • Codex!codex login (install: npm install -g @openai/codex).
  • agy — run !agy once to sign in (Google OAuth). Install the agy CLI from https://antigravity.google (it isn't an npm package).

Gavel needs at least one advisor usable, but works best with both.

Commands

CommandWhat it does
/gavel:fuse <task>Ask Claude + Codex + agy in parallel, synthesize one fused answer, then act on it.
/gavel:ask <codex|agy> <prompt>Send a prompt to a single model and show its answer verbatim (no fusing, no edits).
/gavel:setupCheck/install/auth the Codex and agy CLIs.
/gavel:config [show | set <key> <value> | unset <key>]View or change settings (model, timeout, panel) in the user or --project config file.

How advisors stay read-only

Only Claude modifies your workspace. The advisors are constrained differently because their CLIs differ:

  • Codex runs in your project under its OS read-only sandbox (-s read-only) — a hard boundary: it reads your code but cannot change it.
  • agy has no equivalent read-only sandbox (--sandbox only restricts the terminal, and --dangerously-skip-permissions would auto-approve writes), so gavel runs it isolated: in a throwaway directory with PWD/OLDPWD scrubbed, so it can't discover your repo path or make relative writes into it. It answers from the task text — include any code agy should see directly in your task. Note this is isolation, not a hardened sandbox: agy still inherits $HOME and could act on an absolute path you hand it, so don't paste untrusted content into a fuse expecting confinement.
  • claude (optional, off by default — for Claude-only setups) is the same claude CLI, which can write, so gavel runs it isolated exactly like agy: a throwaway dir, never --dangerously-skip-permissions. It answers from the task text, not your repo. Enable it under Configuration.
  • Prompts are passed via a temp file and never go through a shell — gavel runs each CLI with spawn (no shell), so quotes / $(...) / backticks in a task stay literal and can't inject. Codex receives the prompt on stdin; agy has no stdin prompt input, so its prompt is passed as a direct process argument (still no shell, so the same injection-safety holds — but it's briefly visible in ps, so don't put secrets in an advisor prompt).

Configuration

Defaults: Codex gpt-5.5-pro, agy gemini-3-pro, per-model timeout 1800s (30 min). These are the preferred defaults — if your account can't use them, gavel automatically falls back to whatever model the Codex/agy CLI itself defaults to (a model you explicitly set is always respected, never swapped). Override via env vars (GAVEL_CODEX_MODEL, GAVEL_AGY_MODEL, GAVEL_CLAUDE_MODEL, GAVEL_TIMEOUT) or a settings file — ~/.gavel/config.json (user) or ./.gavel.json (project).

Easiest way to change settings is the config command (no hand-editing JSON):

/gavel:config show                       # effective settings + which file each comes from
/gavel:config set timeout 600            # 10-min timeout, for all projects (~/.gavel/config.json)
/gavel:config set codex.model gpt-5.5    # pin a model (opts that provider out of auto-fallback)
/gavel:config set agy.model gemini-3-pro --project       # this repo only (./.gavel.json)
/gavel:config unset codex.model          # restore the preferred default + auto-fallback

Keys: timeout (seconds), panel (comma-separated), <provider>.model, <provider>.enabled. Or edit the file directly:

{
  "providers": {
    "codex": { "enabled": true, "model": "gpt-5.5-pro" },
    "agy":   { "enabled": true, "model": "gemini-3-pro" }
  },
  "panel": ["codex", "agy"],
  "timeout": 1800
}
  • Settings are saved to disk and persist across all sessions (not per-session): set writes ~/.gavel/config.json (all projects) by default, or ./.gavel.json with --project (this repo only). Env vars and CLI flags are the only per-run overrides.
  • Set a provider "enabled": false to skip it everywhere with no repeated warnings.
  • panel selects which providers /gavel:fuse queries (default: all enabled).

Only have a Claude subscription?

No Codex or Gemini? Add a second Claude as the advisor. It's an opt-in provider — off by default, so it never changes the normal cross-vendor panel for everyone else:

/gavel:config set claude.enabled true     # turn on the claude advisor
/gavel:config set panel claude            # fuse with just Claude (use "claude,agy" if you also have Gemini)

Now /gavel:fuse runs your in-editor Claude (draft + judge) plus a second Claude through the claude CLI. Point that second one at a different tier so it's an independent opinion rather than an echo of the draft — it defaults to sonnet; override with GAVEL_CLAUDE_MODEL or claude.model. Honest caveat: two Claudes of the same family are less diverse than a true cross-vendor panel, so if you can add Gemini (the agy CLI signs in with a Google account — no API key), that's the bigger win.

Adding another model

scripts/gavel.mjs is built around a PROVIDERS registry. To add a CLI (e.g. a future qwen), add one entry — its binary, default model, auth check, and a run() that invokes it read-only with the prompt fed via stdin or a process argument (never a shell) — and leave it isolated (the default) unless it has a real OS read-only sandbox like Codex. It then appears in /gavel:setup and the /gavel:fuse panel automatically; to also expose it via /gavel:ask, add its name to the one-line allow-list in commands/ask.md. (Providers are CLI-based today; an API-key-only provider would need a small tweak to the usable check.)

Requirements & versions

node, the codex CLI (logged in), and the agy CLI (logged in). Tested with codex ≥ 0.133.0 and agy ≥ 1.0.9; older versions may lack required flags — /gavel:setup warns if your CLI is older than tested.

Testing

bash scripts/smoke-test.sh runs the deterministic checks (read-only enforcement, prompt injection-safety, strict exit codes, degraded/disabled readiness). The in-Claude-Code behavior of the slash commands (/gavel:fuse synthesizing then acting) is best verified live in a scratch repo.

License

MIT — see LICENSE.

// compatibility

Platformscli, api
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageJavaScript

// faq

What is gavel?

Multi-model fusion for Claude Code: ask Claude + Codex + Gemini in parallel, then judge their answers into one and act on it.. It is open-source on GitHub.

Is gavel free to use?

gavel is open-source under the MIT license, so it is free to use.

What category does gavel belong to?

gavel is listed under devtools in the Claudeers registry of Claude-compatible tools.

0 views
33 stars
unclaimed
updated 15 days ago

// embed badge

gavel on Claudeers
[![Claudeers](https://claudeers.com/api/badge/gavel.svg)](https://claudeers.com/gavel)

// retro hit counter

gavel hit counter
[![Hits](https://claudeers.com/api/counter/gavel.svg)](https://claudeers.com/gavel)

// reviews

// guestbook

0/500

// related in MCP Servers

🔓

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete…

// mcp-serversf/HTML164,687NOASSERTION[ claude ]
🔓

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Gemini CLI & Hermes Agent. Only official website: ccswitch.io

// mcp-serversfarion1231/Rust112,854MIT[ claude ]
🔓

An open-source AI agent that brings the power of Gemini directly into your terminal.

// mcp-serversgoogle-gemini/TypeScript105,729Apache-2.0[ claude ]
🔓

A collection of MCP servers.

// mcp-serverspunkpeye/90,251MIT[ claude ]
→ see how gavel connects across the ecosystem