Features

Everything, listed rather than summarised.

A capability page is easy to write and hard to check. This one is organised so you can check it: the tools by name and side-effect class, then the loop that schedules them, then the rules that bound what the report is allowed to say.

The arsenal

Twenty-one tools. Nine of them never touch the target.

Side-effect class is a mandatory field on every registry row, and it is what the executor checks. Passive tools read public records and run on the free allowance; active tools send traffic to the target and are refused until an authorization record covers it.

Passive9 tools

no authorization

Reads public data. Runs without authorization.

Passive tools bundled with Zero-Recon and what each one does
subfinderSubdomain enumeration from public sources.
dns_resolveResolves names to addresses and records.
httpx_probeHTTP fingerprinting — status, title, technology.
tlsx_probeTLS certificate and cipher inspection.
cdncheck_probeIdentifies CDN and WAF fronting.
crtsh_lookupCertificate transparency search via crt.sh.
certspotter_ctCertificate transparency via the Cert Spotter API.
whois_lookupRegistration and ownership records.
wayback_urlsHistorical URLs from the Wayback Machine.

Active12 tools

authorization required

Sends traffic to the target. Gated on authorization.

Active tools bundled with Zero-Recon and what each one does
naabu_portscanFast scan of the common port range.
naabu_full_portscanFull 65535-port sweep.
nmap_scanService and version detection.
nmap_default_scriptsNmap's default script set against found services.
nuclei_scanTemplate-driven vulnerability checks.
nuclei_cve_scanCVE templates only.
nuclei_exposure_scanExposed panels, files and endpoints.
nuclei_misconfig_scanCommon misconfiguration templates.
nuclei_takeover_scanDangling-record subdomain takeover checks.
katana_crawlCrawls the site for reachable URLs.
katana_js_crawlExtracts endpoints from JavaScript.
ffuf_content_discoveryDirectory and content fuzzing.

All twenty-one ship enabled; an administrator can disable any of them for an instance, and the agent then treats that capability as a visible gap rather than silently skipping it. Tool images are pinned by digest against an allowlist — an image outside it is refused, not pulled.

The loop

Planning that reacts to what it finds.

A fixed pipeline runs the same nine commands whatever the target looks like. Zero-Recon builds a task graph, reads each result, and decides what is worth doing next — recording why.

  1. 01

    Scope from one sentence

    The agent decides whether the message is a reconnaissance request at all, and what the mission's scope is if it is. Anything outside that scope is refused later regardless of what a result suggests.

  2. 02

    Plan, then wait

    A multi-phase task graph with the tool behind each step, the reasoning, and the estimated cost — shown to you before anything runs. Approve, reject, or describe a change and get a revised plan.

  3. 03

    Resolve capabilities, not tool names

    The planner asks for a capability — subdomain discovery, port discovery, CVE detection. The registry answers with the best available tool, preferring passive, then quality, then coverage, then cost.

  4. 04

    Replan on evidence, record the reason

    New entities trigger new decisions, each written down as a record: what was scheduled, what was held for authorization, and which capabilities had no tool to satisfy them.

The model proposes an entity and a capability — never a target and never a tool. The target is derived from the entity by ordinary code and the tool is resolved from the registry, so a prompt-injected result cannot redirect a scan at a host outside the mission's scope.

Correlation & reporting

One graph per target, one report bounded by coverage.

Nine tools produce nine shapes. Merging them is where findings get dropped by hand, so it is done once, deterministically, with stable identities.

Deterministic identities
The same host found by three tools stays one node. Merging is by identity, not by string equality on whatever the tool printed.
Confidence, not duplication
Corroborating evidence raises a finding's confidence instead of adding a second copy of it to the list.
Coverage counted from task status
Arithmetic over the plan's own tasks. No model participates, so it cannot fail open when a provider is down.
The gate is re-applied on read
A report written before the coverage rule existed cannot be trusted to have passed through it, so the check runs again every time the report is served.

What a report carries

Findings
with evidence
Entity graph
deduplicated
Coverage
counted, not estimated
Score
only at full coverage
Decisions
why each step ran
Gaps
named capabilities
Formats
md · json

Platform

The parts around the recon.

Accounts, tenancy, billing and the audit trail. Unglamorous, and the reason a shared mission is safe to share.

  • Accounts and sign-in

    email · google · github

    Email registration with verification, alongside Google and GitHub. Whether email sign-up is open is a deployment setting an administrator controls.

  • Organizations and roles

    owner · admin · member · viewer

    Team workspaces with email invitations and member management. A personal workspace can be converted; until it is, team controls are shown disabled with the server's own reason attached.

  • Tenant scoping

    enforced at the repository layer

    Missions, findings and reports are readable only within the account or organization that produced them — enforced below the API rather than by each endpoint remembering to filter.

  • Z-Coin metering

    per execution

    Tool executions cost by runtime and resources; an ordinary chat message costs five. Running out pauses the mission and you keep the partial report.

  • Append-only audit log

    added to, never edited

    Missions, authorization records and administrative actions are written to a log that has no update path.

  • Realtime mission view

    websocket

    Task status, streamed output and the decision timeline as the mission runs, rather than a spinner until it finishes.

Run the passive nine for free.

The daily allowance covers a real passive mission end to end. Nothing active runs until you prove you are allowed to run it.