Four checks are free. The fifth runs your suite, so it costs money.
Watch is $8.99 a month for one owner's repositories. Team is $29 a month for an organisation. Fix flow is $79 a month if you would rather the findings arrived already fixed. The four static checks stay free with no account, no licence and no network.
Free scan
$0 forever
- Four static checks: ignored-source, no-assertion, unrun-check, lint-blindspot
- No account, no licence, no network call at any point
- Every finding carries a command that reproduces it
- Exit code 1 on findings, so it gates CI today
npx margyn-scan /path/to/repo
Watch most start here
$8.99 a month, 3 days free
- Everything in the free scan
- The mutation proof: it inverts a line, runs your suite, then reports the suite that stayed green anyway
- A licence your CI verifies offline, so a paid check runs on a runner with no network
- One repository owner. Cancel whenever you like
3 days free, then $8.99 a month. Checkout runs on Tiun.
Team
$29 a month, 3 days free
- Everything in Watch, for every repository the organisation owns
- One licence covers every CI runner, with no seat count and no phone home
- Your issues are triaged first
- Invoices on request rather than a card
Still no per seat billing. A CI gate has no seats.
The service line
Or have the findings arrive already fixed
Fix flow
$79 a month
- Up to three findings a month fixed for you
- Each one arrives as a patch carrying a test that fails before it and passes after
- Back within five working days. Otherwise that month is refunded
- Cancel whenever you like
No trial on this one, because a trial on a service is unpaid work.
It works from the finding, not from your repository
You send the finding, which already carries the file, the line, the rule that caused it and the reproduction. We send back a patch. Nobody needs a token that can read your source, so the promise on the security page holds exactly as it does for the free scan: your code stays where it is.
If a fix genuinely cannot be written from the finding alone, we say so and it does not count against your three. A patch that does not apply is our defect rather than your problem.
This is the honest shape of it: the scan is a tool, the fix is a person writing a patch. Three a month is what one person can do properly, so that is the number on the page rather than the word unlimited.
Why this is the one you pay for
The static checks read your tree once and finish in under a second. The mutation proof inverts a line, runs your entire test suite, restores the file, then does it again. That is real machine time and it is the honest line between the two. The free four are not crippled versions of anything.
It is also the check with the most to go wrong, so it is bounded. A red baseline
aborts the run instead of producing results that would mean nothing. Each run is timed out. The
file is restored in a finally block and on SIGINT, so an interrupted
scan cannot leave a mutated tree behind. It is capped at four mutations by default, which means
it under-reports on purpose. Raise the cap to find more.
We never print a mutation score. If you want a score across a whole codebase that is Stryker, free and better at it than we are. Margyn sells the sentence instead: we inverted this line, ran your suite and it passed.
What you get is a licence, not a login
After checkout, the button in the top bar hands you a signed licence. Put it anywhere the CLI can read it:
$ npx margyn-scan /path/to/repo --mutate
The mutation proof is part of Watch and it is locked: no licence found.
Everything below is the free scan, which ran in full.
$ mkdir -p ~/.margyn && pbpaste > ~/.margyn/licence # or export MARGYN_LICENCE=...
$ npx margyn-scan /path/to/repo --mutate
4 findings, each with a reproduction you can run.
The licence is signed with Ed25519 and checked against a public key compiled into the CLI, so verifying it needs no network. That is the whole reason this works on a locked-down runner. A licence check that phones home is a new way for a build to go red for a reason that has nothing to do with the code.
A refusal never fails your run. Ask for a paid check without a licence and Margyn prints why, runs the free scan in full, then exits on its own findings. Billing is not a reason to break someone's build.
How the licence is installed and verified · The security model
Billing, stated plainly
| Price | Watch 8.99 USD a month for one repository owner. Team 29 USD a month for an organisation. Fix flow 79 USD a month for up to three fixed findings. No per seat and no per committer billing anywhere: a CI gate has no seats, so charging for engineers who never open the tool would be charging for nothing. |
|---|---|
| Trial | Three days at no charge on Watch and Team. Fix flow has none, because a trial on a service is unpaid work. |
| Renewal | Monthly, until you cancel. |
| Cancelling | Any time. The licence on your disk keeps working until it expires and the four free checks are unaffected. |
| Refunds | Ask within 14 days of a charge and it is refunded. See the terms. |
| Cards | Handled by Tiun, which runs sign in and checkout. We never see a card number. |
| Licence validity | 31 days from the moment it is issued. Take a new one whenever you like while the subscription is active, which is also how it stops working on its own if the subscription lapses. |
For a team, plus whoever signs off on it
The price is per repository owner rather than per seat, so adding engineers who never open the tool costs nothing. One licence covers your CI runners: it is verified offline against a key compiled into the binary, so it works on every runner at once without a seat count or a phone home.
| More than one repository | That is what Team is: one subscription across every repository the organisation owns, at 29 a month. If you need separate billing per team or a single invoice across several organisations, ask and it is set up by hand today rather than by a form. |
|---|---|
| Invoices, annual terms, purchase orders | Card checkout is what is automated. An annual arrangement or an invoice is a conversation, so ask before you subscribe rather than after. |
| Procurement review | Everything a reviewer normally asks for is already written down: every process the scanner starts, the absence of a hosted scan endpoint, what the licence carries, plus the source under MIT so it can be read before it runs. |
| Support | Repository issues, in public, which is a channel you can check is answered before you pay. A finding you cannot reproduce is treated as a defect in the tool rather than a question about your repository. |
Questions people actually ask
Do I need an account to try it?
No. npx margyn-scan /path/to/repo needs no sign in, no key and no network. An
account exists to buy the mutation proof and collect a licence, nothing else.
What happens if my licence expires during a build?
The mutation proof is skipped and the reason is printed. The free scan still runs in full and the exit code still reflects your findings rather than your billing.
Is my code uploaded anywhere?
No. There is nowhere for it to go. Margyn is a local CLI. The deployed site has no
scan endpoint on purpose, which you can check: POST /api/scan answers 404.
Mutation testing already exists. Why would I pay you for it?
You would not, if a mutation score is what you want. Stryker gives that away and does it better. Margyn runs a capped mutation proof as one check inside a five check audit. The other four catch things a mutation framework structurally cannot: a file that is not in the commit, a gate nobody invokes, a linter whose scope comes from the ignore file.
It edits my files?
Only under --mutate, only one file at a time, only after your suite has
passed unmutated. Each file is restored in a finally block and on
SIGINT. Leave the flag off and nothing is ever written.
What if you disappear?
The CLI is MIT licensed with no runtime dependencies, so it is readable and forkable. It is a CLI rather than a service, so there is nothing to go dark and nothing to migrate off. The licence is verified offline, so a scan never needs us to be reachable.
Run it before you decide
npx margyn-scan /path/to/repo
If it finds nothing, you learned that for free. If it finds something, every line comes with a command that proves it.