Ubel is a fast, cross‑ecosystem security engine that resolves dependencies, generates PURLs, scans them through OSV.dev, and enforces security policies during installation to prevent supply-chain attacks. It works with:
- PyPI via:
ubel-pip - npm via:
ubel-npmorubel-pnpmorubel-bunorubel-yarn - Linux distributions via:
ubel(Ubuntu-based, Debian-based, RHEL, AlmaLinux, Rocky-Linux, and Alpine) - Docker via:
ubel-docker(if the image is based on one the mentioned Linux distros above)
Ubel runs in CLI, automation scripts, and CI/CD pipelines, producing clean JSON and PDF reports.
- Full dependency resolution across ecosystems
- OSV.dev vulnerability scanning (batch API)
- Policy engine (block/allow by severity & infection)
- Checking linux-package or node/python dependency or entire project (
checkmode) - Install‑time enforcement (
installmode) - Project‑level/Host-level/kernal-level/Docker-level scanning (
healthmode) - Catches Non-CVEs
- It is a supply-chain protection tool
- Automatic report generation (JSON + PDF)
- Extremely fast (seconds per scan)
pip install ubelIf you are on Linux, you need to:
- setup a virtual envirenment:
python3 -m venv venv - run enable the virtual envirenment
source venv/bin/activate - then run:
pip install ubel
Ubel exposes binaries:
ubel(Linux package scanning and OS-level operations: Ubuntu-based , Debian-based, Red Hat, Almalinux, Rocky-Linux, and Alpine )ubel-pip(Python ecosystem)ubel-npm(Node.js ecosystem)ubel-pnpm(Node.js ecosystem)ubel-bun(Node.js ecosystem)ubel-yarn(Node.js ecosystem)ubel-docker(Docker)
usage: ubel [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-pip [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-npm [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-pnpm [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-bun [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-yarn [-h] {check,install,health,init,allow,block} [extra_args ...]
usage: ubel-docker [-h] {health} <docker_image>
Resolve dependencies/linux-packages → generate report → exit.
ubel-pip checkIf no extra arguments are passed, Ubel will:
- Detect
requirements.txt - Resolve all packages
- Scan them
- Output PDF + JSON
ubel-npm check flask==3.1.0If no args are passed, it will detect package.json automatically.
Same as check, but enforces policies and either blocks or allows installation.
ubel-pip install flask==3.1.0Or auto-detect project requirements:
ubel-pip installubel-npm install express@5.0.0Or simply:
ubel-npm install(uses package.json automatically)
Scan the entire machine or running project, including:
- Installed PyPI packages
- Installed NPM packages
- OS-level packages (Ubuntu-based/Debian-based/RHEL/AlmaLinux/Rocky-Linux/Alpine)
- Docker-level packages (Ubuntu-based/Debian-based/RHEL/AlmaLinux/Rocky-Linux/Alpine)
Example: ( for linux )
ubel healthor ( for node.js app )
ubel-npm healthor ( for python app )
ubel-pip healthThis mode produces large, detailed inventories and vulnerability matrices.
Initialize a policy file for the project or system.
Example:
ubel initCreates default policy:
infections: block
severity:
critical: block
high: block
medium: allow
low: allow
unknown: allowOverride Ubel's decision from CI/CD or scripted pipelines.
The arguments can be: "low", "medium", "high", "critical".
Example:
ubel block high criticalFor npm and PyPI, when running:
installcheck
without arguments:
package.json(for npm)requirements.txt(for pip)
This makes it ideal for CI/CD workflows.
Ubel generates:
Machine‑readable, includes:
- dependency list
- purls
- vulnerabilities
- severity
- infection state
- policy decision
- Generate complete SBOM-like machine inventory
Human‑readable, includes:
- summary statistics
- per‑dependency vulnerability details
- fix recommendations
- tables
- OSV reference links
- Generate complete SBOM-like machine inventory
ubel→ system packages, Linux distrosubel-pip→ PyPI projects, virtual environments\ubel-npm→ Node.js, npm, package.json projectsubel-pnpm→ Node.js, npm, package.json projectsubel-bun→ Node.js, npm, package.json projectsubel-yarn→ Node.js, npm, package.json projectsubel-docker→ Docker
Ubel – Secure every dependency, before it reaches production.