Scope-safe by construction
Out-of-scope findings are dropped in local code before any model call, every scan step re-checks its target against scope.json, and cloud metadata endpoints are refused even if listed.
Authorized engagements only
Turn raw scanner findings into verified triage and a client-ready VAPT report. Scope is enforced in local code — findings outside scope.json never reach a model.
$ npm i -g opensecuritybot
$ vapt scan --skill http-baseline --target https://app.acme.com [1/2] httpx -json -silent -u https://app.acme.com saved: findings/http-baseline-2026-10-17T15-30-11-724Z.json $ vapt report -f findings/... -s scope.json --html methodology: 2 scan step(s) from the execution ledger
scope.jsonBuilt in
The model reasons about findings. Everything that has to be trusted — scope, verification, execution — happens in deterministic code around it.
Out-of-scope findings are dropped in local code before any model call, every scan step re-checks its target against scope.json, and cloud metadata endpoints are refused even if listed.
Programmatic replies are schema-checked, cited CVE IDs are cross-checked against your local cve-cache, and a malformed reply gets one corrective retry. Unverifiable claims are flagged for manual review.
nmap, nuclei and httpx playbooks run argv-only — no shell string to inject into. Each step is printed, confirmed and re-checked against scope before it executes.
Markdown and HTML reports cover sections 1–5, executive summary through prioritized remediation roadmap, with methodology pulled from the execution ledger.
OpenAI, OpenRouter, Groq, Meta, Anthropic, Ollama or any OpenAI-compatible endpoint. The first-run wizard configures it; environment variables override it.
Every scan step appends tool, argv, exit code, duration and stdout SHA-256 to report/scan-ledger.jsonl, so the report shows what actually ran.
Scan skills
A skill is a declarative, reviewed playbook — not an LLM-generated command. The shell never sees free-form input.
Passive HTTP fingerprint and low-noise misconfiguration/exposure templates.
TCP service and version discovery on the top 1000 ports.
Get started
Install the CLI, run the wizard, point it at an authorized target.
$ npm i -g opensecuritybot
Node 20+ · MIT · one runtime dependency (commander)