Every bug gets its own agent.A different one proves it.

prettyRECON studies an authorized target, deduces which bugs are plausible from real evidence, then spawns one dedicated agent per suspected bug. Nothing reaches the report until a different agent has reproduced it from a clean session.

Free account, free download — the same login you use inside the app. Hunting runs on a plan you pick when you're ready.

Exhibit A — hunt transcriptapp.shopdemo.io
  1. RECON
  2. reconCrawl complete · 214 routes, 137 in scope
  3. STRATEGY
  4. strategistFiled 12 hypotheses across 7 bug classes.
  5. HUNT
  6. orchestratorSpawned hunter-2 · idor
  7. hunter-2Sequential order IDs — trying a neighbour's order as a second account.
  8. hunter-2GET /api/orders/1042 → 200 (victim's order)
  9. hunter-2IDOR — cross-account order read
  10. VERIFY
  11. verifier-1Confirmed — reproduced from a clean session.
  12. orchestrator3 findings confirmed, 1 refuted.
§ 01 / 08

Method

A deterministic pipeline. Each phase hands a structured artifact to the next through a shared workspace — never through chat.

PhaseAgentsWhat it doesHands on
1Recon1Maps the attack surfaceCrawls the app, mines its JavaScript and public archives, records live API traffic and fingerprints the stack — then classifies every endpoint as in-scope or stored-only.surface map
2Strategy1Deduces plausible bugsReads what recon found and writes down each bug worth suspecting, tied to the exact thing it saw that makes that bug plausible. It deduces rather than guessing.suspected bugs
3HuntNOne agent per suspected bugEach suspected bug gets its own agent, its own logged-in browser and one matching playbook. It fires a real, working proof and records what came back.unproven findings
4VerifyMIndependently reproduces eachA different agent repeats every unproven finding from a clean session and either confirms it or throws it out. Confirming is harder than refuting — and no agent is allowed to confirm its own work.confirmed or refuted
5ReportRenders only what's provenBuilt in code from the confirmed findings only — steps to reproduce, the evidence, and who proved it. A bug that was never proven cannot appear in it.the report
§ 02 / 08

Surface

Before a single payload flies, recon crawls the app, mines its JavaScript and archives, captures live API traffic and fingerprints the stack — then classifies every endpoint in-scope or stored-only.

app.shopdemo.io — Overview
Target info
Target
app.shopdemo.io
Scope
shopdemo.io + subdomains
Phase
Hunt
Endpoints
214 discovered · 137 in scope
Technologies
Next.jsReactNode.jsPostgreSQLCloudflareStripe
Index — huntable classes37 classes
Injection
sqlinosqlisstircelfixxecrlfdeserializationprototype-pollution
Cross-site
xssdom-xsscsrfcorsopen-redirecthost-headercache-poisonweb-cache-deception
Access control
idorauth-bypassmass-assignmentbusiness-logicrace-condition
Identity
jwtoauthsamlsessionmfa-bypassatobrute-force
Surface & infra
ssrfgraphqlapi-misconfigwebsocketsource-leakcloud-misconfigfile-uploadllm-ai
Framework-aware playbooksNext.jsNode.jsLaravelSpring BootASP.NETGraphQL
§ 03 / 08

The hunt

Every suspected bug gets its own agent — with its own logged-in browser and one matching playbook. They work at the same time and share nothing but the findings, so no agent can talk another into a bug that isn't there.

app.shopdemo.io — Hypotheses
idor Hunted

GET /api/orders/{id}

Sequential integer IDs and no visible ownership check in the response.

agent · hunter-2

xss Claimed

GET /search?q=

User input reflected into the results heading without encoding.

agent · hunter-4

ssrf Open

POST /api/import?url=

The importer fetches a user-supplied URL server-side.

jwt Open

Authorization: Bearer …

alg header is echoed and the token isn't re-validated on refresh.

open-redirect Hunted

GET /login?return_to=

Redirect target is taken from an unvalidated query parameter.

agent · hunter-5

§ 04 / 08

The proof

A different agent reproduces each candidate from a clean session before it can be marked confirmed. Severity, reproduction and the verdict are all on the record — and refuted findings are kept, not hidden.

app.shopdemo.io — Findings

Cross-account order read

CRITICALConfirmed

Sequential order IDs let any authenticated user fetch another customer's order — address, line items, and totals — with no ownership check.

14:22GET /api/orders/1042· hunter · idor

Reflected XSS in search query

HIGHCandidate

The q parameter is echoed unescaped into the results heading; a crafted value executes script in the victim's session.

14:24GET /search?q=· hunter · xss

Open redirect on login return_to

MEDIUMConfirmed

return_to accepts absolute off-domain URLs and redirects after login — usable for phishing and token theft.

14:25GET /login?return_to=· hunter · open-redirect

Role escalation via mass assignment

HIGHRefuted

Sending role=admin to the profile endpoint was rejected server-side — the field isn't bound. Verifier could not reproduce.

14:26PATCH /api/profile· hunter · mass-assignment
Exhibit B — the app, mid-huntRecon → Report
app.shopdemo.io — prettyRECON Zero
app.shopdemo.ioRunning · Hunt · 66%
Stop
  1. Recon
  2. Strategy
  3. Hunt
  4. 4Verify
  5. 5Report
OverviewHypotheses12Findings3

Cross-account order read

CRITICALConfirmed

Sequential order IDs let any authenticated user fetch another customer's order — address, line items, and totals — with no ownership check.

14:22GET /api/orders/1042· hunter · idor

Reflected XSS in search query

HIGHCandidate

The q parameter is echoed unescaped into the results heading; a crafted value executes script in the victim's session.

14:24GET /search?q=· hunter · xss

Open redirect on login return_to

MEDIUMConfirmed

return_to accepts absolute off-domain URLs and redirects after login — usable for phishing and token theft.

14:25GET /login?return_to=· hunter · open-redirect

Role escalation via mass assignment

HIGHRefuted

Sending role=admin to the profile endpoint was rejected server-side — the field isn't bound. Verifier could not reproduce.

14:26PATCH /api/profile· hunter · mass-assignment
§ 05 / 08

Guardrails

It fires real, working proofs — so what it will not do matters as much as what it will. Each of these is built into the pipeline, not a switch someone can leave off.

05.1

It proves a bug with the smallest possible action

No mass deletes, sends or purchases, and nothing written to your disk. A hunter does the least it can and still have proof.

05.2

Your credentials never reach an agent

Logins run from the host and the session is handed to the browser already established. Test-account secrets stay out of every agent's context and out of the transcript.

05.3

It cannot wander off your target

Every request passes one choke point that confines it to the domain you named and its subdomains. Anything out of scope is recorded and never probed.

§ 06 / 08

Effort & cost

Every plan runs the same pipeline on the same 37 bug classes. A higher plan chases more suspected bugs in a single scan and lets each agent dig further before it stops — so it finds more on one pass, not just more passes. It also runs whole scans side by side: Max hunts five targets at the same time, each on its own isolated browsers, and Enterprise is set to whatever you need.

Effort, per scan
Low~½ the usageA quick look. Fast and shallow.
Highnormal usageBalanced. The default.
Extra high~2× the usageSlowest, and finds the most.

Effort trades depth against spend. Turning it up makes every agent work harder on the same scan — it uses up your monthly allowance faster, it does not give you more of it.

Terms
ProStart here
$50/mo

For a practitioner running engagements week to week.

Monthly allowance
Generous
Suspected bugs chased per scan
12
Agents working at once
10
Scans running at the same time
1
Steps each agent may take
50

Enough for one target at a time, start to finish.

Get started
Max
$200/mo

Deepest hunts and the highest parallelism, for full-time work.

Monthly allowance
5× Pro
Suspected bugs chased per scan
25
Agents working at once
15
Scans running at the same time
5
Steps each agent may take
80

Next to Pro, it runs 5 scans side by side instead of 1, chases 2.1× as many suspected bugs in one scan, and runs 15 agents at once inside each one instead of 10.

Get started
Enterprise
Custom

Custom limits, seats and support.

Monthly allowance
Custom
Suspected bugs chased per scan
40
Agents working at once
20
Scans running at the same time
Custom
Steps each agent may take
120

Next to Pro, it chases 3.3× as many suspected bugs in one scan, and runs 20 agents at once inside each one instead of 10.

Contact sales

One-time 1-month terms — not a subscription, and one month is the longest term sold. Prices in USD. Every plan includes a monthly usage allowance that resets each period. If a month runs long you can pay as you go: add 25%, 50%, 75% or 100% more usage on top of an active plan, priced so the bigger the pack the less it costs per unit.

§ 07 / 08

Questions

07.1
How do I get access?

Create an account and download the app — both are free, and signing in is all the download asks for. Hunting itself draws on a plan, which you can pick from the Billing page whenever you're ready to point it at a target.

07.2
What am I allowed to scan?

Only targets you're explicitly authorized to test. prettyRECON sends real PoC payloads — never point it at systems you don't have permission to assess.

07.3
How do you avoid false positives?

Every candidate is reproduced by a different agent from a clean state, and the report is rendered in code from confirmed findings only. A bug that can't be reproduced never reaches the report.

07.4
How is usage measured?

Every LLM call runs through the gateway and draws on your plan's monthly allowance, which you watch as a percentage — Pro is generous, Max includes five times as much. An effort dial (Low / High / Extra high) lets you trade depth for spend on each scan.

07.5
What if I run out of usage mid-month?

Add more without changing plans. Extra usage is sold in packs of 25%, 50%, 75% or 100% of your own plan's monthly allowance, and the bigger the pack the less it costs per unit — the 100% pack works out cheaper than the plan itself. A pack tops up the billing period you buy it in and expires when that period resets, and it needs an active plan: it's extra fuel, not a way in.

07.6
Can I scan more than one target at a time?

On Max, yes — five scans run side by side; on Enterprise the limit is set to whatever you need. Concurrent scans never share a browser: each one gets its own isolated, separately logged-in set, so two hunts can't fight over a page or sign each other out mid-run. Pro runs one scan at a time. You can watch and stop any of them from the app's status bar.

07.7
Do I need the desktop app?

Yes — the hunt runs in the prettyRECON Zero desktop app, which drives its own authenticated browsers. It's a free download for anyone with an account — macOS on Apple Silicon, Windows 10/11, and Ubuntu/Debian. This site handles your account, plan and usage.

07.8
How does billing work?

Pro and Max are self-serve as a one-time 1-month term — that's the maximum, so you renew each month rather than buying a longer block. Enterprise is priced on request. Compare tiers and buy from the Billing page after signing in.

07.9
What happens to my credentials?

You hand over only test-account credentials. The pipeline logs in over CDP from the host and seeds the session into every browser — secrets never enter an agent's context or the session transcript.

§ 08 / 08

Access

The hunt runs on your own machine — your browser, your sessions, your findings. Create an account to download the app, and pick a plan when you're ready to point it at something.

08.1

Create an account

Register with your email and confirm it. That account is what you download with, and the same one you sign in with in the app.

08.2

Download

Grab the build for your machine from the download page — macOS on Apple Silicon, Windows, or Ubuntu/Debian — and follow the install steps there.

08.3

Hunt

Pick a plan, add an authorized target, and let prettyRECON hunt it end to end — then verify every finding.