A small Textual TUI that lists every open GitHub PR where you're a requested reviewer,
then hands the one you pick off to claude, codex, or gemini —
driven by the
PR Review Toolkit plugin on Claude,
or the same six review criteria loaded as native Skills on Codex and Gemini.
Every open PR where you're a requested reviewer, fetched across every repo
gh can see, in one keyboard-driven table — then handed off to Claude Code, Codex, or Gemini.
Wraps gh search prs --review-requested=@me --state=open and presents repo, number, title, author, age, and a draft flag in a scrollable table.
Pick a PR, confirm the modal, and the TUI clones (or fetches), checks out the PR branch via gh pr checkout, and launches your selected CLI inside the working tree.
Same six review dimensions everywhere — Comment Analyzer, Test Analyzer, Silent Failure Hunter, Type Design Analyzer, Code Reviewer, Code Simplifier. Claude runs them as PR Review Toolkit sub-agents; Codex and Gemini load them as native Skills.
Press c to cycle the global default claude → codex → gemini → claude (persisted across sessions), or ^L inside the confirm modal to override for a single launch.
Toggle ^T in the modal to ask the CLI to publish findings as inline review comments via a single gh api POST, grouped under one review.
Repos are stored as $GH_PR_WORKSPACE/<owner>/<repo>. Second review of the same repo reuses the clone — just a git fetch before checkout.
Optional codegraph MCP integration cuts review token usage: a prompt nudge toward six core graph tools, affected-tests injection for the test analyzer, and an index that's now auto-seeded into each PR worktree — no per-launch init prompt. Setup state is verified at startup — wired, binary-only, or not installed.
Six checkboxes in the confirm modal let you disable review agents that don't fit this PR — ^A flips them all at once. Launch is refused with zero selected, so you never fire an empty review.
Every CLI launch — on success and on abort or crash — writes one row to a local review_telemetry table: CLI, affected paths, post-inline, approx prompt tokens, duration, and exit code. Cost-and-outcome trends, never leaving your machine.
Press a to cycle the refresh interval off → 15m → 30m → 1h (persisted). The queue reloads on the timer — skipping while a CLI is running or a modal is open — and toasts plus rings the terminal bell the moment a new review-requested PR lands.
Set slack_webhook_url and a clean CLI exit posts the completed review to your channel. It reads the latest verdict straight from GitHub and only fires when a genuinely new review appears — no duplicate pings on no-op exits.
Each PR is checked out into its own ephemeral git worktree, so two PRs in the same repo never clobber each other's checkout. The cached clone stays a fetch-only primary; the worktree is torn down on exit and self-heals after a crash.
On a first review of a PR you didn't author, if nothing is blocking — only low/NIT findings — the agent submits an APPROVE (with the nit comments still attached) instead of a bare comment. Anything blocking falls through to a plain review.
A branded claude-dark coral theme ships as the default, alongside 15 built-ins. Pick one in the Settings modal — it's applied live and persisted across sessions, falling back gracefully on an unknown value.
Press , for a single place to set the persisted prefs — CLI, CodeGraph, auto-refresh interval, theme — and the Slack webhook. The footer stays minimal; the per-launch keys still work directly.
The confirmation modal shows the target PR plus the active CLI. On ↵/^Y, the TUI hands the shell over and, in order:
If the repo isn't in $GH_PR_WORKSPACE, it's cloned. The cached clone is kept as a fetch-only primary object store — never checked out itself — and refreshed on every review.
Each PR is checked out into its own ephemeral git worktree, so parallel reviews of the same repo never clobber each other. When CodeGraph is wired up, the primary's index is seeded into the worktree, then codegraph sync re-indexes just the diff.
The CLI starts inside the PR's checkout, so it has full file-level context. Claude runs in --permission-mode auto, which auto-approves edits and bash commands while still gating risky operations — so the review never stalls on a mid-run prompt. Codex and Gemini are launched in the closest equivalent auto-edit modes, and the same six review criteria are copied into .agents/skills/ as native Skills and removed on exit.
/exit and you're backWhen you exit the CLI, press Enter once and the TUI resumes — your queue is still there, ready for the next PR. The ephemeral worktree is torn down before the in-progress reservation is released.
Two contexts: the main queue and the confirmation modal. The filter modal has its own arrow-key affordances on top. The footer stays minimal — the m/g/s view toggles highlight when active, and persisted prefs live in the Settings modal.
uv tool upgradegh api. Defaults to on each time the modal opens..review_state.db.GH_PR_WORKSPACE~/gh-pr-workspace$GH_PR_WORKSPACE/<owner>/<repo> so a second review reuses the clone.$ away.
Every prerequisite is validated at startup via check_prereqs(); the TUI refuses to launch until they're satisfied.
# Install globally via uv $ uv tool install cc-pr-reviewer # Run it from anywhere $ cc-pr-reviewer
# 1 — gh CLI must be installed and logged in $ gh auth login # 2 — at least one coding-agent CLI on PATH $ which claude # or: codex / gemini # 3 — for Claude: PR Review Toolkit plugin (checked at launch) $ claude plugin install pr-review-toolkit # 4 — git on PATH (for git fetch on repeats) $ git --version
Installed and logged in via gh auth login.
One of claude, codex, or gemini must be on your PATH. If the persisted default isn't on this machine, the TUI transparently falls back to the next available one.
For Claude Code: install with claude plugin install pr-review-toolkit. Checked at launch time — Codex and Gemini load the same review criteria as native Skills instead and don't need it.
On your PATH. Used for git fetch on repeat reviews.
Twenty-eight releases in, one keystroke between you and a thorough PR review. Install once and live in the queue.