Point Vaultline at a repo and get a triaged finding list, a score and a draft audit report. Detection is deterministic. AI only labels and explains.
No LLM in the detection path. Every finding traces back to an engine, a rule and a file:line. The model can only label an existing finding or write report text.
Suppresses what constraints already enforce, and keeps the reason.
Not flagged on a known-bad program means failed, never clean.
One engine crashing never fails the scan. Detector changes are measured for precision and recall. --private never sends code to an LLM unless you allow it.
Clone a git URL, local path or zip. Detect the framework and program crates.
1Extract instructions, accounts, constraints and CPI sites, then run the engines.
2Map rules to bug classes, dedupe by stable fingerprint, suppress mitigated findings.
3Label each finding, score it, and export JSON, SARIF, Markdown and HTML.
4$ scanner scan https://github.com/you/my-program ingest anchor · 2 program crates engines fender ok · canary flagged filter 9 findings → 4 kept, 5 suppressed (with reasons) [high] SOL-SIGNER programs/vault/src/lib.rs:42 [medium] SOL-ARITH programs/vault/src/math.rs:17 report → report.md · report.html · findings.sarif
No. Detection is plain, deterministic code. The LLM can only label an existing finding real, false alarm or needs human, and write report text.
Never. They are kept with a reason and shown in a collapsed section of the report.
Only to the configured LLM for verification. With --private nothing is sent unless you explicitly enable it.
Anchor, native solana-program and pinocchio program crates.
Findings are leads for a human auditor, not a guarantee. Engines that fail their canary check are reported as failed, never clean.
Get a triaged list and a draft report before your next review.