Skip to content
Documentation

Install in minutes. Tune as you grow.

PR Quorum is a GitHub App that reviews pull requests with configurable AI reviewers through OpenRouter. Start with the default panel, then refine noise controls, model routing, your OpenRouter key, team controls, and deployment settings as your requirements grow.

Quick start

1
Sign in

Use GitHub OAuth. Your workspace is created automatically.

2
Install the GitHub App

Choose an organization and its repositories. PR Quorum syncs them to your dashboard.

3
Open or update a pull request

PR Quorum reviews pull requests when they are opened, updated, reopened, or marked ready for review. Drafts are skipped by default.

4
Tune the review

Use dashboard controls, per-repository reviewer overrides, or .ai-review.yml when a repository needs a stricter policy.

GitHub App

PR Quorum verifies GitHub webhook signatures before queueing work. Installation and repository webhooks keep the dashboard in sync, and pull-request webhooks queue review runs through Inngest.

Required permissions

Contents: read, Metadata: read, Pull requests: read/write, Checks: read/write, Issues: read/write.

Subscribed events

installation, installation_repositories, pull_request, issue_comment (for the @prquorum comment command).

Status checks

PR Quorum creates GitHub check runs named PR Quorum when Checks write permission is installed. Review comments still post without checks.

Review behavior

Reviews are advisory by design. PR Quorum posts review comments and status checks for visibility while your team keeps merge control.

Comment commands

Comment @prquorum review to queue a fresh review, @prquorum pause to pause reviews on a pull request, or @prquorum resume to resume them. Only repository owners, members, and collaborators can use these commands. PR Quorum confirms each command with an emoji reaction.

Incremental re-reviews

On new pushes, only the files changed since the last completed review are re-reviewed (the summary says so). Force-pushes and other uncertain comparisons fall back to a full review. Disable with rules.incremental: false.

One-click fixes

When a finding’s fix is exact replacement code, the inline comment carries a GitHub suggestion block — the author applies it with one click. Prose advice stays in a plain code block.

Migrating from Quorum

The status check is named PR Quorum review. If a repository enforces branch protection on an older check name (Review panel, quorum / review, or PR Quorum / PR Quorum), update the rule to require PR Quorum review instead. GitHub treats renamed checks as separate checks.

Reviewer panel

The default panel is Correctness, Security, and Architecture. The catalog also includes Tests, Performance, Frontend UX, Migrations, and Accessibility reviewers. You can save a custom account-level panel and per-repository overrides.

Persisted controls

Name, model, focus list, system prompt, paused state, min confidence, max findings, inline posting, duplicate handling, and learnings preference.

Execution

Reviewers work in parallel. A failed reviewer is recorded, and the review only fails when every reviewer fails.

Aggregation

Findings are filtered, deduped, sorted by severity and confidence, then capped before inline posting.

Models and your OpenRouter key

The default model is deepseek/deepseek-v4-pro. The model picker is backed by the live OpenRouter catalog, so any valid OpenRouter model slug can be selected.

Your OpenRouter key

Add your own key from the dashboard. Keys are AES-256-GCM encrypted at rest and used at review runtime when platform-key routing is disabled.

Platform key

Accounts without their own OpenRouter key use the shared platform key.

Cost estimates

Usage events record model, tokens, reviewer timing, failures, and estimated cost, surfaced on the cost dashboard.

Noise controls

Modes

Balanced is the default. Switch to quiet (only high-certainty findings) or paranoid (the strictest review) for each repository from the Policy tab, or set mode: in .ai-review.yml.

Confidence floor

The default min_confidence is 0.75. Findings below the effective threshold are dropped before posting.

Inline limit

Each review includes up to 10 inline comments by default. Edit the limit for each repository on the Policy tab; PR Quorum enforces it server-side.

Skips

Draft pull requests, skip labels, and skip-path globs can be edited on the repository Policy tab or in YAML. PR Quorum applies them before queueing a review wherever possible.

Per-reviewer controls

A reviewer can be paused, capped by max_findings, or set to summary-only with post_inline=false.

Learnings

Findings your team repeatedly dismisses are fed back into reviewer prompts so they stop coming up, and surface as patterns on the Learnings page. Opt a reviewer out with use_learnings: false.

Policy YAML

Commit .ai-review.yml at the repository root to override dashboard policy for that repository. PR Quorum loads it from the pull request head SHA and merges it into the active policy.

review:
  enabled: true
  language: en
  mode: balanced
  trigger:
    - opened
    - synchronize
    - reopened
    - ready_for_review

  skip:
    draft_prs: true
    labels:
      - skip-ai-review
    paths:
      - dist/**
      - build/**
      - yarn.lock
      - package-lock.json

  rules:
    min_confidence: 0.75
    max_inline_comments: 10
    incremental: true
    post_summary_when_clean: true
    human_approval_required: true
    paths:
      - glob: "src/auth/**"
        min_confidence: 0.85
        max_inline_comments: 5

  reviewers:
    - id: correctness
      name: Correctness Reviewer
      model: deepseek/deepseek-v4-pro
      focus:
        - likely bugs
        - regressions
        - edge cases
    - id: security
      name: Security Reviewer
      model: deepseek/deepseek-v4-pro
      focus:
        - auth bypasses
        - injection risks
        - unsafe data handling

Billing and quotas

Review counting

One review is one full panel run on a pull request. Quotas reset each calendar month.

Hard caps

When a workspace reaches its quota, PR Quorum stops before running more model calls. Upgrades lift the cap immediately. Reviews using your own OpenRouter key are not counted against the cap.

OpenRouter spend

Pro and higher plans can route reviews through your own OpenRouter key, so model spend stays visible in your account and those reviews bypass the monthly cap.

Cost visibility

Usage events record model, tokens, duration, and estimated cost so noisy policies can be tuned before spend drifts.

Feedback and learning

Review findings can be marked open, accepted, dismissed, or suppressed. Triage does real work: titles your team dismisses repeatedly are injected into reviewer prompts so they stop being reported, and the Learnings page surfaces dismissal patterns with suggested policy tweaks.

README badge

Show that your pull requests get a panel review. Paste this into your README:

[![code review: PR Quorum](https://img.shields.io/badge/code%20review-PR%20Quorum-5e6ad2)](https://prquorum.com?utm_source=github&utm_medium=readme_badge)

Renders as code review: PR Quorum badge and links to prquorum.com.

Availability

Available today

The GitHub review workflow, reviewer panel, OpenRouter key routing, cost dashboard, and team controls are available today.

Feedback memory

Finding states are stored and surfaced in metrics; reviewer memory uses that signal as the dataset grows.

Developer API (preview)

The REST API is in preview and not yet generally available. Workspace API key management and authenticated API endpoints are not live yet. Scoped server-side keys are planned, with read access for reviews, repositories, and usage, plus a learning-write scope. Health is available at GET /api/health.