Skip to content

Back to the catalog

Argo
github.comrepo

Argo

Argo is an LLM-native static application security testing tool that drives Claude Code, Codex, Gemini, or local models (via Ollama/LM Studio) as an AI analyst to audit source code, extract security invariants, and produce reviewable vulnerability reports with optional patch generation and ASan-verified proof-of-concept crashes. It positions itself as a complement to rule-based SAST tools like CodeQL and Semgrep, targeting logic/authorization bugs that fixed patterns miss, and has been used to find real, disclosed vulnerabilities across 15 audited open-source projects (53 PRs, 2 CVEs). It supports two modes — general code audit and bug-bounty triage with scope-enforced, read-only, opt-in live verification guardrails.

TL;DR LLM-driven SAST tool that audits code like a human researcher, with multi-model support and a real track record of disclosed CVEs.
Document

What the numbers actually mean

The summary's headline is "42 PRs, 38 fixes, a CVE, 11 projects." The page adds the accuracy claim and — more usefully — its denominator. Argo reports 93% real-world accuracy, but only across the 134 findings that reached an independent maintainer verdict: 124 confirmed genuine, 10 rejected as false positives. That figure deliberately excludes findings still in triage, duplicates of known issues, and out-of-scope rejections. So the "93%" is precision on maintainer-adjudicated findings, not a recall or benchmark score — recall is explicitly unbounded ("probabilistic rather than exhaustive"). If you are evaluating this against CodeQL/Semgrep, that is the number to weigh, and it is narrower than "93% accurate" sounds.

Data flow — the operational detail to check first

The choice of backend is a data-exfiltration decision, stated plainly: a local / OSS model (Ollama, LM Studio — Qwen, DeepSeek) keeps source fully on-device; a cloud backend (Claude Code, Codex, Gemini) sends your source to that vendor's API to analyze. Same pipeline either way. For proprietary code this is the gating consideration, and running locally is also the "free" path.

The two modes and their flags

# audit your own code (default): read-only mount, never pushed
argo --repo <local-folder>

# bug-bounty mode: adds program-specific scaffolding
argo --brief ... --repo ...

# live verification (default OFF, gated):
argo live --i-have-authorization

Default auditing omits --brief. The argo live stage is the only path that ever contacts a live host, is off by default, and demands --i-have-authorization; when enabled it makes bounded, in-scope-only, read-only, capped, audit-logged requests, and hard-blocks any out-of-scope/unknown host.

Enforcement worth noting

Three constraints live in the orchestrator, not the prompts: never auto-submit (pipeline stops at drafts), never contact live hosts by default, read-only repo every session. Additionally, prohibited techniques declared in scope (e.g. "no DoS") are injected into every generated prompt, and prompt rendering fails if they're missing — re-inserted verbatim if a model paraphrases them.

Caveats

The page is emphatic that Argo is not infallible, is probabilistic by design, and does not remove human judgment — a human still decides what gets reported, and the "93%" excludes anything a maintainer never ruled on. Remediation (patch proposal, compile-check) and runtime/ASan PoC verification are opt-in, not default behavior.

Techniques named here