A second reviewer on every pull request.

Relay reviews every diff in context, leaves the line comments a senior engineer would, and learns your team’s conventions as you resolve threads.

New: Relay learns from resolved threads

Review is where a team’s standards live. Relay brings them to every pull request, not only the ones a senior engineer had time to read.

FIG 01 · comment on api/sessions.go:212

Comments where the code is. Not a summary pasted under the PR.

Relay comments on the exact line, explains the reason in a sentence or two, and offers a suggested change you can commit from the thread. It stays quiet on code it has nothing useful to say about.

  • Suggested changes, one click to commit
  • Reads callers and tests, not only the diff
  • Nits off by default
  • Replies when you push back

FIG 02 · check run on pull request #4417

Bugs caught before merge. Races, off-by-ones, unsafe migrations, missing awaits.

Relay posts a check run on every pull request. You decide which findings block a merge on protected branches; everything else arrives as a suggestion the author can take or leave.

  • Blocking rules per branch
  • Severity you can tune
  • Re-reviews only what changed
  • Links to the commit that fixed it before

FIG 03 · conventions learned in northwind/billing-service

It learns how your team writes code. From resolved threads, not a rules file.

When a reviewer pushes back on a comment, or a pattern keeps coming up in human reviews, Relay proposes a convention. A maintainer accepts it once; from then on it is applied on every pull request in that path.

  • Scoped to paths and languages
  • Every rule cites its threads
  • Accept, edit, or turn off
  • Exportable as plain YAML

One week of comments. Six that changed the code before it merged.

FIG 04 · illustrative log, sample repository

LocationCommentKindOutcome
api/sessions.go:212Session token compared with ==; use a constant-time compare.securityFixed before merge
worker/sync.ts:88Two workers can claim the same job; the read and the claim aren’t atomic.raceFixed before merge
billing/proration.ts:112Rounds per seat before summing; round once at the end.bugSuggestion committed
db/0042_seat_events.sql:9NOT NULL column with no default on a 40M-row table locks writes.migrationSplit into two steps
web/useInvoices.ts:31filters is a new object each render, so the effect re-subscribes.performanceFixed
lib/http/retry.py:57Team convention: retries go through backoff(), not a sleep loop.conventionResolved

Installed before your next standup. No pipeline changes, no rules to write first.

  1. 01
    Install the GitHub App

    Choose the repositories Relay may read. Permissions are scoped to pull requests and contents.

  2. 02
    Open a pull request

    Relay reviews the next PR that opens, and every one after it, including drafts if you want.

  3. 03
    Resolve threads as usual

    Agree, push back, or ignore. Relay keeps what your team agrees with and proposes it as a convention.

.relay.yml · optional
review:
  drafts: false
  nits: off
  block_on: [security, race, migration]
  branches: [main, release/*]

paths:
  "src/billing/**":
    conventions: learned
    reviewers: [@northwind/payments]
  "vendor/**": ignore

# Code is read to review it. It is never
# used to train models.

Free for open source. $24 a seat when your team relies on it.

Free

$0

For individuals and open-source maintainers.

Install free
Public repositories
Unlimited
Private repositories
1
Line comments and suggestions
Included
Learned conventions
—
Blocking checks
—
Support
Community

Team

$24per seat / month

For engineering teams that want every PR reviewed the same way.

Start the Team plan
Public repositories
Unlimited
Private repositories
Unlimited
Line comments and suggestions
Included
Learned conventions
Included
Blocking checks
Per branch
Support
Email, 1 business day

A seat is anyone who opens pull requests in a reviewed repository. Reviewers who only comment are free.

Questions staff engineers ask first.

Is our code used to train models?

No. Relay reads code to review the pull request in front of it. Diffs and context are not used to train models, and you can delete a repository’s data from settings at any time.

How noisy is it?

Nits are off by default, and Relay only comments where it can name a concrete problem or a convention your team has agreed on. If a thread is resolved without a change, that counts against the pattern next time.

Can it block merges?

Yes, on the Team plan. Choose which kinds of findings block, and on which branches. Everything else stays a suggestion.

Where do conventions come from?

From your own review history. Relay proposes a convention when the same feedback appears across resolved threads; a maintainer accepts it before it is applied.

Which languages does it review?

TypeScript, JavaScript, Go, Python, Java, Kotlin, Ruby, Rust, C# and SQL migrations, with more on the changelog.

Merge with a second read.

Install Relay on one repository and see what it says about your next pull request.