Authorized application security testing

Myrqen found the bug.Then it proved it.

Local application security testing for JavaScript, TypeScript and Python, run by the coding agent you already use. No separate model key, and nothing uploaded unless you say so.

npx myrqen@latest
See every number

Then myrqen auto, or /myrqen auto inside Claude Code.

Runs
local
Recall, held out
0.250
Recall, burned corpus
0.500
Precision, burned corpus
1.000
Gate
0.90

Recall is 0.250 on holdout-7, which nobody had tuned against; our own gate is 0.90. Burned-corpus figures are holdout-3, after the fixes it prompted. All are the static pass alone, scored one file at a time with no agent involved, so a clean report is not evidence that an application is secure.

Found. Proved. Fixed.

One command, and the agent already in your terminal drives the assessment. It reads your project instead of guessing at it, and every step leaves a record you can check.

Every phase, in view

Your agent maps the project, starts it, and walks every route it can reach. The CLI owns the record of what happened, so the agent cannot promote its own guess.

Proved, not described

A finding is settled against your running app: signed in as one user, it asks for another user's record and keeps the response as evidence.

src/server.js:94

- const order = orders.find((candidate) => candidate.id === id);
+ const order = orders.find((candidate) => candidate.id === id && candidate.userId === user.id);

Retest replays the same two identities

Fixed, then retested

Each finding carries the change your agent should make and the check that shows it worked. The same probe runs again before anything is marked fixed.

  • No model keyThe reasoning comes from the agent you already pay for.
  • Nothing uploadedYour source never leaves the machine. Syncing a report is a per-scan yes.
  • Destructive actions refusedAt every effort level, with no flag to turn that off.

Three of these four are failures.

Scored against corpora committed to the repository, including one nobody had tuned the rules against. The method and the raw output are published.

recall on holdout-7, a corpus nobody had tuned against, against our own 0.90 gate
0.250
Gate missed
recall on holdout-3, an earlier blind corpus, after the fixes it prompted, which burned it
0.500
Gate missed
of the deliberately-correct files in holdout-7, scored blind, drew a finding
0.125
Gate missed
precision on holdout-3 after its fixes, with no finding on any of its correct near-misses
1.000
Gate met

Precision that high means what it reports is worth acting on. Recall that low means it misses more than half of what a thorough human would find, so it belongs next to a review rather than instead of one. Every corpus, the method, and the raw output.

A real run, not a mockup.

The recorded assessment of vuln-shop, the deliberately vulnerable app committed beside the scanner, including the findings it could not settle.

assessmentvuln-shoplocal16.0s
  1. Discover
  2. Probe
  3. Settle
  4. Fix
  5. Retest
MYR-004verified

broken object level authorization

src/server.js:95GET /api/orders/102

settled by identity differential

Signed in as user_a and requested /api/orders/102, a record listed for user_b. The response was HTTP 200 with a body of 93 bytes.

src/server.js
  1. if (!user) return json(response, 401, { error: "sign in first" });
  2. const id = Number(url.pathname.split("/").pop());
  3. const order = orders.find((candidate) => candidate.id === id);
  4. if (!order) return json(response, 404, { error: "not found" });
  5. return json(response, 200, order);

4 destructive actions refused. 0 secrets in output.

17 findings9 verified, 5 unsettled6 shown

Run the free one first.

Claude Code ships /security-review and Codex ships Codex Security. Both read your code well, and if reading it is enough, use them. This is for when you want the finding demonstrated, and a boundary on what the agent may touch while it does.

How a finding is settled

Reading the code

Reasoned about from the source. Useful, and not the same as proven.

Myrqen

Exercised against your running application under two identities and an admin.

How certainty is recorded

Reading the code

Confidence expressed in prose.

Myrqen

A verification state the CLI owns, so an agent cannot promote its own finding.

Boundary on what it may touch

Reading the code

Not needed. It touches nothing.

Myrqen

Exact-origin grants, a refusal list higher effort cannot relax, and quarantine for origins your project text proposed.

Published accuracy

Reading the code

None published.

Myrqen

Recall 0.250 on a held-out corpus, and 0.500 on an earlier one after the fixes it prompted, against a 0.90 gate. Precision 1.000 on that earlier corpus. The static pass alone, scored one file at a time with no agent involved.

Portability

Reading the code

Tied to the agent that ships it.

Myrqen

One skill bundle, thirteen agents, identical behaviour where slash commands do not exist.

Where it loses, and should: language breadth, dependency analysis, compliance reporting, CI gating, and price against a free feature built into the agent. The comparison in full.

Your repository is not the payload.

