The open-source AI code reviewer.

A multi-agent pipeline for reviewing complex pull requests. It runs on its own in GitHub Actions and blocks the merge when it finds a bug in the code.

npx skills add cryskai/cryskView on GitHub

Finds the bug

Five hunters read every change in the pull request.

Built for agents

Your agent triages, fixes and pushes on its own until the check passes.

Runs on your subscription

Uses the Claude or ChatGPT plan you already pay for. No API key needed.

Review

Every PR, from first push to merge.

Crysk reviews each pull request in your terminal, comments on the exact line, and keeps the check red until the fix lands.

From review to merge

One finding, one fix, one recheck. The check turns green only when the bug is gone.

cryskacme/billingfeat/session-refresh#458fix/invoice-rounding#457chore/bump-stripe#455feat/export-csvdraftRepogotchas.md12 rulesWatcherevery 15 minUsage$38 this month5 hunters · refuter · Claude Codefeat/session-refresh#458 · 3 files · +41 −6PR opened3 commits · 2 min agocryskreviewed1 blocking findingExpired refresh tokens still mint new sessionssrc/auth/session.ts:33logic hunter · upheld by the refuterClaude Codepushed a fix9f2c4a1restore expiry check, add regression testcryskrecheckedVerifiedFinding resolved in 9f2c4a1 · 0 blockingcryskNo blocking findingsRequiredbuildpassedReady to mergeHunterslifecyclelogicparitywhen it appliesreliabilityresilienceRefuterModeGateAdvisoryThis run#458Duration4m 12sChanged3 filesRefuterheldFindings1 blockingResolved

Reads every change

The hunters read every change in the pull request, across every file it touches. The pull request, never the whole repository.

Runs in your terminal

Or in CI. Claude Code or OpenCode. Your machine, your model. No Crysk server in between.

Your model, your plan

Claude Code, the one we recommend, or any model OpenCode runs: ChatGPT, DeepSeek, Grok.

Automatic on every pull request

One command adds it to GitHub Actions. After that, every pull request is reviewed on its own, and the check stays red until the bug is gone.

$0

Reviews on the Claude plan you already pay for.

Crysk is open source and runs in your terminal. On a Claude plan a review uses that plan's quota: no seats, no bill per review. On a cheap model through OpenCode, a review costs cents.

What a month of reviews costs

Every tool reviews the same pull request: 600 lines, with Greptile at Plus, 3 credits. Seat prices grow with the team. Per-review prices grow with every push.

560 reviews a month

$240/moyou don't payagainst the cheapest alternative (CodeRabbit)
  1. Crysk on your Claude plan$0 extra
  2. Crysk on DeepSeek~$0.32 per review$179/mo
  3. CodeRabbitper seat$240/mo
  4. cubicper seat$320/mo
  5. GreptileBase, 1 credit per review$560/mo
How we count it, and sources

The rules

  1. Same work for every tool: the developers, pull requests and pushes you pick. A pull request is 600 lines in 5 files, the average of the 18 we measured.
  2. Every push is reviewed, the default on every tool, and each tool bills it the way its own docs say.
  3. The cheapest paid plan that reviews pull requests, at list price, billed monthly. No trials, yearly discounts or startup and open-source programs.
  4. Each tool's default review depth, no premium tier.
  5. Nothing pauses: past an included allowance, reviews are paid at the published overage price.
  6. Reviews are spread evenly over working hours, 8 a day, 21 days a month.
  7. Where the docs leave a gap, we round in the other tool's favour and against Crysk.

Checked on 2026-10-25. Greptile Pro has no seat fee: $1 a credit, and a Base review is 1 credit (Auto, the recommended setting, gives most pull requests Base). CodeRabbit Essentials is $30 a developer a month. Its allowance is 5 reviews an hour per developer and falls with use, to 1 an hour after 60 reviews in 7 days; past it, $0.25 a file, and we bill only the first push's files. cubic Team is $40 a developer a month with 40,000 lines each, then $20 per 10,000 lines; later pushes count only new lines, and we count none. Crysk on DeepSeek bills every push as a full review, $0.32 measured. On a Claude plan, reviews count toward the plan's usage limits.

Sources: Greptile · CodeRabbit · cubic

  • $0 extraon the Claude plan you already have
  • ~$0.32per review on DeepSeek V4.1 Flashaverage of 18 measured reviews, the most expensive $0.58
  • 0 seatsopen source, Apache 2.0
Benchmark

50 public PRs. One judge for every tool.

Crysk on the Martian code review bench: 50 pull requests from open-source projects, every tool's review on record, all scored by the same judge against the same 173 known bugs.

Bugs caught against noise

Higher means more bugs caught: of the 66 high and critical known bugs, or of all 173. Further right means less noise: more of a tool's comments matched a known bug, so real issues missing from the list count against it.

