Product

Nobody on your team is reading all of it.

TrueMend reads the repository for you, on your own machines. It scores every function, names the lines that are not ready to ship, corrects the ones it can prove safe, and prices what is left. Below: what lands on the first pass, how much of it stays yours to decide, and where it sits in the week you already have.

First pass

What you have by the end of the first afternoon.

One command, no account, no service to stand up. Three things come back, in this order.

01 · Whole repository, locally

It reads everything, not a sample.

You point it at a directory. Every file becomes a syntax tree and every function gets its own score, so a two thousand line file comes back as forty verdicts instead of one.

A full source tree finishes in 13.8 s, and 0.26 s against a warm cache, which is short enough to sit in a pre-commit hook. Parsing and scoring happen on your machines: no account, no API key, and nothing is uploaded to be analysed.

Library4,808 patterns · 146 spec files · 26 languages. Your stack
DetectionSyntax trees and pattern matching. No model decides what is wrong.
TERMINAL
$ truemend .
parsing 47 files
scored 512 functions
Health 6.6 · 47 files · 214 issues
done in 13.8 s
FINDINGS214 TOTAL
HIGHguardrails_pii_no_filter
src/api/handler.py:142
HIGHai_unchecked_tool_output
src/agents/tools.py:88
MEDunnecessary_try_catch
src/orders/charge.ts:64
MEDslop_redundant_comment
src/index.ts:12
02 · Named at the line

A line number, not a heat map.

Each finding arrives with the pattern that caught it, the file and line it sits on, the severity, and which tier of remediation it belongs to. Your developers can argue with a named pattern. They can do nothing with a dashboard that says quality is down four percent.

Findings you disagree with can be switched off by pattern, per repository, and the false-positive rate we measure on our own source is published rather than kept quiet.

Precision3,902 of 3,902 on the gate, as of 2026-09-04. How it is measured
OutputTerminal, JSON, SARIF for code scanning, line comments on the pull request.
03 · Corrected, or priced

Some of it is already repaired when you open the diff.

37.9% of the library rewrites safely as a syntax-tree transform. Those land as an ordinary diff you can read, verified by re-parse and reverted automatically if the file stops compiling.

Everything else comes back priced instead of quietly changed, so the cleanup you approve is a bounded piece of work with a number next to it rather than an open-ended refactor.

Commandtruemend fix src/ --apply. Every rewrite is a diff in your working tree, nothing is committed for you.
PricedHours and cost per item, in the report. The backlog page
DIFF · unnecessary_try_catchVERIFIED
- try {
return charge(total);
- } catch (e) { throw e; }
+ return charge(total);
re-parsed · behaviour unchangedreverts on failure
Three tiers

The question is how much judgment the repair needs.

Every pattern is filed into one of three tiers before you ever see a finding, so you know in advance what will be done for you and what will be handed back. This is the part to take into a budget conversation: the first tier is free and needs no review process, the second is bounded work you can schedule, the third is architecture and stays yours.

TIER ONE
Applied for you
37.9% · 1,822 patterns

Mechanical rewrites with one correct answer: a rethrow-only catch removed, an unused import dropped, a mutable binding that was never reassigned. The transform happens on the syntax tree, so it cannot depend on a model having read the code correctly. Free, in every tier of the product.

verified by re-parse
reverted on failure
lands as a readable diff
TIER TWO
Bounded refactor
56.7% · 2,726 patterns

Known moves from a curated catalogue: extract a function, unpick nested callbacks, split a handler that grew three responsibilities. Scope is one function at a time, the output is reviewed before it lands, and an estimate travels with it so the work can be scheduled like any other ticket.

one function at a time
reviewed before landing
priced in the report
TIER THREE
Your call
5.2% · 250 patterns

A class doing nine jobs and a dependency graph with cycles are architecture, not defects with a known correction. You get the evidence, the options, and a recommendation. Nothing is touched. If you want a person in the room for these, that is what the consulting engagements are for.

never applied automatically
evidence and options
decision stays with you

tier shares are shares of the pattern library, not of your findings · what each tier costs

Evidence

When someone asks you to show the control, you have a line of code.

Findings carry the control IDs your auditors already work from, across nine frameworks. A missing moderation check on a model response is not a style note, it is cited evidence against EU AI Act Art. 15 with the file and line attached. Frameworks that come back clean say so, checked and passed, rather than being left off the page.

SOC 2ISO 27001OWASPHIPAAPCI-DSSGDPREU AI ActNIST AI RMFISO/IEC 42001
Art. 15Accuracy, robustness and cybersecurity, cited by model output returned with no PII filter src/api/handler.py:1421 OF 9 · EVERY REPORT

clean frameworks read as ✓ verified clean · full pages in the report

Where it sits

Nothing to stand up, nothing to migrate onto.

One binary, no runtime and no package manager. It is a command in the terminal, a tool your coding assistant calls over MCP while it writes, a check on the pull request, and a skill an agent drives on its own. Same library, same pattern names, same tier in all four, so a finding does not change identity when it moves from a laptop into CI.

There is no dashboard to stand up and no code to send anywhere for analysis. Adoption is a hook and a workflow file, which is the whole reason it survives contact with a busy team.

Claude CodeCursorCopilotCodexWindsurfGeminiAiderRooAmazon QZed
CLAUDE-CODE-MCP.JSONconnected
{
"mcpServers": {
"truemend": {
"command": "npx",
"args": ["-y", "truemend-mcp"]
}
}
}
terminaltruemend . · truemend fix src/ --apply
agentclaude mcp add truemend -- npx -y truemend-mcp
ciuses: alsajoo/truemend@v1

one model in the product, and it sits last: local, off by default, and it may not change what a sentence says · readable history · setup and licences