Check your dependencies against today
Checked against OSV.dev, CISA KEV, FIRST EPSS, npm, PyPI, deps.dev, endoflife.date and Docker Hub, live.
How it works
- Point it at your dependencies. Paste a public GitHub repo link, or drop or paste manifest files. Only the files that name dependencies are read.
- Every version is checked live. Packages go to OSV.dev for known vulnerabilities, with CISA KEV and FIRST EPSS for which ones attackers use. Runtimes, frameworks and base images go to endoflife.date. npm, PyPI and deps.dev answer for deprecations and newer releases.
- You get one list, most urgent first. One finding per package, the version that fixes all of its advisories, the file to change, and a task to paste into Claude Code, Cursor or Codex.
What it reads
- JavaScript and TypeScript:
package.json, withpackage-lock.json,yarn.lock,pnpm-lock.yamlorbun.lockfor the installed versions. package.json checker - Python:
requirements.txtand its variants,pyproject.toml(PEP 621 and Poetry), withuv.lockorpoetry.lock. requirements.txt checker - Go:
go.mod, including indirect modules and the toolchain line. go.mod checker - Rust:
Cargo.toml, withCargo.lock. Cargo.toml checker - Containers: Dockerfile
FROMlines, multi-stage builds included, and composeimage:lines. Dockerfile checker - Runtime versions:
.nvmrc,.node-version,.python-version,.tool-versions, a package.jsonenginesfield that names one Node.js major, and go.mod’stoolchain.
Up to 400 packages per check, direct dependencies first. A repo is read at its root, plus the workspace folders it names.
What it checks
- Known vulnerabilities from OSV.dev, which collects the GitHub Advisory Database, the PyPI, Go and RustSec databases and malicious-package reports.
- Exploitation: an advisory in CISA’s Known Exploited Vulnerabilities catalog is always critical, and EPSS scores order the rest.
- End of life: runtimes, frameworks and base images past their end-of-life date or within 180 days of it, with the supported line to move to.
- Deprecated packages and releases, and packages two or more major versions behind.
- Licences that restrict how you can use or host the code (SSPL, BUSL, Elastic, FSL; AGPL as low priority), as npm and PyPI list them.
- Base images on latest or with no tag, which change under you on every build.
A real result: the sample app, checked today
This sample app pins old versions on purpose. The result below comes from running it through the same live check on the server, with the time it ran and the sources it asked.
{
"name": "acme-storefront",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "15.0.3",
"react": "19.0.0",
"react-dom": "19.0.0",
"axios": "0.21.1",
"lodash": "4.17.15",
"jsonwebtoken": "8.5.1",
"request": "2.88.2"
},
"devDependencies": {
"typescript": "4.9.5"
}
}
FROM node:16-alpine WORKDIR /app COPY package.json ./ RUN npm install COPY . . RUN npm run build CMD ["npm", "start"]
11 findings: 5 critical, 3 warnings and 3 low priority
8 packages and 1 base image from package.json, Dockerfile
Critical: 36 known vulnerabilities in next 15.0.3
package.json15.5.27CVE-2025-55182 exploited in the wild (CISA)
Critical: 6 known vulnerabilities in lodash 4.17.15
package.json4.18.0
Critical: 24 known vulnerabilities in axios 0.21.1
package.json0.33.0
Critical: 3 known vulnerabilities in jsonwebtoken 8.5.1
package.json9.0.0
Critical: Base image node:16-alpine is end-of-life
Dockerfile:1node:24-alpine
Warning: CVE-2023-28155 in request 2.88.2
package.json
And 5 more findings in the full result.
Last checked against GitHub, OSV.dev, deps.dev, CISA KEV, FIRST EPSS, endoflife.date, Docker Hub and npm.
What it doesn’t do
- It doesn’t read your source code, upload your repo or run your build. It reads manifest files only.
- It reads public repos only, without credentials. For a private repo, drop its files or connect GitHub.
- It doesn’t scan container image layers or operating system packages. For those, use a scanner such as Docker Scout or Trivy on the built image.
- It doesn’t know whether your code calls the vulnerable function. Tools with call-graph analysis, such as govulncheck for Go, can rule some findings out.
Questions
Is it free, and do I need an account?
It’s free and needs no account. Without one you can run 6 checks a minute and 60 a day; signing in raises that to 300 a day. Saving a result, daily re-checks and alerts need a free account.
Do you store my code or my files?
No. The check only reads the files that name your dependencies, never your source code. For a repo, those files are fetched from GitHub’s public raw file host without any credentials. Files you drop or paste are read in memory to run the check.
Results stay in server memory for a few minutes so a shared link opens fast. Nothing is written to a database.
Can it check a private repo?
Not by link: it reads public repos only. Drop the manifest files from your private repo instead, or connect GitHub to map a private repo with a free account.
How is this different from npm audit or Dependabot?
npm audit checks one npm install tree against the GitHub Advisory Database, and Dependabot opens pull requests inside GitHub. This check reads npm, Python, Go, Rust and Docker files in one go, ranks findings by what attackers actually exploit (CISA KEV and EPSS), and adds end-of-life runtimes and base images, deprecated packages and major-version drift. Use it next to them, not instead of them.
Why does a finding say the version came from a range?
When no lockfile pins a version, we check the lowest version your range allows: ^4.17.1 is checked as 4.17.1. If the range already allows the fixed version, the finding drops to low priority and says so, because a fresh install already gets the fix. Add your lockfile for exact results.
How fresh is the data?
Each check asks the sources when you run it. Answers are reused for a short while: advisories for up to an hour, end-of-life dates and registry data for up to six hours, CISA KEV and EPSS for up to twelve. When a source doesn’t answer in time, the result names it.
What does the score mean?
It starts at 100 and drops 20 for each critical finding (up to 60), 5 for each warning (up to 25) and 1 for each low-priority one (up to 5). A vulnerable package counts once, however many advisories it has.
Can my coding agent run these checks itself?
Yes. Connect Claude Code, Cursor or Codex to StackPrism’s MCP server with a free account and your agent can check a package before it adds it. See the setup steps.
Go further than one check
Map your repo into an architecture diagram with live health on every part, get an alert when a new critical finding lands, and hand your coding agent a brief to build from. Free to start.