Martian code review bench50 PRs
40%50%60%70%80%90%20%30%40%50%60%70%80%Precision · less noise →Serious bugs caught →All bugs caught →AugmentQodocubicGitHub CopilotGreptileCodeRabbitCursor BugbotClaude CodeCrysk, adjustedCrysk40%50%60%70%80%90%20%30%40%50%60%70%80%Precision · less noise →Serious bugs caught →All bugs caught →AugmentQodocubicGitHub CopilotGreptileCodeRabbitCursor BugbotClaude CodeCrysk, adjustedCrysk

One Crysk run, October 2026, on Claude Code: Sonnet hunters, Opus refuter, and a Sonnet pass that merges duplicate comments. Crysk works with other models too, and each one gives different results. Every tool judged by Claude Opus 4.5 through Martian's own pipeline, against the same 173 known bugs.See the Martian code review bench

The hollow point is Crysk at 58% precision: it also counts the 96 comments that matched none of the known bugs but that our own review of every unmatched comment classed as real bugs. That count is ours, not Martian's, and no other tool's comments were classified this way.

Most serious bugs caught

Crysk caught 52 of the 66 high and critical known bugs, more than any other tool here. Below, all nine ranked.

Martian code review bench50 PRs · Serious bugs

  1. Crysk79%52/66
  2. Augment74%49/66
  3. Qodo74%49/66
  4. cubic73%48/66
  5. GitHub Copilot71%47/66
  6. Greptile67%44/66
  7. CodeRabbit64%42/66
  8. Cursor Bugbot61%40/66
  9. Claude Code53%35/66

Fastest review

Median time from opening a PR to the last review comment. Crysk timed on 115 PRs of its own repo; the rest by Martian.

Review timedot median · line middle half

0m2m4m6m8m10m12mCrysk4.3 minGreptile4.3 minAugment4.8 minCodeRabbit6.4 minQodo6.4 minCursor Bugbot7.9 mincubic8.3 minGitHub Copilot9.4 min

Crysk: PR event to job end. Copilot, Greptile: earlier versions.

AGENT NATIVE
Loop

Your agent keeps going until the check is green.

Turn the review on in CI once. Your coding agent opens the pull request, waits for the review, fixes what is real, answers the rest and pushes again. You step in only when it asks.

Round and round until it's green

Push, review, triage, fix. Your agent and Crysk take turns, round after round, until no blocking finding is left.

pushreviewtriagefixClaude Codeopened #4582 fixed, 1 dismissed1 fixed, pushedcryskwaiting for a pushReview 13 blockingReview 21 blockingReview 30 blockinground 1round 2round 3#458 opened3 blocking1 blockingReady to merge

Turn it on once

Run /crysk-ci-setup in your agent. From then on, every push is reviewed.

$npx skills add cryskai/crysk>/crysk-ci-setupwrote .github/workflows/crysk.ymlset secret CLAUDE_CODE_OAUTH_TOKENcrysk.ymlon:pull_request:types:[opened, synchronize,reopened]steps:- uses:cryskai/crysk@v0# every push to a PR is reviewed;# the crysk check blocks merge

Opens the PR and stays on it

The crysk-pr skill opens the pull request and waits for the review in the same turn.

Claude Codecrysk-prPushedfeat/session-refresh3 commitsOpened#458into main$crysk status --pr 458 --waitreview settled · gate failureunresolved_blocking3next_action"triage"Loadingcrysk-loop

Every finding gets an answer

The crysk-loop skill fixes what is real and answers the rest in each thread. If the design is the problem, it stops and tells you.

cryskBlockinglogic hunterExpired refresh tokens still mint new sessionssrc/auth/session.ts:33Claude CodeappliedConfirmed. Restored the expiry check in 9f2c4a1 and added a regression test.Race on token rotationdismissedAlready guarded by the lock in rotate.ts:18cryskrecheckedVerifiedfixed in 9f2c4a1

FAQ

Is Crysk free?

Yes. It is open source under Apache 2.0, with no seats and no plan of its own. It runs on the model you already pay for, and a review uses that plan's quota.

Subscription or API key?

A subscription. Crysk is built to run on the plan you already pay for, Claude or ChatGPT: a review uses its quota, not a bill. API keys work too, but they bill every token, so Crysk sets a spend limit on them by default.

Where does my code go?

Nowhere new. Crysk runs in your terminal or on your own CI runner and talks to the model you already use. There is no Crysk server in between.

Which models can it use?

Claude Code is the one we recommend: Crysk was built, tuned and tested around it, and it runs on your Claude plan. It also works through OpenCode with any model OpenCode supports, such as OpenAI on your ChatGPT plan or DeepSeek.

Will it block my merges?

In GitHub Actions, yes: the crysk check stays red while a blocking finding is open. mode: advisory keeps it green, and /crysk override unlocks a red check. In your terminal it is an assistant and never blocks anything.

How do I know what a review will cost?

Every paid run prints a plan and a cost band first, and asks before it starts. --dry-run shows the plan for $0.

Does it review the whole repository?

No. It reviews the changes in the pull request, and reads the code around them to understand each change.

How noisy is it?

Quiet on purpose. What it reports is almost always real (13% false positives, measured), it hunts logic and lifecycle bugs, and it says nothing about style.