Full-repo audit in 0.26 s on local CPU. Zero tokens. No cloud.
If it is useful to you, a ⭐ helps other people find it.
TRACE is the radar, your coding agent is the mechanic. TRACE parses the repository into an Attack-Path Model, correlates real vulnerabilities (BOLA, BFLA, SSRF, injection, …), and hands structured findings to Claude Code, Cursor, or Codex over MCP — then proves each fix with a live verification oracle instead of assuming it worked.
npx trace-sec audit .
trace scan ./backend --target http://localhost:8000
trace explain TR-BOLA-001
trace verify TR-BOLA-001
claude mcp add trace -- npx -y trace-sec mcp
Every command on one page: CLI reference.
AI agents start at AGENTS.md and the
security harness skill.
Quick install
Install globally in one command — runtimes and dependencies configure automatically:
# Global CLI via npm (available globally as 'trace' in any terminal)
npm install -g trace-sec
# Or instant zero-install execution via npx
npx trace-sec
# Windows PowerShell one-liner
irm https://raw.githubusercontent.com/VK-Amogh/TRACE/main/install.ps1 | iex
# macOS & Linux one-liner
curl -fsSL https://raw.githubusercontent.com/VK-Amogh/TRACE/main/install.sh | bash
Once installed, simply open any terminal or CMD and type trace to launch!
Agent skills
Install TRACE skills into any coding agent with the
skills CLI — no npm publish needed:
npx skills add VK-Amogh/TRACE --list
npx skills add VK-Amogh/TRACE --skill trace
One skill, three workflows: trace teaches the agent to run audits,
fix findings with live verification, and connect over MCP.
What it catches
| ID | Category | Root cause it proves |
|---|---|---|
TR-BOLA |
Broken Object-Level Authorization | id lookup without tenant scoping, shown via dual-identity differential test |
TR-BFLA |
Broken Function-Level Authorization | Admin endpoint reachable without role check |
TR-AUTH |
Missing / broken authentication | State-changing endpoint with no auth middleware |
TR-SSRF |
Server-Side Request Forgery | User-controlled URL dispatched without validation |
TR-INJ |
Injection (SQLi / command) | Unparameterized query or shell execution, triple-signal confirmed |
TR-MASS |
Mass assignment | Untrusted dict bound straight onto an ORM model |
TR-TRAV |
Path traversal | File operation on an unsanitized user path |
TR-SSTI |
Template injection | Unescaped user input rendered server-side |
TR-CORS |
CORS misconfiguration | Wildcard origin reflected with credentials |
Benchmarks
Onecrew production repo (189 files, 39 endpoints), offline, zero tokens —
recorded in docs/BENCHMARKS.md:
| Stage | Time |
|---|---|
| AST ingestion | 0.049 s |
| APM graph assembly | 0.071 s |
| Vulnerability analysis | 0.141 s |
| End-to-end audit | 0.261 s |
Hardcore multi-service testbed (15 endpoints, 12 planted flaws):
15.79 ms static pipeline, 100% precision / 100% recall.
Every trace audit prints per-stage timings, so these numbers are
reproducible on your machine — no lab-only claims.
Covered by 124 automated tests (pytest tests/).
Lite or Full
| Lite (default) | Full | |
|---|---|---|
| Install | pip install -e . |
pip install -r requirements.txt |
| Size | ~2 MB, no torch | ~1 GB (torch, transformers, onnxruntime) |
| Runs on | any CPU, 4 GB RAM | 8 GB RAM recommended |
| Detection | AST dataflow + live probes | + SecureBERT 2.0 neural scoring and Laya router |
| Choose it | contributors, CI, quick audits | maximum confidence on your own machine |
trace doctor reports which mode is active on your machine.
Why trust a finding
Confidence = 1 − (1 − P_SecureBERT) × (1 − P_AST) × (1 − P_dynamic)
- Triple match (~99.8%): AST dataflow finds the sink, SecureBERT flags the pattern, and a live probe confirms exploitation.
- Sanitizer attenuation: an existing guard cuts the AST signal by 85%, suppressing false positives.
- Verification oracle: after a patch,
trace verifyreplays the exploit.FIXEDmeans the attack is actually dead — not that a linter is happy.
Runs everywhere
| Platform | What you get |
|---|---|
| Linux x64 / Windows x64 / macOS Intel + Apple Silicon | identical CLI, CI-tested on all three |
| Python 3.11 – 3.13, Node 18 / 20 | pinned support window (requires-python = >=3.11) |
| CPU-only / 4 GB / offline | lite install; neural scoring degrades gracefully |
| Air-gapped | models resolve from ~/.trace/models or repo-local models/ |
trace doctor shows what is active on your machine.
Installation
npm install -g trace-sec # global CLI: trace, trace-sec
pip install -e ".[dev]" # contributors: lite + test/lint tooling
pip install -r requirements.txt # + full AI inference (torch, ~8 GB RAM)
trace doctor
trace audit ./testbed_hardcore --format table
From a source checkout without installing, the trace.bat / trace.cmd /
trace.ps1 launchers set PYTHONPATH automatically. Only test systems you own
or the bundled fixtures (testbed_hardcore/, test-repository/, labs/).
Releases
TRACE ships through automated GitHub Actions releases:
- Tagging and pushing
v*(e.g.v2.1.19) triggersrelease.yml, which runs the full cross-OS test suite, builds attested sdist/wheel/npm packages, and publishes to PyPI and npm with provenance. - For full details and manual dry runs, see docs/releases.md.
Documentation
Installation · Quick start · CLI reference · MCP setup · FAQ · Troubleshooting
Contributing
See CONTRIBUTING.md. Report security issues privately per SECURITY.md; accessibility barriers are tracked as bugs, see ACCESSIBILITY.md. Bug reports and feature requests use the issue templates; pull requests follow the PR template checklist.
Citation
@software{trace_sec,
title = {TRACE: Threat Reconnaissance and Attack-path Correlation Engine},
author = {{TRACE Core Team}},
year = {2026},
url = {https://github.com/VK-Amogh/TRACE}
}
See CITATION.cff.
Star history
License
Apache-2.0 — see LICENSE.
Metadata
Release files for trace-sec 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| trace_sec-2.2.0.tar.gz | 1.3 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trace_sec-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / trace_sec-2.2.0.tar.gz
| Download URL | trace_sec-2.2.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6fd347380354b6efab28fabcc3c1ebfecec53b90ccac8d3493fd38a07d796a2
|
|
BLAKE2b-256 checksum How to use checksums |
25fa9eb3d647f3e3e564e18235a2bddd56a9495b648be2d233e2f48ee50ac7f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / trace_sec-2.2.0-py3-none-any.whl
| Download URL | trace_sec-2.2.0-py3-none-any.whl |
|---|---|
| Size | 289.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3dc8977b6d70af4bb24ead0d1caa443eb697ea0f8fcd3306357d27a3813c2aa3
|
|
BLAKE2b-256 checksum How to use checksums |
2c23aee842ea5be4aba0c45c9931e134539cdef4576454558284b69bc78ebb22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for trace-sec 2.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.