Skip to content
imferno

CLI Reference

No global install needed. Run the latest version directly via npx:

Terminal window
npx imferno@latest validate ./my-package
Terminal window
# Via npm (prebuilt binaries for all platforms)
npm install -g imferno
# Via Cargo
cargo install imferno

Validate an IMF package against SMPTE ST-2067.

Terminal window
imferno validate <PATH> [OPTIONS]
OptionDescription
--verify-hashesVerify SHA-1 hashes of all assets against PKL (slow)
--format <FORMAT>Output format: summary (default), json
--core-spec <SPEC>Core spec version: auto (default), v2013, v2016, v2020
--app2e-spec <SPEC>App profile: auto (default), none, v2020, v2021, v2023
--xml-onlySkip file manifest and MXF header checks (validates XML structure only)
--exit-zeroAlways exit 0, even on validation errors (useful for CI)
--rules-config <PATH>Path to a JSON rules config file
Terminal window
# Basic validation
imferno validate ./my-imp
# JSON output for CI pipelines
imferno validate ./my-imp --format json --exit-zero
# Full validation with hash verification
imferno validate ./my-imp --verify-hashes
# Force specific spec versions
imferno validate ./my-imp --core-spec v2020 --app2e-spec v2023
# XML-only mode (skip disk I/O — useful for remote filesystems)
imferno validate ./my-imp --xml-only
# Custom rules config
imferno validate ./my-imp --rules-config rules.json

Show detailed CPL information.

Terminal window
imferno cpl <PATH> [OPTIONS]
OptionDescription
--uuid <UUID>CPL UUID (shows first CPL if not specified)
Terminal window
imferno cpl ./my-imp
imferno cpl ./my-imp --uuid urn:uuid:abcd1234-...

Export a full report (package metadata, validation results, and CPL analysis) as JSON.

Terminal window
imferno export <PATH> [OPTIONS]
OptionDescription
--ancestor <PATH>Path to ancestor IMP directory (for supplemental packages)
--core-spec <SPEC>Core spec version: auto (default), v2013, v2016, v2020
--app2e-spec <SPEC>App profile: auto (default), none, v2020, v2021, v2023
--xml-onlySkip file manifest and MXF header checks
--rules-config <PATH>Path to a JSON rules config file
Terminal window
# Export full report as JSON
imferno export ./my-imp > report.json
# Export supplemental package with ancestor
imferno export ./supplemental-imp --ancestor ./original-imp
# Pipe into report for pretty-printing
imferno export ./my-imp | imferno report -

Pretty-print a previously exported JSON report.

Terminal window
imferno report <PATH>

PATH is a JSON file exported by imferno export, or - to read from stdin.

Terminal window
# Print from file
imferno report report.json
# Pipe from export
imferno export ./my-imp | imferno report -
# Pipe from curl (remote report)
cat report.json | imferno report -

CodeMeaning
0Validation passed (or --exit-zero used)
1Validation errors found

Create a rules.json to override severity levels:

{
"ST2067-2:2020:8.3/FileNotFound": "critical",
"ST2067-21:2023:7.1/AppIdMismatch": "off"
}

See Configuration for details on available severities and typed code constants.