Code review that reads the whole repo

Kestrel reviews every pull request with the context of your codebase, explains each suggestion in plain words and runs in your CI.

1,240 teams on the list. Invites go out every Monday.

Built by people who shipped at

  • Atlas
  • Juniper
  • Halcyon
  • Morrow

01Features

A reviewer that has read everything

Not a linter with opinions. Kestrel reasons about your code the way a senior teammate would, and shows its work.

  • Suggested fixbilling/charge.ts · line 3 · seen in 4 callers
    billing/charge.tsdiff
    export async function chargeInvoice(id: string) {  const invoice = await db.invoices.find(id);- if (invoice.paid) return;+ if (invoice.paid || invoice.status === "void") return;  return payments.charge(invoice.total, invoice.currency);}

    Reads the whole repo

    Kestrel indexes your codebase first, so a suggestion knows every caller, type and test it touches.

    • KestrelBot09:41

      Void invoices still reach payments.charge. Three other callers already skip them; this one was missed in #812.
    • Lena Koch09:52

      Good catch. Can you point me to the other callers?
    • KestrelBot09:52

      billing/refund.ts:18billing/retry.ts:41jobs/dunning.ts:77
    • Lena Koch09:55

      Applied. Thanks.

    Explains every change

    Each suggestion comes with the reason and the evidence. Ask a follow-up right in the pull request.

    1. 01Index the repo1,284 files · 38 s
    2. 02Review the diff3 suggestions
    3. 03Map affected tests12 tests
    4. 04Secret scanQueued

    Runs in CI

    One step in GitHub Actions or GitLab CI. Reviews land before your teammates open the diff.

  • Accepted suggestions

    41% from 18%

    Learns your style

    Dismiss a kind of suggestion twice and Kestrel stops making it.

  • Repositories and where their code is read
    RepositoryRuns onKeptStatus
    acme/apiSelf-hosted0 daysReviewed
    acme/webKestrel EU7 daysReviewed
    acme/infraSelf-hosted0 daysIndexing
    acme/legacy——Excluded

    Private by defaultNo training on your code

    Run the reviewer on your own runners, or in our EU region with retention you set per repository.

02Changelog

Shipped this month

A release every other Thursday during the beta. Every change is reviewed by Kestrel first.

  1. v0.9 · Oct 30

    Monorepo support

    Kestrel now follows imports across workspaces and reviews a change against every package that uses it.

    • apps/web
    • apps/api
    • packages/ui
    • packages/config
  2. v0.8 · Oct 16

    Inline fixes

    Apply a suggestion from the pull request or the command line. Kestrel reruns the affected tests before it commits.

    Terminalbash
    kestrel apply 812 --suggestion 2✓ billing/charge.ts  1 line changed✓ tests              12 passed
  3. v0.7 · Oct 2

    GitHub and GitLab apps

    Install in two clicks on either platform. Reviews, threads and status checks work the same on both.

  4. v0.6 · Sep 18

    Self-hosted runner

    One container image for your own CI. Code never leaves your network; only anonymous usage counts do.

median time to first review
3min
suggestions accepted
41%
languages and frameworks
24
since the beta opened
99.9%

03Pricing

Free while it learns. Fair when it ships.

Every plan is free during the beta. These are the prices from general availability.

Billing period
Save 20%
  • Hobby

    For side projects

    €0/ month

    Public repositories

    Join the waitlist
    • Public repositories
    • 50 reviews a month
    • GitHub app
  • Enterprise

    For regulated code

    Custom

    Annual contract

    Talk to us
    • Self-hosted runner
    • SSO and audit log
    • Retention per repository
  • Free during the beta
  • Cancel any time

04FAQ

Before you ask

Anything else? Write to beta@kestrel.dev and a person answers.

Do you train models on my code?
No. Your code is read to review the pull request and kept only for the retention you set, from zero days up. It is never used for training.
Can I self-host Kestrel?
Yes. The runner is one container image for GitHub Actions, GitLab CI or any runner you own. Only anonymous usage counts leave your network.
Which languages does it support?
TypeScript, Python, Go, Rust, Java, Kotlin, Ruby, PHP, C# and Swift today, with the frameworks around them. More land with each release.
What will it cost after the beta?
The prices above. Beta teams keep the Team plan free for three months after general availability, and we will write two weeks before anything is billed.
How do you keep it secure?
Read-only repository access, encrypted storage in the EU, SSO, an audit log and a yearly third-party penetration test. Our security page has the details.

05Private beta

Get your invite

Leave your work email. Invites go out every Monday, in the order you joined.