Command line

One audit, one blocking threshold, and CI provenance filled in for you.

cabfy wraps the two audit endpoints. It does nothing the API doesn't already do: it creates the audit, waits for it, prints a readable result, and knows how to fail a pipeline below a threshold.

bash
npx cabfy audit https://my-store.com
text
✔ Audit created — b3f1e2a0-... (polling…)

cabfy score: 92/100

  ✔ ucp_discovery        100  pass
  ✔ catalog_quality       95  pass

Report: https://api.agent-readiness.com/audits/b3f1.../report

A check in warn or fail prints its recommendation right below its row: that's the actionable text, and the first thing to read.

The command's own output is English
Like other developer tools (Stripe CLI, Vercel CLI), the command has no localised display: "Audit created", "score", "Report" stay in English whatever your language. The --language option doesn't govern that chrome — it governs what the engine produces: the recommendations printed under warn or fail checks, and the HTML report.

Options

OptionDefaultPurpose
<url> (positional)— (required)URL of the store to audit.
--fail-under <score>noneExit non-zero if the overall score falls below this threshold. This is the flag that turns the command into a quality gate.
--api-key <key>$CABFY_API_KEYWithout a key, the audit runs anonymously.
--api-url <url>$CABFY_API_URLBackend address — override for local development.
--language <fr|en>frLanguage of the recommendations and the report.
--timeout <seconds>300How long to wait before giving up. The audit keeps running server-side.
--jsonfalsePrint raw JSON only, no colors or progress lines, for scripted parsing.
--commit <sha>auto-detectedOverrides metadata.commit_sha.
--branch <name>auto-detectedOverrides metadata.branch.
--ci-url <url>auto-detectedOverrides metadata.ci_run_url.

Automatic provenance detection

Without the explicit flags, the command reads the pipeline environment. Nothing to configure.

GitHub ActionsGitLab CI
CommitGITHUB_SHACI_COMMIT_SHA
BranchGITHUB_HEAD_REF (pull request) or GITHUB_REF_NAME (push)CI_COMMIT_REF_NAME
Run URLrebuilt from GITHUB_SERVER_URL, GITHUB_REPOSITORY and GITHUB_RUN_IDCI_JOB_URL

Exit codes

CaseCode
No --fail-under, audit finished0
--fail-under N, score greater than or equal to N0
--fail-under N, score below N1
Audit failed1
Polling timeout1
API error (authentication, quota, rate limit, validation…)1

Every non-2xx response is parsed per the error contract and printed to standard error, with its error_code and whatever context is available — quota consumed, delay before retrying.

What doesn't exist yet

The login and init subcommands (key setup, config file generation) are planned but not implemented. This first version ships audit only; the command is structured around subcommands precisely so the others can be added without restructuring.