Runs on your machine · we never receive your code
We never receive your code. RedMirror is one binary that runs on your machine and calls whatever model you choose. Pair it with a local model and nothing ever goes on the wire; point it at a cloud model and the only thing sent is what that model reads, to the provider you already trust.
A command-line binary that runs as an MCP server for your coding agent, right on your machine. Point it at your code and your own model (local or cloud), and it finds real security bugs and proves each one.
Fixes RedMirror shipped in open source
See it, don't take our word
Pick a real bug from a real scan, hit verify, and watch the kernel return the exact reachable path that breaks it. Nothing to install, it runs right here.
Real findings, replayed: RedMirror scans of OWASP Juice Shop and Microsoft Contoso University. The code shown is the actual vulnerable code; the path is the counterexample the kernel returns.
No card, no account. We email your 7-day activation licence.
Check your email. We just sent your 7-day activation licence to . Open it for the three setup commands. The first one installs it:
$ curl -fsSL https://dist.redmirror.io/install.sh | shThe email has your license activate key and the init command. Not there? Check spam. Ready to keep it? Subscribe →
Rather subscribe now? Get a licence →
Real bugs RedMirror surfaced and we reported in open-source projects. The public ones link to the fix and a walkthrough.
Beyond the public fixes above, many findings have been disclosed privately and will be public once fixed.
Most tools that read your code do one of two things. A scanner matches patterns it has seen before, so it misses anything shaped a little differently and raises false alarms on the rest. A model reading the code on its own just gives an opinion: fluent and sure of itself, whether or not it’s right. Either way, you’re the one left deciding which warnings are real.
RedMirror is built the other way around. It brings the tactics of formal verification, the methods used to validate safety-critical systems, to everyday code. Rather than a verdict you take on trust, it gives you something you can check: the concrete steps that should trigger the bug, so you can run them against your own code and confirm it for yourself. If it can’t back a finding with those steps, it doesn’t raise it. The goal is a short, checkable list you can act on, not a pile of maybes to triage.
Reflection is a single binary that is an MCP server, redmirror-reflect mcp, which your coding agent connects to and drives. No runtime, no dependencies, no scan command, and no model to configure: guided by RedMirror, your agent finds real bugs and the kernel proves them.
1 · Install puts redmirror-reflect on your PATH
$ curl -fsSL https://dist.redmirror.io/install.sh | sh$ irm https://dist.redmirror.io/install.ps1 | iex2 · Activate your licence
$ redmirror-reflect license activate <your key>Your key and this exact command are on your account page.
3 · Add it to your coding agent installs the tools, skill & gate
$ redmirror-reflect init <agent><agent> is one of claude · cursor · jcode · windsurf · codex · gemini · pi · dsh (or ci for a pipeline gate). Using something else? init with its name still works, it prints the manual MCP wiring for any agent.
4 · Use it
Just ask your agent to scan a file, a change, or the whole repo for real bugs. Guided by RedMirror it finds the risky relations, then the kernel proves each one with a replayable attack path (or a bounded proof there's none), and your agent reports only what's grounded.
Setting this up with a coding agent? Tell it “install RedMirror” and have it run the steps above for you, the prescriptive, machine-readable version is at /llms.txt.
No. RedMirror is one offline binary that reads your source locally and calls whatever model you point it at. Point it at a local model and nothing ever leaves your machine. Point it at a cloud model and the only thing sent is what that model reads, to the provider you already trust. We never receive your code; we store only your account email, a weekly licence check, and (if you accept cookies) basic site analytics.
Those guess. An LLM pattern-matches and hallucinates, so it misses real bugs and invents fake ones. RedMirror pairs your model with a compiled kernel that exhaustively searches every reachable state of the code, so a finding is verified, not an opinion: you get the exact steps that reach the bug, or a proof none exists. On the 440-case OpenSSF benchmark it takes a model from 54% to 96% real-bug recall, and it catches bugs the benchmark itself labelled safe.
No. Linters and SAST tools match patterns and bury you in maybes. RedMirror searches every reachable state of the code and returns a concrete counterexample, the exact sequence of steps that drives it into the bad state, or a bounded proof that no such path exists. Every result is reproducible.
Real, reachable security bugs: auth bypasses, path traversal, injection, and logic and state flaws, each proven with a replayable attack path rather than a style nit. The fixes it has already shipped to open source say it best, including google/osv-scanner, apache/airflow, PrefectHQ/prefect, and sipsorcery.
Any tool-calling model. The flow drives it through function calls (read, run, submit). You do not need a frontier model: on the 440-case benchmark the same 96% real-bug recall holds on gpt-oss-20b as on the 120b, and small open models like qwen3-coder run the whole loop. A local model is fine. The kernel does the exhaustive checking with zero tokens, so you only pay for the model’s reading.
Any language your model can read. RedMirror doesn’t depend on a fixed parser per language: your model reads the source, RedMirror models it as a state machine, and the kernel reasons about that the same way no matter the language. Go, Python, TypeScript, Rust, Java, C#, Ruby, PHP, C++, Solidity, or something far more niche, if your model understands the code, RedMirror can verify it.
One line installs the binary (curl -fsSL https://dist.redmirror.io/install.sh | sh, or the PowerShell one-liner on Windows). Activate your licence, then point your editor at it. It is an MCP server, so it drops straight into Claude Code, Cursor, VS Code (Copilot), or Windsurf, with no runtime, no dependencies, and no scan command to learn. It takes minutes.
Yes. With a local model the whole loop (reading, searching, and proving) runs on your machine with nothing on the wire. The licence checks in about once a week and works offline in between, so it is happy behind a firewall or on an air-gapped box.
$4.99 a month, cancel any time, by card or PayPal with no account needed, with a free 7-day trial (no card) to start. The kernel’s exhaustive search costs zero tokens, so your only usage cost is the model doing the reading: a local model’s electricity, or your existing provider’s rate. One seat is one developer.
Start with the free 7-day trial, no card. Try it on your real code, and if it’s not for you, walk away and pay nothing. If you keep it, it’s $4.99/mo, cancel whenever from your account.
$4.99/mo, cancel any time. Try it free for 7 days first, no card →
Unlimited local scans · any language your model reads · your model, your machine.
In RedMirror Reflection. Update any time with redmirror-reflect update.
audit --sarif report.sarif writes a standard SARIF 2.1 file for GitHub code scanning, Defender, or Azure DevOps, and every finding carries the whole path an attacker takes to reach it, not just a line number.redmirror-reflect init pi no longer pauses while it registers the tools.init now installs the tools, not just the guide.redmirror-reflect init dsh, then ask it to find and prove a bug.redmirror-reflect init <agent> connects RedMirror to your coding agent.redmirror-reflect update.