Skip to the check
Helix is opening to a small group of fintech teams. Request a trial →

Code Assurance for money movement your agents ship.

Helix checks every money change in your workflow and helps you decide whether it's safe to ship to production.

  • Every pull request and push to main
  • Same change, same answer
  • A record of every decision

Illustrative example. About 240ms on your runner.

Works in GitHub. Checks code from people and any AI coding agent. Built for payments, lending, banking, and expense teams.

Why Helix

Your tools check the code. Helix checks the money.

Keep the linters, scanners, and review bots already in the pipeline. Helix adds the check they leave open: did this diff keep the money intact?

Review can’t keep up

Agents open pull requests around the clock. Every merge of money-movement code is a release decision, and the thread is the only signature.

Money breaks where nobody looked

The second click, the retry, the bank reply that arrives late. Tests cover what their author thought of.

The decision leaves with the pull request

A quarter later, the reason a change merged is a comment. The commit itself has no record of the verdict.

  1. Style Prettier, ESLint. A balanced-looking function can still send the wire twice.
  2. Scanners SonarQube, Snyk. A payout with no ledger entry still scans clean.
  3. Review bots CodeRabbit, Qodo. The comment stays a comment.
  4. Helix The release gate. Go, No-go, or Not proven, bound to the commit. Helix is the check that fails the build.

The product

The check, up close.

The live check stays in the hero. These four open the risks, the gate, and the workflow around it.

Every pull request and push to main.

Same change, same answer. A record of every decision. The console shows Go, No-go, or Not proven, with the finding and the fix on the pull request.

See it on a pull request
  1. No-goIdempotencyA retried payout can send the money twice.
  2. No-goLedgerThe payout is sent before the ledger entry is written.
  3. Not provenLate replyNo test covers a bank reply that arrives late.
  4. No-goSettled stateA settled payout is updated in place.

Money breaks where nobody looked.

The second click, the retry, the bank reply that arrives late. Tests cover what their author thought of. These are the breaks the rules are written for.

  1. No-goMoney moves onceA retry after a timeout starts a new transfer. Pass a key tied to the payout so the bank sends it once.
  2. No-goThe books tie to the ledgerThe payout is sent before the ledger entry is written. Write the entry first. If the transfer fails, reverse it.
  3. Not provenA missing test is not a passNo test covers a bank reply that arrives late. Missing evidence is never a pass.
  4. No-goSettled rows stay as postedA settled payout is updated in place. Leave the settled row. Write a reversing entry for the correction.

One decision per change, and the fix behind it.

Go, No-go, or Not proven. Missing evidence is never read as a pass. The fix names the file, the line, the rule, and the edit.

  1. A verdict on every changeGo, No-go, or Not proven. Missing evidence is never read as a pass.
  2. The fix, on the lineFile, line, the rule, and the edit that turns the check green, on the pull request.
  3. Waivers that expireAccepting a finding needs an approver, a reason, and an end date. An exception does not become the default.
  4. The same rules for agentsCode from a person and code from an agent get the same verdict. Agents can read it through a read-only interface.
  5. One record per commitRule, verdict, and any waiver stay with the SHA. The next commit is a new decision.

Connect a repository. Helix checks every change.

  1. 01

    Add the check to the workflow you already run.

    Point Helix at the repositories that move money. It runs on each pull request and each push to main.

  2. 02

    Fixed rules run on the diff.

    The same change returns the same Go, No-go, or Not proven. The verdict is rules, computed on your runner.

  3. 03

    Hold the merge on No-go.

    Make the Helix check required in GitHub. A No-go or Not proven holds the merge. Every decision is stored on the commit.

The platform

Rules, decisions, and the record.

Three parts of the gate. Each one is already in the check, the fix, or the commit.

01

Money-specific rules

  • Money moves once.
  • The books tie to the ledger.
  • Settled rows stay as posted.
  • A missing test for a retry is Not proven.
  • The author of the change is not the only approver.

02

Review decisions

Go, No-go, or Not proven. The same change returns the same answer. Make the Helix check required in GitHub and a No-go or Not proven holds the merge. A waiver needs an approver, a reason, and an end date.

03

Decision evidence

File, line, the rule, and the edit sit on the pull request. Rule, verdict, and any waiver stay with the SHA. The next commit is a new decision.

The verdict

How Helix reaches Go, No-go, or Not proven.

Fixed rules run on the diff. The verdict is rules, computed on your runner. The same change returns the same answer.

Illustrative path, using the payout example from the console. Not a live trace and not a connected repository.
  1. 1 · Proposed change

    src/payouts/send.ts
    export async function sendPayout(payout) {
      await bank.transfer(payout.amount, payout.account);
      await ledger.record(payout);
    }
  2. 2 · Rules

    • Money moves once.
    • The books tie to the ledger.
    • Settled rows stay as posted.
    • A missing test for a retry is Not proven.
  3. 3 · Review

    No-go

    Held before merge. The same change returns the same answer.

  4. 4 · Record

    Rule, verdict, and any waiver stay with the SHA. The next commit is a new decision.

Go

The rules that ran are satisfied. Missing evidence is never read as a pass, so a gap cannot arrive here as Go.

No-go

The rule is broken. A retried payout can send the money twice. The payout is sent before the ledger entry is written. A settled payout is updated in place. Make the Helix check required in GitHub and a No-go holds the merge.

Not proven

Helix could not find the evidence the rule needs, such as a test for a late bank reply. That result is never a pass, so the gap stays visible and the merge stays held.

Questions

What a chief technology officer asks first.

Does Helix replace review or the scanners we already run?

Keep them. They check style and known vulnerabilities. Helix checks whether the money still moves once, and whether the ledger still ties, on this diff.

Is the decision made by AI?

Fixed rules produce the verdict, so the same change gets the same answer. Review bots can still comment. Helix is the check that can fail the build.

What does Not proven mean?

Helix could not find the evidence the rule needs, such as a test for a late bank reply. That result is never a pass, so the gap stays visible and the merge stays held.

Can it stop a merge?

Yes. Make the Helix check required in GitHub. A No-go or Not proven then holds the merge. A waiver needs an approver, a reason, and an end date.

Does it work with code written by agents?

Every change gets the same rules, whoever wrote it. Agents can read the verdict and the finding through a read-only interface.

Where does it run, and how long does it take?

On your GitHub Actions runner, against the checkout that runner already has. A typical evaluation finishes in about 240 milliseconds.

Put the gate on one repository.

We’ll set up a trial on a change you choose.