New Now with rich context - reviews that understand your whole codebase

AI-powered code reviews
for every pull request

Get instant, detailed feedback on your code. ShipItAI reviews every PR with Claude AI, leaving inline comments exactly where they matter.

Install on GitHub See how it works
7 days
Free trial
<30s
Review time
100%
PR coverage

Three steps to better code

Set up in minutes, not hours. No configuration files, no complex setup.

1

Install the GitHub App

Add ShipItAI to your repositories with one click. Works with public and private repos.

2

Open a pull request

Just push your code like normal. ShipItAI automatically detects new PRs and gets to work.

3

Get instant feedback

Receive detailed, inline comments within seconds. Reply to continue the conversation.

Everything you need for better reviews

Powered by Claude AI to give you thoughtful, actionable feedback.

Instant Reviews

Get feedback in under 30 seconds. No waiting for human reviewers to find time in their schedule.

Inline Comments

Comments appear exactly where they matter - right on the specific lines of code that need attention.

Conversational

Reply to comments with @shipitai to ask follow-up questions or get clarification on suggestions.

Rich Context

Reviews that understand your codebase. ShipItAI fetches full files, test files, and commit history to give feedback like "Based on the pattern in lines 45-60..."

Zero Code Retention

Your source code is never stored. We review the diff, post comments, and immediately discard it. SOC 2 friendly.

Code Suggestions

Get specific code suggestions using GitHub's suggestion syntax. Apply fixes with one click.

Zero Config

Works out of the box. Optionally customize behavior with a simple YAML file.

Contributor Protection

Automatic reviews only trigger for repository contributors. External PRs require a contributor to approve with @shipitai review.

Customize ShipItAI

Works out of the box, but you can fine-tune behavior per repository.

.github/shipitai.yml
enabled: true
trigger: auto

exclude:
  - vendor/**
  - *.gen.go

contributor_protection: true

context:
  full_files: true
  related_files: true
  history: false

instructions: |
  Focus on security issues.
Option Values Description
enabled true / false Enable or disable reviews for this repository
trigger auto Review automatically when PRs are opened or updated
on-request Only review when you mention @shipitai in a comment
exclude list of patterns Glob patterns for files to skip (e.g., vendor/**, *.gen.go)
contributor_protection true (default) Only auto-review PRs from contributors. External PRs need @shipitai review from a contributor.
instructions text Custom guidance for the reviewer (your stack, conventions, focus areas)
context.full_files true (default) Include full file content, not just the diff. Enables "Based on line 45..." feedback.
context.related_files true (default) Fetch test files and imported files. Catches missing test coverage.
context.history true (default) Include recent commit history. Understands why code was written.

Reviews that actually help

ShipItAI doesn't just point out problems - it explains why something matters and helps you fix it.

Have a conversation

Confused by a suggestion? Just reply with @shipitai to ask follow-up questions. Get clarification, alternatives, or deeper explanations without leaving the PR.

src/handlers/user.go
41 41 func GetUser(w http.ResponseWriter, r *http.Request) {
42 + id := r.URL.Query().Get("id")
43 + query := "SELECT * FROM users WHERE id = " + id
shipitai bot 2 hours ago

This query is vulnerable to SQL injection. User input should never be interpolated directly into SQL strings.

AC
alexchen 2 hours ago Author

@shipitai What if I validate the input first with a regex? Would that be safe enough?

shipitai bot 2 hours ago

Input validation alone isn't sufficient. Even well-intentioned regex patterns can have edge cases that attackers exploit. Use parameterized queries instead:

query := "SELECT * FROM users WHERE id = ?" rows, err := db.Query(query, id)

One-click fixes

When ShipItAI knows exactly what to fix, it provides GitHub suggestions you can apply with a single click. No copy-pasting, no manual edits.

shipitai bot 16 hours ago

The error is being silently discarded. This could mask issues in production.

Suggested change
47 - result, _ := client.Fetch(url)
47 + result, err := client.Fetch(url)

Catches real issues

Not just style nits. ShipItAI identifies bugs, security vulnerabilities, performance problems, and race conditions that could break production.

src/cache/store.go
89 + go func() { cache[key] = value }()
shipitai bot 5 hours ago

Critical bug: This map is accessed from multiple goroutines without synchronization. This will cause a race condition and potentially crash with "concurrent map writes".

Consider using sync.RWMutex or sync.Map for thread-safe access.

Understands your codebase

ShipItAI doesn't just see the diff—it fetches full files, test files, and commit history. Reviews reference surrounding context: "Based on the error handling pattern in lines 45-60..." or "The test file doesn't cover this new edge case."

src/api/orders.ts
127 + async cancelOrder(orderId: string) {
128 + return this.db.orders.update({ status: 'cancelled' });
129 + }
shipitai bot 1 hour ago

Based on the error handling pattern used in createOrder (lines 45-67) and updateOrder (lines 89-112), this method should wrap the DB call in a try-catch and check the order status before cancelling.

Also, orders.test.ts has tests for create and update, but doesn't cover the cancel flow. Consider adding a test for the "already shipped" edge case.

Simple, transparent pricing

Pay only for active developers. Bring your own API key for even lower prices.

Bring Your Own Key
BYOK
$5/mo per dev

Use your Anthropic API key. Pay only for platform access.

  • Unlimited repositories
  • Unlimited pull requests
  • Your Anthropic API key
  • Conversation support
  • Zero code retention
Install & configure

Configure your API key in Settings after install

Ship better code, faster

Join teams who trust ShipItAI to catch issues before they reach production.

Get started free