Why an SBOM is not enough
A traditional SBOM answers “what packages are installed?”. It is built from package manifests:requirements.txt, package-lock.json, go.sum. That model breaks down for AI systems,
because the most important assets are not packages.
gpt-4.1 has no version in any lockfile. A model file has no package.json. A prompt is just
a string. None of these have a purl, a registry, or a manifest entry — so a package scanner
walks straight past them.
AIROM is the AI-asset counterpart to software-dependency scanning: a single scanner you point
at a target to get a machine-readable inventory. The inputs are entirely different — AI assets
are found in code, headers, and configs, not in manifests.
The 13 component kinds
Every component AIROM emits has exactly one kind. The kinds are deliberately AI-native: a hosted model reference and a local weights file are different things, with different identity rules and different data attached.What a component carries
Beyond kind and name, a component carries whatever AIROM could substantiate:Identity
Identity
Canonical name, optional group (
openai, meta-llama), version, provider, and a purl when
— and only when — the package URL spec defines a type for it. Hosted API models get no
purl: minting pkg:generic/openai/gpt-4.1 would misuse the spec and pollute purl-keyed
consumers. Their identity travels as properties instead.Provenance and integrity
Provenance and integrity
Hashes, download location, release time, and a human-readable source trail. A local model
file gets a SHA-256 whenever the whole file was read — AIROM never lets a truncated prefix
hash masquerade as a file hash, so weights larger than
--max-file-size (default 1m) are
identified from their header without one.A facet
A facet
Exactly one kind-family facet. Model components carry architecture, parameter count,
quantization, context length, format, and base model. Dataset and prompt components carry
format, size, and URL. Infra and service components carry endpoint, region, and deployment.
Framework and library components carry an ecosystem.
Confidence and evidence
Confidence and evidence
An assembled confidence in [0,1] and every occurrence behind it. This is the part no
package scanner has an analogue for. See evidence.
Relationships
AIROM emits typed, evidenced edges between components — each backed by the call site that proves it.Output formats
The same inventory projects into several formats. Select them with-o (repeatable) or --format.
Emit several formats at once
Standards status
CycloneDX is the supported SBOM projection today, including itsevidence blocks — the part
of the spec that most tools leave empty. SPDX 3.0.1’s AI profile and attestation verification
are reserved for v2.
Evidence model
How every claim is anchored to a file, a line, and a detector.
Confidence
How the engine assembles a score, and how to filter the noise.