Skip to content

Graphite Agent
- The AI reviewer you can collaborate with

Built right into your PR page, Graphite Agent helps you review, fix, and commit faster, all in one flow.

Ask Graphite about this PR...
How can I fix the build_and_test_apps CI failure?

Instant, high-signal AI reviews

Get in-line context on code changes

Resolve CI failures in one click

Apply fixes instantly

Preview and update changes with a full Editor view

AI Reviews

Get instant reviews

Start catching bugs in under 3 minutes.

Get feedback on every PR in seconds, not hours
Features

Why teams choose Graphite Agent

The features that help teams review faster, catch more bugs, and enforce best practices.

More impact, less noise

Teams that use Graphite Agent catch more critical issues with fewer false positives than competing solutions, from benchmark tests.

Less than 5% negative comment rate

Instant reviews

Graphite Agent integrates directly with GitHub where you can take suggestions in 1-click. No context switching needed.

Seamless integration with GitHub

Custom rules

Scale your team’s best practices. Write your team’s preferred rules in plain language, or choose from templates. Graphite Agent enforces them across every PR, instantly.

Adhere to your team's best practices
Logic bug
The condition in the if statement should be inverted. Change it to: if (!Object.keys(ASYNC_JOB_REGISTRY).includes(kind)) {
Potential edge case
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.
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().
Code style/quality
The callsite value markNotifAsRead doesn't match the function name markAsReadEndpoint.
Documentation issue
The description 'Get auth tokens for user' doesn't match the command's actual functionality. Consider changing it to 'Run async job queue and send a test email'.
Use cases

Catch more than just typos

Logic bug
Potential edge case
Security issue
Accidentally committed code
Performance
Code style/quality
Documentation issue
FAQ

Frequently asked questions

Still have questions? Reach out to our team.

Built for the world's fastest engineering teams, now available for everyone