CLI Reference
Every flag, output format, and exit code the Consuela CLI accepts. For a higher-level introduction to the CLI and when to reach for it, see the CLI overview.
Usage
consuela <URL> [OPTIONS]
The URL is positional — it comes before any flags. Bare hostnames are
accepted: consuela example.com is treated as
consuela https://example.com.
consuela https://example.com
consuela example.com --max-urls 2000 --format json Flags
Output formats
Text
The default. A human-readable summary grouped by check, suitable for reading in a terminal:
Crawl of https://example.com
412 crawled, 3 failed, 12s elapsed
Response codes
[critical] Client error (4xx) 3 JSON
A machine-readable object with crawl statistics and per-check issue counts, suitable for scripting and dashboards:
{
"url": "https://example.com",
"crawl": {
"urlsCrawled": 412,
"urlsFailed": 3,
"elapsedSeconds": 12
},
"issues": [
{
"key": "status_4xx",
"group": "Response codes",
"label": "Client error (4xx)",
"severity": "critical",
"count": 3
}
]
} JUnit XML
One <testcase> per check. Most CI systems
consume JUnit natively, giving you a test report tab with no extra tooling.
How each check maps to JUnit depends on the
--fail-on threshold:
-
Checks with findings at or above the threshold produce a
<failure>element — these are the issues that cause exit code 1. -
Checks with findings below the threshold produce a
<skipped>element — present in the report but not treated as failures. -
Clean checks are empty
<testcase/>elements.
This means the CI report and the exit code always agree: anything the exit code treats as a failure is marked as one in the JUnit output.
Exit codes
By default --fail-on is
none, so the CLI always exits 0 on a successful
crawl regardless of findings. Set it to gate a pipeline:
# Fail the build on warnings or worse
consuela https://staging.example.com --fail-on warning --format junit
# Only block on critical issues
consuela https://staging.example.com --fail-on critical
Severity ordering is cumulative:
--fail-on warning also fails on criticals, and
--fail-on notice fails on everything. The
threshold sets a floor, not a single level.
Empty crawl handling
If nothing was crawled — the start URL is unreachable, DNS fails, or the server returns nothing — the exit code is 2, not 0. A crawl that fetched zero pages has no findings, but that is not a clean bill of health; it means no inspection happened.
In JUnit mode an empty crawl renders a single failing
<testcase> so the CI report shows an explicit
failure rather than an empty, passing suite. Without this, a misconfigured
URL would produce a green build — the most dangerous kind of false positive.