-f, --format on scan or enrich.
Available Output Formats
What Each Format Can Represent
By default a scan reports only the components it detected. The--include flag (on scan and enrich) opts into extra decoration layers gathered on top of that: Dependencies, Vulnerabilities, Licenses, Cryptography, and Geoprovenance, for example --include deps,vulns,licenses.
Not every output format can carry every layer, though. A layer the chosen format can’t represent is skipped up front, with a notice, rather than silently dropped after the fact:
Component Collapsing
Components that share the same identity (PURL + version) are collapsed into one, so the same package listed in bothpackage.json and package-lock.json, or both detected in source and declared in a manifest, is emitted once. Different versions of the same PURL are kept as separate entries. In SPDX output, multiple licenses found on one component are combined with AND.
Converting Between Formats
Thesbom command converts offline, no API call, no source tree required. It reads a file, detects what it is from its content, and writes it in the target format:
scan raw output), CycloneDX, or SPDX (JSON), auto-detected from content. Targets: cyclonedx or spdx.
Conversion is best-effort: data the target format can’t represent is
dropped, with a warning. SPDX 2.3 has no vulnerability model, for example, so
converting to
spdx omits any vulnerabilities the source document carried.Refreshing an Existing SBOM
To add or update layers on an SBOM you already have, without a full re-scan, useenrich rather than sbom (which only converts container format, it doesn’t call the API). See Enrich & Dependencies.