English | 简体中文
Independent AI reviewers. One judge. A review you can follow.
Code Jury is a local CLI that asks independent coding agents to review a pull request, then lets one judge reproduce findings, apply fixes, and ask the reviewers to check again. Follow each conversation in a browser console, with prompts, reports, verdicts, and commits saved locally. It also reviews related PRs across repositories as one coordinated task.
Download the interactive console demo and open the HTML file in a browser. It uses illustrative data and does not start agents.
Opt-in agents are fully supported as reviewers and judges, but stay out of the default pool so a fresh install does not require every CLI to be present. Select one by name — no configuration needed. See Built-in agents for install commands.
Install and authenticate each agent's CLI separately. Run jury agents to see
which enabled agents are installed (ok) or missing (MISSING). Any enabled
agent can be selected as a reviewer with --jury <name> or as the main agent
with --judge <name>. The same agent can fill both roles in separate sessions
when explicitly selected (see below).
Additional CLIs can be added through custom agent configuration.
You need Node.js 20+, Git, and authenticated coding-agent CLIs. GitHub PRs also need
GitHub CLI (gh auth login) and Git credentials that can clone the repository.
With one installed supported CLI, Jury automatically uses it as both judge and jury.
With two, it randomly assigns one as judge and the other as jury. Explicit role settings take precedence.
Agent installation, login, subscriptions, and usage charges are separate from Code Jury.
To deliberately use Codex as both reviewer and judge, even with other CLIs installed:
jury review <pr-url> --reviewer codex --judge codex --push=falseThis explicit selection applies to the selected run, not global defaults. Reviewer and judge use
separate prompts and provider sessions: a fresh first-pass reviewer never resumes the
judge's conversation. Codex reviews and reviewer replies use read-only; judge turns
and resumed judge sessions use workspace-write. Only findings, verdicts and replies
are exchanged through the review workflow, not private judge session history. Both
roles still see the same working tree and the workflow's settled findings.
jury review --resume <slug> restores the saved roles; jury reply --run <slug>
routes replies to the saved reviewer session, never the judge session. Use the same
--dir and target arguments as the original run. Other reviewers can be included in the reviewer list.
Each sent reply is saved with its text so the console can replay the judge's message
alongside the reviewer's answer.
If a reply starts a fresh session because no review session ID was available, Jury
saves the new ID for later replies. A newer review replaces that reply session.
Replies that finish after a newer review keep their answers in the log but cannot
replace the newer review's session, including replies prepared from an older snapshot.
Concurrent replies also preserve the first session change accepted from their snapshot;
an abandoned reply or a fresh reply without an ID does not suppress a usable session.
Separate sessions do not provide model diversity or guarantee independent judgment or review quality. Prefer distinct agents when independent perspectives matter. Default reviewer pools still exclude the judge; automatic one-CLI fallback is unchanged.
npm install -g @agentsdance/codejury
jury agents
jury review https://github.com/OWNER/REPO/pull/123 --push=falseReplace the example URL with your PR. jury agents lists configured executables and roles;
it checks installation, not authentication or available quota. Authenticate each selected agent
using its own CLI before the review. The selected judge and juries are printed before agents start,
and automatic assignments are saved for replies and resume.
Reviews can edit files and create commits. Pushing is enabled by default.
--push=false disables Jury's pushes; it is not a read-only mode or an agent sandbox.
Single-PR URL checkouts are temporary and removed on completion; for durable local-only fixes,
use your own checkout without a URL. See state and retention.
The console opens automatically and stays up after the review; press Ctrl-C when finished.
For terminal-only use, add --web=false.
jury agents # installed executables and configured roles
jury review <pr-url> --push=false # review and fix without pushing
jury review <pr-url> # review, fix, commit, and push
jury runs --dir "" # list saved URL-based reviews
jury --web-only --dir "" # reopen their console
jury help review # complete review options
jury <pr-url> is shorthand for jury review <pr-url>. You can also run without installing:
npx @agentsdance/codejury review <pr-url> --reviewer claude --push=false.
Select generated prose with --language en or --language zh-CN. Jury saves the
preference across rounds, replies and resumed runs; pass the flag again to switch.
See response language for examples.
Review pull requests from Codex using your own coding agents. Install from GitHub:
codex plugin marketplace add agentsdance/codejury
codex plugin add codejury@codejuryStart a new Codex chat, select CodeJury, and ask:
Use your PR link. Reviews run locally and push fixes to the PR by default. Ask to keep fixes local to disable pushing. See setup and usage for prerequisites, agent selection, and saved reviews.
Code Jury is also a Claude Code plugin. Add this repository as a plugin marketplace and install it:
claude plugin marketplace add agentsdance/codejury
claude plugin install codejury@codejuryIn a session, /codejury:review <pr-url> runs jury review (or npx @agentsdance/codejury
when jury is not installed). In Claude Code it always sets --judge claude --reviewer claude,
overriding supplied and saved role choices for new and resumed runs. The two roles use separate
sessions. Other flags take precedence over the --web=true and --push=false defaults.
Claude shares the web console link, summarizes the findings and verdicts when the review ends,
and leaves the console running. Pass --web=false to disable it. The plugin requires a PR URL;
if omitted, Claude asks for it before starting. The plugin also ships the
codejury skill for running the review loop by hand. Agent CLIs are still installed
and authenticated separately. --push=false disables pushing; it does not make the review read-only.
Single-PR checkouts are temporary and their unpushed fixes are removed during cleanup.
See the plugin guide for prerequisites, updates, and local installation checks.
A review of Code Jury PR #67, with Droid judging and Claude, Codex, and Grok reviewing. The dashboard shows elapsed time per agent and findings across rounds.
Terminal review output
The CLI shows the target PR, judge, reviewers, console URL, and first-round results.
Judge–reviewer conversation
Follow a finding from the reviewer's report to the judge's reproduction and response.
- Resolve the PR's base branch and head commit into an isolated checkout.
- Run selected reviewers concurrently. Each reports independently.
- Let one judge investigate each finding and record a verdict. Accepting a finding requires reproduction evidence and a test description.
- Commit fixes and, unless disabled, push to the source branch. Send each reviewer feedback about its own findings.
- Repeat until reviewers agree and no findings remain open, or the round limit is reached.
Agent agreement is a review result, not proof that code is defect-free. The evidence is recorded so you can inspect it. Judge-provided test evidence is not an independent certification. The default limit is 10 rounds, with up to three exchanges per disputed finding.
Missing selected executables stop the run before agents start. A reviewer that exits unsuccessfully
stops the loop after the current review or reply round; its failure is saved and never counted as approval.
Fix the installation, login, or quota issue and resume with the same target arguments and --resume <slug>.
jury review <pr-url> --reviewer claude --reviewer grok
jury review <pr-url> --jury claude,grok
jury review <pr-url> --judge claude --reviewer droid --push=falseUse an installed and authenticated Antigravity CLI as a reviewer:
jury review <pr-url> --jury agy --push=falsejury agents lists agy by default, marked MISSING if its executable is not on
PATH. Antigravity runs in noninteractive print mode with automatic tool approval;
see configuration and permissions.
Set a judge once for all repositories:
jury agents judge claude # save the global default
jury agents judge # show the saved default
jury agents judge --reset # remove itSaved in ~/.jury/config.json. Precedence: explicit --judge, repository main
role, global setting, then Codex. jury agents shows effective roles in the
current directory. The judge must be enabled in the target repository; custom
agent commands still need configuration in each repository that uses them.
--reviewer and --jury accept repeated flags and comma-separated names. The selected judge
is excluded from the reviewer pool.
Without an explicit selection, enabled agents with the reviewer role are used; disable unavailable ones
or select installed reviewers explicitly.
Or save default reviewers once for all repositories:
jury agents jury claude # only claude reviews by default
jury agents jury claude,droid,amp # several; opt-in agents allowed
jury agents jury # show them, or pick with a checkbox list in a terminal
jury agents jury --reset # back to the built-in reviewer poolSaved in ~/.jury/config.json, next to the global judge. Precedence: --reviewer/--jury,
repository reviewer roles, saved default reviewers, then the built-in pool. A saved list turns
off automatic role assignment, as --jury does. The judge is left out of its own review. If a saved
reviewer is later uninstalled or disabled in a repository, the run stops with an error naming the
saved setting rather than reviewing with fewer agents.
Pick the model an agent runs with, without touching its own configuration:
jury agents model claude opus # saved default
jury review <pr-url> --model codex=gpt-5.5 # this run onlySee models for each agent's flag and the precedence rules.
| name | product | install | default |
|---|---|---|---|
codex |
OpenAI Codex | npm i -g @openai/codex |
judge |
claude |
Anthropic Claude Code | npm i -g @anthropic-ai/claude-code |
reviewer |
grok |
xAI Grok | npm i -g @vibe-kit/grok-cli |
reviewer |
droid |
Factory Droid | curl -fsSL https://app.factory.ai/cli | sh |
reviewer |
agy |
Google Antigravity | curl -fsSL https://antigravity.google/cli/install.sh | bash |
reviewer |
qwen |
Qwen Code | npm i -g @qwen-code/qwen-code |
opt-in |
copilot |
GitHub Copilot CLI | npm i -g @github/copilot |
opt-in |
opencode |
OpenCode | npm i -g opencode-ai |
opt-in |
cursor |
Cursor Agent CLI | curl https://cursor.com/install -fsS | bash |
opt-in |
amp |
Sourcegraph Amp | npm i -g @sourcegraph/amp |
opt-in |
kimi |
Moonshot Kimi Code CLI | npm i -g @moonshot-ai/kimi-code |
opt-in |
trae |
TRAE CLI (traecli) |
sh -c "$(curl -fsSL https://trae.cn/trae-cli/install_v2.sh)" |
opt-in |
Opt-in agents are fully supported — usable with --reviewer, --jury, --judge and
jury agents judge — but stay out of the default pool, so a fresh install does not require every
CLI to be present:
jury review <pr-url> --jury qwen,amp # works with no config change
jury agents judge qwen # or save one as the default judgeEach agent authenticates itself; see its own documentation. jury agents lists which are
installed, how to install the ones that are not, and which reviewers have no read-only mode —
for those, only the review prompt (not the tool) withholds writes.
Adding a built-in agent is a one-file change; see Adding a built-in agent.
Use jury.config.example.json to configure agents in the target repository.
See configuration and permissions for the actual execution boundary and custom commands.
jury review https://github.com/acme/api/pull/12 https://github.com/acme/client/pull/34 \
--reviewer claude --push=falseEvery reviewer sees all supplied PRs, their descriptions, and separate checkouts. The judge can fix
cross-repository problems in the appropriate branches. Findings and commits stay associated with each PR.
The first PR supplies configuration. Omit --trunk: each PR has its own base branch.
See usage and troubleshooting for resume behavior, GitLab limitations, and state directories.
- Jury runs agent CLIs on your machine. Those agents may send source code, prompts, and outputs to their providers under your account settings and terms.
- Agents inherit the process environment. Repository configuration defines executable commands; inspect it before running on an unfamiliar repository.
- Read-only intent is enforced only as far as each agent's configured permissions allow. Some built-in/custom agents use broad approval settings. Jury is not a security sandbox.
- Prompts, transcripts, findings, and run metadata are saved under the selected state root. They may contain sensitive source material; review them before sharing.
- The console binds to
127.0.0.1and has no login. Keep it local. See SECURITY.md.
Code Jury is pre-1.0. CLI changes are recorded in the changelog. CI exercises Node.js 20, 22, and 24 on Linux and macOS, including a fresh package installation. Windows is experimental; the complete workflow has not been validated there. External agent services are tested with local fixtures in CI, so provider CLI compatibility still depends on your installed versions. The Go console prototype is retained for development; the npm CLI is the supported distribution.
Report a bug · Contribute · Security reports · Case study · Known limitations
Supported by OpenAI's Codex for Open Source program with ChatGPT Pro (20x) access.
MIT.
Install OpenCode (npm install -g opencode-ai) and run opencode auth login to configure a provider. Verified against CLI 1.18.31. Select it with --reviewer opencode / --jury opencode, --judge opencode, or jury agents judge opencode.
Reviews use opencode run --agent plan --format json; edits, delegation, and outside-directory access are denied. The plan agent may inspect Git through its permitted shell commands; these CLI tool permissions are not an OS sandbox and local OpenCode configuration must be trusted. Judges use the build agent with --auto to edit and run checks; explicit permission denials still apply. Both roles run in the target worktree. Replies start fresh with the relevant finding context; Jury never resumes the latest unrelated conversation. Only assistant text events are parsed; malformed output, error events, empty output, failed exits, and timeouts cannot approve a review.
See agent configuration for verified CLI versions, login commands, permission boundaries, and session handling. New agents are opt-in, including OpenCode; select them explicitly or enable them in repository configuration.



