$git clone https://github.com/0xSteph/pentest-aiThe pentest tool that proves its findings. No oracle, no badge.
| 1 | <div align="center"> |
| 2 | |
| 3 | <img src="assets/transparentbanner.png" alt="pentest-ai" width="640"> |
| 4 | |
| 5 | <h1>pentest-ai</h1> |
| 6 | |
| 7 | **The pentest tool that proves its findings. No oracle, no badge.** |
| 8 | |
| 9 | [](https://pypi.org/project/ptai/) |
| 10 | [](https://pypi.org/project/ptai/) |
| 11 | [](https://github.com/0xSteph/pentest-ai/actions/workflows/ci.yml) |
| 12 | [](LICENSE) |
| 13 | [](https://github.com/0xSteph/pentest-ai/stargazers) |
| 14 | [](https://discord.gg/6weeTAubJw) |
| 15 | |
| 16 | [**Website**](https://pentestai.xyz) · [**Install**](#install) · [**Why verification**](docs/why-verification.md) · [**Docs**](docs/) · [**Benchmarks**](docs/benchmarks/juice-shop.md) · [**Agents**](https://github.com/0xSteph/pentest-ai-agents) · [**Discord**](https://discord.gg/6weeTAubJw) |
| 17 | |
| 18 | </div> |
| 19 | |
| 20 | > ⚠️ **Offensive tooling, authorized testing only.** By installing you accept the [AUP](https://pentestai.xyz/aup) and [Terms](https://pentestai.xyz/terms). Full text in [Responsible use ↓](#responsible-use) |
| 21 | |
| 22 | ptai is an AI-driven pentest tool that re-runs every exploit to confirm it. It runs recon, logs in, and chains findings into multi-step attack paths, but it does not ask you to trust the results. The way TruffleHog confirms a leaked secret by logging in with it, ptai confirms a web finding by re-running the exploit: a finding stays a candidate until a machine oracle reproduces it N out of N, and only then does it earn a VERIFIED badge. Third-party scanner output (nuclei, nikto, zap) is held back until an oracle re-proves it. Scanner noise is what trains teams to ignore their tools, so the report carries only what ptai could prove, each VERIFIED finding with a portable proof capsule you can replay yourself. |
| 23 | |
| 24 | Today **14 vulnerability classes are oracle-verified**. On a deliberately-vulnerable test honeypot, 23 findings verify across those classes at **100% precision with zero false positives**. On a stock OWASP Juice Shop, **12 verify in a single scan**. Runs on your laptop. No cloud, no telemetry. |
| 25 | |
| 26 | ## See it work |
| 27 | |
| 28 | <p align="center"> |
| 29 | <img src="assets/ptai-juiceshop.gif" alt="ptai scanning OWASP Juice Shop: findings flip from candidate to oracle-VERIFIED, 12 verified in one scan" width="900"> |
| 30 | </p> |
| 31 | |
| 32 | <p align="center"><em>Scanning a stock OWASP Juice Shop: 12 findings oracle-verified in a single scan. Findings are real; timing is paced for watchability.</em></p> |
| 33 | |
| 34 | Reproduce the core idea yourself in two minutes, no target of your own: |
| 35 | |
| 36 | ```bash |
| 37 | pip install ptai && ptai demo |
| 38 | ``` |
| 39 | |
| 40 | `ptai demo` scans a bundled vulnerable app and reports `4 findings, 4 oracle-VERIFIED`, replays one live from a proof capsule (`replay 3/3`), then runs the same routes hardened and reports `0 findings`. The only thing that changed between the two runs is the fix, so the findings appear and disappear with the vulnerability, not because the tool went quiet. Two minutes, no API key, no target of your own. Re-prove any capsule yourself with `ptai replay`. |
| 41 | |
| 42 | > **Honest numbers.** The honeypot run (23 verified across 14 classes, 100% precision, zero false positives) and the Juice Shop run (12 verified in one scan) are individual reproducible benchmarks, not field false-positive rates. The oracle gate buys precision, not catch rate: it removes false positives, it does not raise detection. Juice Shop is the most-studied vulnerable app on the internet, so read its raw volume as breadth and the verified count as the precision story; the honeypot, with bugs we wrote ourselves, is the |