Skip to main content
Version: 1.4.4

Fingerprint command

The fingerprint command detects the front-end JavaScript framework used by one or more target URLs. It is useful for quickly profiling a list of targets before running a full lazyload or run pipeline.

Usage​

js-recon fingerprint -u <url/list/file> [options]

Options​

OptionAliasDescriptionDefaultRequired
--url <url/list/file>-uTarget URL, comma-separated URLs, or target file; may be repeated. See Run's -u examples.Yes
--output <file>-oOutput file to write results.No
--format <formats>-fOutput formats: text, csv, json, jsonl (comma-separated for multiple).textNo
--threads <n>-tNumber of concurrent detection workers.5No
--timeout <ms>Request timeout in milliseconds.30000No
--insecure-kDisable SSL certificate verification.falseNo
--no-sandboxDisable browser sandbox.falseNo

How it works​

For each URL, the command delegates to the same framework-detection logic used by lazyload — see Lazyload — Framework detection for the full priority-ordered marker list. If none of the markers match, the framework is reported as unknown.

Detection uses two sources per URL: a raw HTTP response (fast path) and a Puppeteer-rendered page (catches client-side-only markers after a 2-second settle). Results are printed live as each URL is processed, with a progress bar showing overall completion.

Output formats​

Text (default)​

Each line is formatted as [<framework>] <url>:

[next.js] https://example.com
[unknown] https://other.com

CSV​

The first row is a header; subsequent rows are framework,url:

framework,url
next.js,https://example.com
unknown,https://other.com

JSON​

A JSON array of objects, each with url and framework fields:

[
{ "url": "https://example.com", "framework": "next" },
{ "url": "https://other.com", "framework": "unknown" }
]

JSONL​

One JSON object per line (newline-delimited JSON), useful for streaming or piping into other tools:

{"url":"https://example.com","framework":"next"}
{"url":"https://other.com","framework":"unknown"}

Multiple formats​

Pass a comma-separated list to write multiple files in one run. The output filename is used as a base and the appropriate extension (.txt, .csv, .json, .jsonl) is appended automatically.

Examples​

Single URL​

js-recon fingerprint -u https://example.com

File of URLs​

Create a file targets.txt with one URL per line, then run:

js-recon fingerprint -u targets.txt

Save results to a file​

js-recon fingerprint -u targets.txt -o results.txt

Save as CSV​

js-recon fingerprint -u targets.txt -o results -f csv

Save as JSON​

js-recon fingerprint -u targets.txt -o results -f json

Save as JSONL​

js-recon fingerprint -u targets.txt -o results -f jsonl

Save all formats at once​

js-recon fingerprint -u targets.txt -o results -f text,csv,json,jsonl

This produces results.txt, results.csv, results.json, and results.jsonl.

Run with more threads​

By default, 5 URLs are fingerprinted concurrently. Increase the thread count for large URL lists to reduce total run time:

js-recon fingerprint -u targets.txt -t 10 -o results.txt

Tune -t based on available memory and network capacity. Higher values are faster but increase memory use and the chance of rate-limiting by the target.

Skip SSL verification​

js-recon fingerprint -u https://example.com -k