Scanning runs on your machine against your own project. Secrets, .env values and raw traffic stay local; what can sync is the report you generated, never your source tree.

  1. Your agent

    There is no Myrqen model key, and no prompt of yours reaches a model we operate.

  2. A report, if you say so

    Per scan, never by default, and never the source tree.

  3. Encrypted at rest

    Support cannot read a synced report without a time-boxed grant written to an audit trail.

  4. Refused

    Destructive actions are refused at every effort level. The recorded run refused 4 and allowed none.

  5. Exact origins only

    Authorizing api.example.com never authorizes example.com or any sibling host.

  6. EU

    The application and the retention worker run in europe-west4.

What is not independently verified about any of this is named on the security page.

It goes where your agent already is.

One bundle, written in each vendor's own documented format. The invocation does not change: /myrqen auto where slash commands exist, myrqen auto everywhere else.

  • Claude Codeskill
  • Codex CLIskill
  • OpenCodeskill
  • Kiroskill
  • Cursorrules file
  • Windsurfrules file
  • Clinerules file
  • Roo Coderules file
  • Continuerules file
  • Aiderconventions
  • GitHub Copilotinstructions
  • Gemini CLIGEMINI.md
  • AGENTS.mdshared file

The Claude Code workflow · Codex and OpenCode · the exact file written for each

Free to find. Paid to keep and share.

Every finding at every severity is free, local and unlimited. Plans add synced history, sharing and team workspaces.

Free

One person, one machine

Free

  • 5 synced reports a day, 15 a week
  • 21 days of report retention
  • 5 share links per report
Start free

Recommended

Pro

One engineer who ships often

€19/ month

  • 180 days of report retention
  • 25 share links per report
  • Retention you set, not one we chose
Get Pro

Team

A team sharing one security picture

€49/ month

  • Team workspaces with per-member access
  • Workspace audit trail
  • Assign findings, discuss them, and see who triaged what
Get Team

Every limit, every plan, and Enterprise.

Before you install anything.

Including the two answers that say this is the wrong tool.

What is Myrqen?
Myrqen is a local-first application security assessment tool for JavaScript, TypeScript and Python (FastAPI and Flask). It runs on your own machine, driven by the coding agent you already use, maps your project, exercises candidate vulnerabilities against your running application, and writes HTML, JSON, Markdown and SARIF reports you keep. There is no separate model API key and your repository is not uploaded.
Does Myrqen upload my source code?
No. There is no code path that uploads your source tree. The only thing that can leave your machine is the finished report, and only if you answer yes to a question asked once per scan. Secret values never appear in a finding, a report, or a progress event at all.
Do I need an OpenAI or Anthropic API key?
No. Myrqen has no model of its own and never asks for a model provider credential. The reasoning comes from the coding agent you already pay for. Claude Code, Codex, OpenCode, or one of ten others.
Which languages does Myrqen support?
JavaScript and TypeScript across Node, Bun, Deno and edge runtimes, and Python for FastAPI and Flask applications. Django and other Python frameworks are parsed, but their routes are not modelled, so data-flow checks do not start from them. Java, Ruby, Go, template languages and infrastructure definitions are not parsed at all. A codebase written mostly in anything else is the wrong fit.
How accurate is Myrqen?
Precision is 1.000 and the false-positive rate on deliberately correct code is 0.000 on holdout-3 — but only after the fixes its blind run prompted, which burned it as a measurement. On holdout-7, a later corpus scored blind, the false-positive rate on deliberately correct code was 0.125 and 3 of four gates failed. Precision itself is not computable on it: precision is derived from exact class-name matches, and thirty independent authors named the defects in their own vocabulary. The safe-case false-positive rate is the precision signal that survives. Recall is 0.250 on a corpus nobody had tuned against, and the same whether or not a finding is allowed anywhere in the range the case's author marked rather than within eight lines of the line they named. It is the static pass alone, scored one file at a time with no agent involved, against our own gate of 0.90. A report with no findings is not evidence that an application is secure.
Is Myrqen safe to run? Does it scan production?
Destructive actions are refused at every effort level and there is no opt-in flag: no mass deletion, no request flooding, no credential spraying, no persistence. Myrqen never tests production: it exercises the application running on your machine. Anything outside that machine needs a grant naming the exact origin, and there is no wildcard form.
How much does Myrqen cost?
Local scanning, local reports in all four formats, and every finding at every severity are free and unlimited, with no account and no card. Paid plans add synced history, longer retention, sharing and team workspaces, from €19 a month.
Is Myrqen open source?
No. The source is published so the engine can be read and audited, under a source-available licence that grants reading and running it for your own work but not redistribution, forks, or running it as a service for other people. Please do not describe it as open source.

Find it before someone else does.

One command in the agent you already have open. Free and unlimited to scan, with no account and no card.

npx myrqen@latest
Create an account
  • No separate model key
  • Nothing uploaded unless you say so
  • Source-available. Read it