Skip to content

Back to the catalog

Sandyaa — open-source autonomous code auditor that proves bugs with working exploit PoCs
github.comrepo

Sandyaa — open-source autonomous code auditor that proves bugs with working exploit PoCs

Sandyaa is an open-source autonomous code-audit tool that points at a local directory or git URL and runs end-to-end, driven by the Claude Code CLI (optionally Gemini) with no separate API key required. It uses a Recursive Language Model approach — the model drives a Python REPL to chunk code, spawn sub-LLM queries, and aggregate results — running eight recursive passes (call-chain tracing, data-flow expansion, vulnerability chaining, exploitability proof, etc.) and an attacker-control-reachability analyzer to filter unreachable findings, then writes each finding with a working exploit PoC and an evidence.json linking claims to file/line. Maintained by SecureLayer7, who report using it to surface zero-days; it's alpha-stage, macOS-tested, Linux/WSL2-expected-to-work, and unsupported on native Windows.

TL;DR Open-source Claude-Code-driven autonomous code auditor that uses a recursive-LLM pipeline to find bugs and generate working exploit PoCs.
Document

What to do

The summary tells you what Sandyaa is but not how to run it. Install and invoke:

git clone https://github.com/securelayer7/sandyaa.git
cd sandyaa
npm install
npm run build
npm link      # installs the `sandyaa` command globally
# Local directory
sandyaa /path/to/project
# Remote git URL (cloned into a temp directory)
sandyaa https://github.com/user/repo
# Custom config
sandyaa -c ./my-config.yaml /path/to/project
# Ignore an existing checkpoint and start over
sandyaa --fresh /path/to/project

Requires Node.js 18+, Claude Code installed and logged in, and git (auto-installed on macOS/Linux if missing). Findings land in findings/ under the target directory, one folder per bug containing analysis.md, poc.py, SETUP.md, and evidence.json, plus a top-level SUMMARY.md.

Configuration

Sandyaa reads .sandyaa/config.yaml from the current working directory. The knobs an engineer will actually tune:

analysis:
  chunk_size: 15
  depth: maximum
detection:
  min_severity: high
  exploitability_threshold: 0.7
output:
  generate_pocs: true
  validate_pocs: true

exploitability_threshold and min_severity gate how much noise you get; validate_pocs toggles whether generated PoCs are actually executed to confirm findings. Runs are checkpointed and resumable — --fresh discards an existing checkpoint.

What it looks for

The summary names the recursive-pass architecture but not the bug classes. Detectors span memory safety (use-after-free, buffer overflow, type confusion, double-free), logic bugs (auth bypass, TOCTOU, state-machine errors), injection (SQL, command, XSS, SSRF, path traversal), crypto misuse (ECB, hardcoded keys, bad randomness), concurrency races, integer issues, and unsafe APIs (deserialization, XXE, prototype pollution). Which run on a given chunk is decided by the planner, not fixed.

The RLM approach is grounded in arxiv.org/html/2512.24601v1.

Caveats

Alpha-stage; the page explicitly says to "expect rough edges and false positives." The GEMINI_API_KEY env var, if set, is used only to resolve the latest Gemini model tiers at startup — it is not required, and without it static model defaults apply. Only run it against code you own or are authorized to test.

Organisations named here

  • SecureLayer7

Technologies named here

  • macOS
  • Sandyaa
  • Claude Code CLI
  • Linux
  • Gemini CLI
  • Windows
  • Windows via WSL2
  • git
  • Claude Code
  • Gemini
  • Node.js
  • Python

Techniques named here

  • Recursive Language Models
  • Eight recursive passes
  • Attacker-control analysis
  • Evidence chain generation
  • Dynamic chunk sizing
  • Automatic checkpointing
  • PoC generation and validation
  • Vulnerability classes detected