What is Enterprise grade open source software supply chain security tool for developers and security engineers.?
vet is an open source software supply chain security tool built for developers and security engineers who need next-gen software composition analysis, policy as code, real-time malicious package detection, multi-ecosystem support, and CI/CD native integration. It can run as an MCP server to vet open source packages from AI suggested code.
Documentation
🎯 Why vet?
70-90% of modern software constitute code from open sources — How do we know if it's safe?
vet is an open source software supply chain security tool built for developers and security engineers who need:
✅ Next-gen Software Composition Analysis — Vulnerability and malicious package detection
✅ Policy as Code — Express opinionated security policies using CEL
✅ Real-time malicious package detection — Powered by SafeDep Cloud active scanning
✅ Multi-ecosystem support — npm, PyPI, Maven, Go, Docker, GitHub Actions, and more
✅ CI/CD native — Built for DevSecOps workflows with support for GitHub Actions, GitLab CI, and more
✅ MCP Server — Run vet as a MCP server to vet open source packages from AI suggested code
✅ Agents — Run AI agents to query and analyze scan results
vet scan -D .
# Scan a single file
vet scan -M package-lock.json
# Fail CI on critical vulnerabilities
vet scan -D . --filter 'vulns.critical.exists(p, true)' --filter-fail
# Fail CI on OpenSSF Scorecard requirements
vet scan -D . --filter 'scorecard.scores.Maintained < 5' --filter-fail
# Fail CI if a package is published from a GitHub repository with less than 5 stars
vet scan -D . --filter 'projects.exists(p, p.type == "GITHUB" && p.stars < 5)' --filter-fail
🔒 Key Features# 🕵️ Code Analysis
Unlike dependency scanners that flood you with noise, vet analyzes your actual code usage to prioritize real risks. See dependency usage evidence for more details.
🛡️ Malicious Package Detection
Integrated with SafeDep Cloud for real-time protection against malicious packages in the wild. Free for open source projects. Fallback to Query Mode when API key is not provided. Read more about malicious package scanning.
📋 Policy as Code
Define security policies using CEL expressions to enforce context specific security requirements.
docker run --rm ghcr.io/safedep/vet:latest version
# Scan local directory
docker run --rm -v $(pwd):/workspace ghcr.io/safedep/vet:latest scan -D /workspace
⚙️ Verify Installation
vet version\n\n# Should display version and build information
🎮 Advanced Usage# 🔍 Scanning Options
📁 Directory Scanning
vet scan
# Scan a given directory
vet scan -D /path/to/project
# Resolve and scan transitive dependencies
vet scan -D . --transitive
📄 Manifest Files
vet scan -M package-lock.json
vet scan -M requirements.txt
vet scan -M pom.xml
vet scan -M go.mod
vet scan -M Gemfile.lock
🐙 GitHub Integration
vet connect github
# Scan repositories
vet scan --github https://github.com/user/repo
# Organization scanning
vet scan --github-org https://github.com/org
📦 Artifact Scanning
vet scan --image nginx:latest
vet scan --image /path/to/image-saved-file.tar
# Binary artifacts
vet scan -M app.jar
vet scan -M package.whl
vet scan -M sbom.json --type bom-cyclonedx
# Scan a SPDX SBOM
vet scan -M sbom.spdx.json --type bom-spdx
# Generate SBOM output
vet scan -D . --report-cdx=output.sbom.json
# Package URL scanning
vet scan --purl pkg:npm/[email protected]
📊 Query Mode & Data Persistence
For large codebases and repeated analysis:
vet scan -D . --json-dump-dir ./scan-data
# Query with different filters
vet query --from ./scan-data \
- -filter 'vulns.critical.exists(p, true)'
# Generate focused reports
vet query --from ./scan-data \
- -filter 'licenses.contains_license("GPL")' \
- -report-json license-violations.json
📊 Reporting
vet generate reports that are tailored for different stakeholders:
📋 Report Formats
vet scan -D . --report-sarif=report.sarif
# JSON for custom tooling
vet scan -D . --report-json=report.json
# CSV for spreadsheet analysis
vet scan -D . --report-csv=report.csv
vet scan -D . --report-markdown=report.md
# Console summary (default)
vet scan -D . --report-summary
vet scan -D . --report-cdx=sbom.json
# Dependency graphs
vet scan -D . --report-graph=dependencies.dot
🎯 Report Examples
vet scan -D . \
- -report-json=report.json \
- -report-sarif=report.sarif \
- -report-markdown=report.md
# Focus on specific issues
vet scan -D . \
- -filter 'vulns.high.exists(p, true)' \
- -report-json=report.json
🤖 MCP Server
vet can be used as an MCP server to vet open source packages from AI suggested code.
Malicious package detection through active scanning and code analysis powered by
SafeDep Cloud. vet requires an API
key for active scanning of unknown packages. When API key is not provided, vet will
fallback to Query Mode which detects known malicious packages from SafeDep
and OSV databases.
API access is free forever for open source projects
No proprietary code is collected for malicious package detection
Only open source package scanning from public repositories is supported
🚀 Quick Setup
Malicious package detection requires an API key for SafeDep Cloud.
vet cloud quickstart
# Enable malware scanning
vet scan -D . --malware
# Query for known malicious packages without API key
vet scan -D . --malware-query
Example malicious packages detected and reported by SafeDep Cloud
malicious package detection:
🔍 Scan packages with malicious package detection enabled
vet scan -D . --malware
# Timeout adjustment
vet scan -D . --malware \
- -malware-analysis-timeout=300s
# Batch analysis
vet scan -D . --malware \
- -json-dump-dir=./analysis
🎭 Specialized Scans
vet scan --vsx --malware
# GitHub Actions
vet scan -D .github/workflows --malware
# Container Images
vet scan --image nats:2.10 --malware
# Scan a single package and fail if its malicious
vet scan --purl pkg:/npm/[email protected] --fail-fast
# Active scanning of a single package (requires API key)
vet inspect malware \
- -purl pkg:npm/[email protected]
🔒 Security Features
✅ Real-time analysis of packages against known malware databases
✅ Behavioral analysis using static and dynamic analysis
✅ Zero day protection through active code scanning
✅ Human in the loop for triaging and investigation of high impact findings