Skip to content

Examples

Text (default)

cms-detection https://target.example

Typical line:

https://target.example => WordPress 6.4.2 (high)

Add --verbose to append evidence notes:

cms-detection https://target.example --verbose

JSON

cms-detection https://target.example --format json
cms-detection https://target.example --format json --output results.json

JSON is a list of result objects (evidence as dicts).

File of URLs

Write one URL per line, then pass the file:

cms-detection urls.txt
cms-detection urls.txt --format json --output results.json
cms-detection urls.txt --format csv --output results.csv
cms-detection urls.txt --workers 4 --delay 0.2

Each URL is independent. detect_many and the CLI return results in input order.

Active probes

Default mode stops after homepage scoring plus confirm files for CMS that already scored. --active adds broader path probes, and when the homepage has no signal it also walks the catalogue's confirm files:

cms-detection https://target.example --active

A path is never a hit from HTTP 200 alone.

Library

from lupaxa.cms_detection import detect, detect_many

result = detect("https://target.example")
print(result.cms, result.version, result.confidence)

for item in detect_many(["https://a.example", "https://b.example"]):
    print(item.url, item.cms or "unknown", item.confidence or "")