Make your code brilliant

with AI code review

Get immediate, actionable feedback on every pull request with Graphite's codebase-aware AI.

Stats

500k+

Pull requests reviewed

<5%

Negative comment rate

Testimonials

1/8

"It's different from other AI tools because... it actually works. It doesn't blindly say "hey here's a typo," it gives well reasoned recommendations based on the context of what I'm trying to build and what I'm trying to build it in."

Brian Michel

Software Engineer at The Browser Company

Dagster Labs
Statsig
Clay
Watershed
Arc
Duolingo

Catch bugs before your reviewers do, enforce quality and coding standards, and conduct smarter, faster code reviews

Speed feature visualization
Get fast, practical suggestions that accelerate your review process and approve changes with one click.

Catch more than just typos

Identify and fix various code issues with our intelligent analysis

Logic bug

The condition in the if statement should be inverted. Change it to if (Object.keys(ASYNC_JOB_REGISTRY).includes(kind))

Code style/quality

The callback value markNotifAsRead doesn't match the function name markAsReadEndpoint.

Performance

The await inside Promise.all([...]) is preventing parallel execution of these promises. Since Promise.all expects an array of promises, the await here will cause the stack dependency check to complete before the merge job query begins. To achieve the intended parallel execution, remove the await from db.stack.getStackDependencyForPr().

Potential edge case

The readlink -f is not available on macOS by default. A more portable solution would be bash filepath=$(perl -e 'use Cwd "abs_path"; print abs_path(shift)' "$0") This achieves the same result but works across both Linux and macOS environments.

Security issue

Please remove this token logging. Exposing GitHub access tokens in logs creates a security risk, as these tokens grant API access and should be treated as sensitive credentials.

Accidentally committed code

Adding || true to this condition causes the function to unconditionally return "BINARY", bypassing the binary detection logic. This appears to be unintentional and should be removed to restore the original file type detection behavior.

Features

Faster development starts here.

Zero setup

No configuration needed. Connect your repo and get immediate feedback.

Zero setup

High-signal

Other AI bots hallucinate and create noisy comments. Diamond doesn't.

High-signal

Actionable

Resolve issues quickly with easy-to-understand one-click suggestions.

Actionable

Codebase aware

Reviews that understand the entire codebase, not just the diff.

Codebase aware

Supercharge your team with AI code review

Diamond Logo