Skip to content
agentsdancePublic

About

Independent AI code reviewers, one judge, and a local console for pull request review and fixes.

Topics

Resources

Contributing

Security policy

Stars

13 stars

Watchers

0 watching

Forks

Latest commit

 

History

247 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Jury

English | 简体中文

Independent AI reviewers. One judge. A review you can follow.

CI npm MIT license

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.

Supported code agents

Code agent CLI name Default role
OpenAI Codex codex Main agent (judge)
Anthropic Claude Code claude Reviewer
xAI Grok grok Reviewer
Factory Droid droid Reviewer
Google Antigravity agy Reviewer
OpenCode opencode Opt-in
Qwen Code qwen Opt-in
GitHub Copilot CLI copilot Opt-in
Cursor Agent CLI cursor Opt-in
Sourcegraph Amp amp Opt-in
Moonshot Kimi Code CLI kimi Opt-in
TRAE CLI trae Opt-in

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.

Quick start

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=false

This 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=false

Replace 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.

Codex desktop plugin

Review pull requests from Codex using your own coding agents. Install from GitHub:

codex plugin marketplace add agentsdance/codejury
codex plugin add codejury@codejury

Start a new Codex chat, select CodeJury, and ask:

Review https://github.com/OWNER/REPO/pull/123

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.

Claude Code plugin

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@codejury

In 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.

Screenshots

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.

Code Jury dashboard showing parallel reviewer timelines and two review rounds

Terminal review output

The CLI shows the target PR, judge, reviewers, console URL, and first-round results.

Terminal output from jury review with Droid as judge and Claude, Codex, and Grok as reviewers

Round-by-round findings

Compare each reviewer's report across successive commits.

Reviewer reports for round 1 and round 2, grouped by agent and commit

Judge–reviewer conversation

Follow a finding from the reviewer's report to the judge's reproduction and response.

Droid and Codex discussing and reproducing a finding about the Antigravity executable test

How it works

  1. Resolve the PR's base branch and head commit into an isolated checkout.
  2. Run selected reviewers concurrently. Each reports independently.
  3. Let one judge investigate each finding and record a verdict. Accepting a finding requires reproduction evidence and a test description.
  4. Commit fixes and, unless disabled, push to the source branch. Send each reviewer feedback about its own findings.
  5. 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>.

Choose your reviewers

jury review <pr-url> --reviewer claude --reviewer grok
jury review <pr-url> --jury claude,grok
jury review <pr-url> --judge claude --reviewer droid --push=false

Use an installed and authenticated Antigravity CLI as a reviewer:

jury review <pr-url> --jury agy --push=false

jury 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 it

Saved 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 pool

Saved 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 only

See models for each agent's flag and the precedence rules.

Built-in agents

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 judge

Each 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.

Review related PRs together

jury review https://github.com/acme/api/pull/12 https://github.com/acme/client/pull/34 \
  --reviewer claude --push=false

Every 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.

Data and permissions

  • 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.1 and has no login. Keep it local. See SECURITY.md.

Project status and contributing

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

Sponsors

Supported by OpenAI's Codex for Open Source program with ChatGPT Pro (20x) access.

License

MIT.

OpenCode

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.

About

Independent AI code reviewers, one judge, and a local console for pull request review and fixes.

Topics

Resources

Contributing

Security policy

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages