Utility to forecast risks associated with currently installed packages updates
Project description
OSS IQ
Know Your Dependency Risk in Minutes, Not Weeks.
OSS IQ is a free & open-source CLI tool that provides deep visibility into the risk profile of your open-source ecosystem. It helps you understand your dependency drift at scale by analyzing both direct and transitive dependencies to identify security vulnerabilities and maintenance "red flags" before they reach production.
What is OSS IQ?
In a typical project with hundreds of dependencies, how do you answer these questions?
- How many dependencies have critical vulnerabilities?
- How far behind the latest versions are we?
- Which packages are unmaintained or abandoned?
npm audit tells you about vulnerabilities, but not which ones matter. Your framework might be years old, turning a simple upgrade into a multi-week project. Without a centralized view, you are always reacting, not planning.
OSS IQ bridges the gap between raw dependency data and actionable intelligence. It analyzes version lag, CVEs, transitive dependencies, and maintainer activity to produce a single, holistic health score for your project.
How It Works
- Run OSS IQ: Point the CLI to your project's manifest file (
package.json,pyproject.toml, etc.). OSS IQ supports NPM and Python (uv, Poetry, pip). - Analyze Everything: The tool cross-references version lag, CVEs, and maintainer activity against public databases in real-time.
- Get Your Report: See a high-level health score and drill down into specific risks. The output is available as a rich console summary, an interactive HTML report, JSON, or a CycloneDX SBOM.
- Build Quality Gates: Use the metrics and scores to set policies and build automated quality gates in your CI/CD pipelines.
Quick Start
1. GitHub Token (Required)
OSS IQ performs deep analysis by mining software repository history, which can involve hundreds of API requests to GitHub. To avoid being rate-limited, you need to provide a GitHub Personal Access Token (PAT).
export OSSIQ_GITHUB_TOKEN=$(gh auth token)
2. Installation & Analysis
You can clone the repository and run the tool in development mode.
# Clone the repository
git clone https://github.com/ossiq/ossiq.git
cd ossiq
# Install dependencies
uv sync
# Run your first analysis
uv run hatch run ossiq-cli scan /path/to/your/project
# Generate HTML report
uv run hatch run ossiq-cli scan -p html -o ./test_report.html /path/to/your/project
OSS IQ automatically detects the dependency manifest (package.json, pyproject.toml, etc.) in the target directory.
Example Output
Here is an example of the summary provided in your console:
╭─────────────────────────────────────────╮
│ 📦 Project: example │
│ 🔗 Packages Registry: NPM │
│ 📍 Project Path: testdata/npm/project1/ │
╰─────────────────────────────────────────╯
Production Packages Version Status
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Dependency ┃ CVEs ┃ Lag Status ┃ Installed ┃ Latest ┃ Release Lag ┃ Time Lag ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ react-hook-form-5 │ 1 │ N/A │ 90.9.0 │ N/A │ 2 │ 0d │
│ mustache │ 1 │ Major │ 2.2.0 │ 4.2.0 │ 18 │ 5y │
│ vue │ │ Major │ 1.0.23 │ 3.5.25 │ 413 │ 10y │
│ i18n │ │ Minor │ 0.9.1 │ 0.15.3 │ 16 │ 5y │
│ luxon │ │ Patch │ 3.7.0 │ 3.7.2 │ 3 │ 2m │
│ bootstrap │ │ Latest │ 5.3.8 │ 5.3.8 │ 0 │ 0d │
└───────────────────┴──────┴────────────┴───────────┴────────┴─────────────┴──────────┘
Key Features
- Security Blind Spots: Go beyond
npm auditto see which vulnerabilities actually matter and how to prioritize them. - Silent Tech Debt: Track your version lag in releases and in time (e.g., "your React version is 2 years old") to quantify technical debt.
- Multiple Output Formats: Generate reports as interactive HTML, JSON, CycloneDX SBOMs, or a rich console view.
- CI/CD Integration: Use scores and metrics to build quality gates and enforce dependency policies automatically.
Supported Ecosystems
NPM
Supported:
- npm – Package manager for JavaScript (
package.json+package-lock.json)
Python
Supported:
- uv – Fast Rust-based package manager (
pyproject.toml+uv.lock) - pip lock – pylock.toml lockfile format (
pyproject.toml+pylock.toml) - pip classic – Traditional
requirements.txt(best withpip freezeoutput)
Not yet supported:
- Poetry – Consider exporting to
pylock.tomlas a workaround (discussion)
Limitations
- Transitive dependencies are not yet supported
FAQ
How is this different from npm audit or pip-audit?
Audit tools are great at finding known vulnerabilities. OSS IQ goes further by also analyzing non-security risks, such as how far behind you are from the latest version (technical debt) and whether a package is still actively maintained. We give you the full picture of dependency health, not just one part of it.
What ecosystems does OSS IQ support? OSS IQ currently supports npm for JavaScript and multiple dependency managers for Python (like uv, Poetry, and classic pip).
Is OSS IQ free? Yes, OSS IQ is a completely free and open-source tool, licensed under the AGPL v3 license.
License
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.
Project details
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 ossiq-0.1.3.tar.gz.
File metadata
- Download URL: ossiq-0.1.3.tar.gz
- Upload date:
- Size: 555.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bfbeacfed44ac231a5bb6bc5c469411e7557762dc3c41e8c90aab68ed4ca122
|
|
| MD5 |
168802fe02b4035641ee4afdc1df5bd9
|
|
| BLAKE2b-256 |
b0baea358652277164a992b3333afada4f8a9a27e39fa3da582703acb124510b
|
Provenance
The following attestation bundles were made for ossiq-0.1.3.tar.gz:
Publisher:
release.yml on ossiq/ossiq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ossiq-0.1.3.tar.gz -
Subject digest:
3bfbeacfed44ac231a5bb6bc5c469411e7557762dc3c41e8c90aab68ed4ca122 - Sigstore transparency entry: 829352614
- Sigstore integration time:
-
Permalink:
ossiq/ossiq@7fc97ad3ede3aacefff0f0e80cab9c895bfaac76 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/ossiq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7fc97ad3ede3aacefff0f0e80cab9c895bfaac76 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ossiq-0.1.3-py3-none-any.whl.
File metadata
- Download URL: ossiq-0.1.3-py3-none-any.whl
- Upload date:
- Size: 82.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52f7c6461def896e403e5f68adaa16527aff240853895c53d62211ad578d0c4c
|
|
| MD5 |
6eee0824fec25811319cee1f7e888f32
|
|
| BLAKE2b-256 |
1a9c5ae670e606dc48560bd2f65ee787e0cd60300aa7088fdc41156182a21d22
|
Provenance
The following attestation bundles were made for ossiq-0.1.3-py3-none-any.whl:
Publisher:
release.yml on ossiq/ossiq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ossiq-0.1.3-py3-none-any.whl -
Subject digest:
52f7c6461def896e403e5f68adaa16527aff240853895c53d62211ad578d0c4c - Sigstore transparency entry: 829352618
- Sigstore integration time:
-
Permalink:
ossiq/ossiq@7fc97ad3ede3aacefff0f0e80cab9c895bfaac76 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/ossiq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7fc97ad3ede3aacefff0f0e80cab9c895bfaac76 -
Trigger Event:
release
-
Statement type: