OmniBOM-CLI is a unified multi-ecosystem manifest scanner that audits Python (requirements.txt) and Node.js (package.json) dependencies. It queries live OSV registry data for real-time CVE and vulnerability detection, automatically exporting compliant CycloneDX JSON v1.5 tracking bills of materials alongside flat auditing CSV data sheets.
Project description
OmniBOM-CLI 🛡️
OmniBOM-CLI is a unified multi-ecosystem manifest scanner. It audits Python (requirements.txt) and Node.js (package.json) dependencies, queries live OSV registry data for real-time CVE vulnerability detection, and automatically generates compliant CycloneDX JSON v1.5 Bills of Materials (SBOM) and flat-file audit reports.
Prerequisites
Before using OmniBOM-CLI, ensure you have the following installed on your system:
- Python 3.12 or higher
- pip (Python package installer)
- An active internet connection (required to query the live OSV vulnerability database)
OmniBOM-CLI: Complete User Documentation
OmniBOM-CLI is a unified multi-ecosystem manifest scanner. It audits Python (requirements.txt) and Node.js (package.json) dependencies, queries live OSV registry data for real-time CVE vulnerability detection, and automatically generates compliant CycloneDX JSON v1.5 Bills of Materials (SBOM) alongside flat-file audit reports.
1. Installation
Ensure you have Python 3.12+ installed on your system.
You can install OmniBOM-CLI globally directly from PyPI using pip:
pip install omnibom-cli
2. Project Configuration (config.json)
OmniBOM-CLI uses a single JSON configuration file to manage your organization's metadata, output locations, and the target environments you want to scan.
Create a file named config.json in your project workspace.
Example config.json
{
"org_name": "Your Company Name",
"org_url": "https://www.yourcompany.com",
"contact_name": "Security & Compliance Team",
"contact_email": "security@yourcompany.com",
"project_name_prefix": "my-core-app",
"output_directory": "./bom_outputs",
"scan_targets": [
{
"environment_label": "backend-api",
"type": "pypi",
"manifest_path": "./src/api/requirements.txt",
"version": "1.2.0"
},
{
"environment_label": "frontend-web",
"type": "npm",
"manifest_path": "./src/web/package.json",
"version": "2.1.4"
}
],
"excluded_component_patterns": [
"^@babel\\/.*",
"^eslint.*",
"^jest.*",
"^pytest.*",
"^typescript$"
]
}
Configuration Breakdown
output_directory
Location where generated reports will be saved.
scan_targets
Defines the environments and manifests to scan.
Supported package ecosystems:
pypi→ Python projects usingrequirements.txtnpm→ Node.js projects usingpackage.json
Each target requires:
-
environment_label
Unique name for the scanned environment. -
type
Package ecosystem type (pypiornpm). -
manifest_path
Direct path to your dependency manifest file. -
version
Version identifier of your application/environment.
excluded_component_patterns
Regex patterns used to ignore development-only dependencies.
Examples:
- Build tools
- Test frameworks
- Local development packages
Common exclusions:
[
"^@babel\\/.*",
"^eslint.*",
"^jest.*",
"^pytest.*",
"^typescript$"
]
This prevents development tooling from polluting production SBOM output.
3. Running the Scanner
After preparing your config.json, open a terminal in the same directory and execute:
omnibom --config ./config.json
The scanner will:
- Read configured scan targets.
- Parse dependency manifests.
- Query registry metadata.
- Check packages against Google OSV vulnerability data.
- Generate SBOM and audit reports.
4. Locating and Reading Your Reports
OmniBOM-CLI saves generated files inside the folder specified in:
"output_directory"
For every scanned environment, three files are generated.
Example environment:
backend-api
Generated outputs:
A. CycloneDX SBOM
File:
backend-api_cyclonedx.json
What it is
A machine-readable Software Bill of Materials formatted according to the CycloneDX JSON v1.5 specification.
It contains:
- Organizational metadata
- Component inventory
- Cryptographic hashes
- Package URLs (PURLs)
- Dependency information
How to use it
Do not manually edit this file.
Import it into:
- OWASP Dependency-Track
- Enterprise vulnerability management platforms
- Compliance and cybersecurity audit systems
B. Audit Inventory Report
File:
backend-api_inventory_report.csv
What it is
A human-readable spreadsheet containing a complete inventory of every detected third-party open-source dependency.
Includes dependency information such as:
- Package details
- Ownership information
- Maintainer data
- Registry metadata
How to use it
Open using:
- Microsoft Excel
- Google Sheets
- Spreadsheet analysis tools
Review fields like:
- Owner
- Maintainer
to identify abandoned or poorly maintained dependencies.
C. Security Risk Report
File:
backend-api_security_vulnerabilities.csv
What it is
A dedicated vulnerability report that compares exact package versions against the live Google OSV vulnerability database.
How to use it
No vulnerabilities found
If the file is empty:
No known CVEs were detected.
Your dependencies currently have no publicly known vulnerabilities.
Vulnerabilities detected
Review:
- Severity
- CVSS Score
- Vulnerability ID
- Registry-Link
Use these details to:
- Prioritize fixes.
- Upgrade affected dependencies.
- Verify patch requirements.
5. Troubleshooting
Reports are missing
Check the scanner terminal output.
Successful execution should show:
Saved CycloneDX JSON:
Missing source files
If you see:
Tracked source path missing
verify your manifest_path value inside config.json.
Ensure it points to the correct:
requirements.txtpackage.json
location.
Network Issues
OmniBOM-CLI requires an active internet connection.
Network access is needed for:
- Package registry lookups
- Metadata retrieval
- OSV vulnerability scanning
Disclaimer
OmniBOM-CLI is a software composition analysis (SCA) and dependency auditing tool.The software uses publicly available package metadata and vulnerability sources, including the OSV vulnerability database, to identify known security issues.Security results, SBOM files, and audit reports are provided for informational and compliance assistance purposes only.OmniBOM-CLI does not guarantee detection of every vulnerability, security issue, licensing risk, or supply-chain threat.Users are responsible for independently validating results before making security, compliance, deployment, or business decisions.The copyright holder shall not be liable for any damages, security incidents, data loss, business interruption, or other consequences resulting from the use of this software.Use of OmniBOM-CLI indicates acceptance of these terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnibom_cli-1.0.3.tar.gz.
File metadata
- Download URL: omnibom_cli-1.0.3.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c70747ca7c3bc88d40bde712ff048d1cb1374f1f24d4cc6294b843c6d7fcac0
|
|
| MD5 |
95595e8e3a0f54f444ce2377217f7963
|
|
| BLAKE2b-256 |
5d7f3c7b4069e94e5a2dd6c7aaf3d6b783573c5357f30bc640b4431cecc89835
|
File details
Details for the file omnibom_cli-1.0.3-py3-none-any.whl.
File metadata
- Download URL: omnibom_cli-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e340208252db90663612ec86000ab4647c36bfd498fe4974e066f74052aee9ff
|
|
| MD5 |
0784d418fcd6602824294dd653091186
|
|
| BLAKE2b-256 |
7fca8ba8e35354e2ae6a8024efa7145833001c8050a28577b4e7872c692aeb2e
|