AI code review for GitHub, GitLab & Bitbucket

It reads the repo, not just the diff.

Before it says a word, the reviewer pulls in related files, the project structure and your conventions - so its comments read like they came from someone who knows the codebase.

Free for 14 days · No credit card · Installs in 60 seconds

Reviews on
GitHubGitLabBitbucket

#482 · billing

fix: retry failed charges

  1. Pull request openedcharge.ts · +8 −1
  2. Solemly reviewed the diffFollowed the change into errors.ts
  3. 1 P1 finding · merge blockedRetries can charge the card twice
  4. Ready to mergeAfter the fix is committed
42− return stripe.paymentIntents.create(params);
42+ for (let attempt = 1; ; attempt++) {
44+ return await stripe.paymentIntents.create(params);
Solemlycommented just nowP1

Retries can charge the card twice. isRetryable treats a timeout as retryable (errors.ts:18), but a timed-out charge may have gone through. Send one idempotency key so a retry returns that charge instead of making a new one.

Suggested change
+return await stripe.paymentIntents.create(params, {
+idempotencyKey: `charge-${order.id}`,
+});

The kind of thing it catches

  • P1Retry without an idempotency key
  • P0SQL built from request input
  • P1Token written to logs
  • P2N+1 query inside a loop
  • P1Admin route missing an auth check
  • P2Race on a read-modify-write
  • P0Secret committed to config
  • P3Error swallowed by an empty catch
  • P2Unbounded query on user input
  • P1Webhook signature never verified
Reviews on
GitHubGitLabBitbucket
Bugs + security
Both covered on every review
~2 min
From PR opened to review posted
Merge gate
Blocks until findings are answered
Full repo
Context beyond the diff

The life of a pull request

01 · Opens

A pull request opens.

From a coding agent, a copilot or someone on your team. The review starts the moment it does.

02 · Reads

It reads the repo, not just the diff.

Related files, the project's structure and your conventions, so comments read like they came from someone who knows the code.

03 · Reviews

Bugs and security, on every diff.

Separate passes look for what breaks and what leaks, and rank what they find by risk.

04 · Comments

Findings land on the lines that need them.

Inline comments on the diff and a summary at the top. Ask it why, right on the pull request.

05 · Gates

The merge waits until they're answered.

A merge status your branch protection can require. Fix the finding, or dismiss it with a reason.

06 · Merges

Then it merges.

Push a fix and the review updates in place, not a new wall of comments. Reviewed, answered, shipped.

diffdiff
reporepo
passespasses
commentscomments
merge gatemerge gatemerge gate

The dashboard

Every review, finding and trend in one place.

The reviews land on the pull request. The dashboard is where you see all of them - across providers, repos and teams.

Every review, in one place

Reviews from GitHub, GitLab and Bitbucket in one list. Open any PR to read the summary, the inline comments and the security findings it got.

Reviews page listing recent pull requests, one expanded to show its summary and inline comments

Watch it work

See a review catch a real bug.

The demo is the whole product in under two minutes. The film is why it exists. The Short shows a finding opened in your coding agent to fix.

Meet Solemly: AI code review with a merge gate, security scan and Jira acceptance checks

1:41 · Captions on YouTube

A tour of the product: a review with inline findings, a security scan and a one-click hand-off to Claude Code, Cursor or Codex, then per-repo controls, Jira acceptance checks, analytics and the AI-impact reports.

Chapters3 videos · 2:48

How it reviews

A reviewer that knows the codebase and holds the line.

Context in, a verdict out — and a gate that holds the merge.

  1. 01 · ContextIt reads the repo, not just the diff

    It reads related files and your conventions before it writes a word.

    Context for checkout-service #4827 files
    • Changedsrc/billing/charge.ts
    • Importssrc/billing/errors.ts
    • Importssrc/lib/stripe.ts
    • Imported bysrc/checkout/submit.ts
    • ConventionsCLAUDE.md
    • Configpackage.json
    • DocsREADME.md
    From CLAUDE.md: “Idempotency keys are required on every POST to the payment gateway.”
    • Follows CLAUDE.md, AGENTS.md and Cursor rules as house style
    • Deep review mode searches and reads the repo before concluding
  2. 02 · Merge gateA merge gate that means something

    Nothing merges with a high-severity finding open.

    Merging is blocked
    2 failing checks, 1 required
    • Solemly / Review
      Blocking: 1 high-severity finding
      Required
    • Solemly / Security
      Blocking: 1 high-severity security finding
    • Solemly / Acceptance
      Matches the Jira ticket · PAY-412
    Fix and push — the review re-runs and the gate clears.
    • A separate security pass, reported on its own check
    • Jira acceptance check: does the PR do what its ticket asks?
  3. 03 · On the PRAsk it why, right on the PR

    Ask why on any finding, right where it sits — no dashboard.

    src/session/rotate.ts · line 58
    solemlyP1

    The old session token is never revoked after a role change.

    MW
    marcus.w

    @solemly explain

    solemly

    issueToken() creates the new session, but nothing calls sessions.revoke() on the old one, and middleware/auth.ts accepts any unexpired token. A demoted admin keeps admin access for up to an hour.

    • @solemly ask, explain, ignore and describe
    • @solemly review to re-run on demand, pause and resume per PR
  4. 04 · UpdatesOne current review, never a wall of bot spam

    Push again and the stale review is superseded — one current review per PR.

    checkout-service #4823 pushes
    1. e41c0a9Review complete · 1 finding
    2. b7d2f13Superseded — a newer commit was pushed
    3. 9a0e6c2Superseded — a newer commit was pushed
    Review
    • Review every push, once per PR, or only on request - per repo
    • Inline comments sit on the exact lines, with severity on each

Integrations

Works where your team already works.

One install per provider, no CI config or YAML. Open a pull request and the review lands natively on each platform.

  • GitHub

    A GitHub App. Reviews land as native PR reviews with inline comments and required checks.

  • GitLab

    Connect with an access token. Reviews post as MR notes with a commit status that gates the merge.

  • Bitbucket

    Install the app on your workspace. Reviews post as PR comments with a build status for merge checks.

  • Jira

    Finds the ticket from the branch, title or description and checks the PR against its acceptance criteria.

  • Slack

    A message in the channel you pick the moment a review finishes: the PR, what was found, and a link.

  • Microsoft Teams

    The same review notifications, posted to a Teams channel through an incoming webhook.

Set up in 60 seconds

  1. Connect your repos

    Install Solemly on your GitHub, GitLab or Bitbucket workspace and pick the repos to review.

  2. Open a pull request

    That's the trigger. The review starts straight away, with the surrounding repo in view.

  3. The review lands on the PRdone

    Ranked risks, inline comments on GitHub (a summary comment on GitLab and Bitbucket), a security pass, and a merge status you can require.

Also included

  • PR descriptionsWritten for you, or on @solemly describe.
  • Workspaces and teamsSeveral orgs, and teams that own their repos.
  • Admin and member rolesAdmins run settings; members see their work.
  • AI-authored PR detectionSpots AI-written PRs and tracks how they fare.
  • Export and printReports to CSV, or a clean PDF.
  • Sign in your wayEmail, or GitHub, GitLab or Bitbucket.

Independent benchmark

Within a point of Greptile on Martian's Code Review Bench.

50 real pull requests from Sentry, Cal.com, Grafana, Keycloak and Discourse, scored by an LLM judge against human-checked bugs. One trial, run by us on 21 October 2026: 10th of 22 tools, with the leaders near 59.

  • Greptile
    45.0
  • Solemly
    44.0
  • GitHub Copilot
    43.6
  • Claude Code
    40.6
  • CodeRabbit
    38.6

Pricing

Simple, honest pricing.

Free 14-day trial, then pay per user. 40 PR reviews per user every month. Cancel anytime.

Most popular
Standard
$18/ user / month

Billed yearly at $216 per user

Hosted by us. Install the app and your next PR gets reviewed. Free 14-day trial.

  • 40 PR reviews / user / month
  • AI reviews on all 3 providers
  • Unlimited repos
  • Merge-gate statuses
  • Automatic updates
  • Email support
Enterprise
Custompricing

Annual contract, invoiced

For large teams who need SSO, audit logs, and dedicated support.

  • Everything in Standard
  • SSO / SAML
  • Audit logs
  • Custom data retention
  • Dedicated Slack support

Your next PR deserves a real review.

Install in 60 seconds. Reviews on GitHub, GitLab and Bitbucket, and the reports to show what they caught.