Skip to content

CLI reference

Every command takes --config (default configs/default.yaml) and, where the output is structured, --json. Rich tables are the default because a person is usually reading; --json is for a script, and the two are never mixed on stdout, so any --json output can be piped without stripping decoration. Progress and warnings go to stderr.

Exit codes

Code Meaning
0 the command did what it was asked
1 a check failed: the gate refused a candidate. The command ran correctly; the answer is no
2 usage or configuration error: a missing file, an unknown component, a corpus that has not been downloaded

Only gate can exit 1.

Global options

Option Effect
--version print the version and exit
--verbose, -v log what each stage is doing to stderr

prodrome init

prodrome init [--dir .] [--force]

Writes the bundled configurations into configs/. Existing files are kept unless --force is passed, so a local edit survives a re-run.

prodrome data fetch

prodrome data fetch [--workers 32] [--mirror aws|physionet]

Downloads the corpus, about 42 MB across 40,336 files, under the Open Database License and with no credentials. Resumes: a file already on disk is not fetched again. Refuses to finish if the file count does not match the published one.

prodrome data prepare

prodrome data prepare [--workers 8] [--json]

Parses the raw files into one columnar table per site and computes the corpus digest. Strict about the header: a file whose columns are not exactly the published forty-one, in order, stops the run.

prodrome data info

Shows the manifest and the split this configuration would use, including the prevalence of each part.

prodrome train

prodrome train [--config F] [--json]

Fits on the training patients of the training sites, holding a slice back internally for early stopping so the calibration patients stay untouched. Saves to .prodrome/models/<config>/.

prodrome calibrate

prodrome calibrate [--config F] [--json]

Fits the alert policy on the calibration patients and prints the promise. See Calibrated abstention.

prodrome eval

prodrome eval [--config F] [--site X] [--reports-dir D] [--out F] [--no-subgroups] [--json]

Scores every configured test site and writes one report each, timestamped and as latest/<config>-site<X>.json. Warns when the stated guarantee did not hold on a site.

prodrome gate

prodrome gate --baseline A.json --candidate B.json \
  [--baseline-external C.json --candidate-external D.json] [thresholds...] [--json]
Option Default
--max-utility-drop 0.0
--max-auprc-drop 0.0
--max-lead-time-drop-h 0.5
--max-ece-increase 0.02
--max-alert-rate-increase 0.15
--max-external-gap-increase 0.02
--require-guarantee / --no-require-guarantee required

A differing corpus digest, split seed or test site always fails and cannot be waived. Pass the external pair to enable the generalisation check; without it the gate says in a note that it could not make that comparison. See Evaluate and gate.

prodrome bench

prodrome bench [--configs 'configs/*.yaml'] [--out reports/leaderboard.md] [--json]

Trains, calibrates and evaluates every configuration on every one of its test sites, then writes the leaderboard with external rows first. A configuration whose extra is missing is skipped and listed, not failed.

prodrome ablation

prodrome ablation [--config F] [--site X] [--out F] [--json]

Refits the same model on restricted feature sets and prints a verdict on whether it is reading the patient or the workup. See What the model reads.

prodrome publish

prodrome publish [--config F] [--repo owner/name] [--stage-only] [--private] [--token T]

Generates the model card from the committed reports and uploads. Reads HF_TOKEN from the environment. See Publish a model.

prodrome serve

prodrome serve [--config F] [--host 127.0.0.1] [--port 8300]

Needs the serve extra. See Serve it.

prodrome doctor

Reports which extras are installed, which components are registered, and whether this configuration can find its corpus, model and policy.