Inspired by XKCD 2347
Drop in a manifest or connect a repo. Stacktower builds the full dependency tower and finds the CVEs, brittle packages, and license conflicts hiding in your transitives. Then it ranks what to fix first.
The comic was funny. Your dependency incidents are not.
Free for public repos · Pro $9/mo with 14-day money-back · See pricing
Search any package from PyPI, npm, crates.io, and more. Get the tower in seconds, see why dependency sprawl gets weird fast, then run it on your real repo.
Your tower will appear here
Select a package and click Build Tower
Want the full picture on your actual stack?
Private GitHub repos, diffs, SBOM export, and version history on Pro
From dependency graph to actionable fixes in minutes
Search any package or connect your GitHub repo. We resolve direct and transitive dependencies automatically.
Triage flags CVEs, license issues, brittle packages, and upgrade risk with code-aware context.
Get a ranked action plan for what to fix now, what can wait, and how to execute safely.
Add the GitHub Action to get tower diffs on every PR. Gate merges on new vulns, license drift, or brittle deps.
Our agent scans for security vulnerabilities, brittle dependencies (single maintainer, abandoned), and license issues — then tells you exactly what to fix.
Found 1 CVE, 1 brittle package, and 1 license issue to review.
Identifies known CVEs and security advisories across your entire dependency tree, including transitive dependencies.
Identifies risky packages: single maintainer, abandoned projects, low bus factor, and outdated dependencies.
Find duplicate packages, unused dependencies, and bloated alternatives to reduce your bundle size.
Audit your dependency licenses to ensure compliance with your organization's policies.
1 AI analyses/month on Free · 20/month on Pro ($9/mo)
Two lines of YAML. Every PR that touches a manifest gets a tower diff comment with stats, new vulns, license issues, and optional AI triage — automatically.
+7 added · ~2 updated · 1 unchanged · 🚨 1 new vuln
| Package | Version | Severity |
|---|---|---|
certifi | 2024.2.2 | HIGH |
starlette 0.36.3httptools 0.6.1python-dotenv 1.0.1uvloop 0.19.0watchfiles 0.21.0httpx 0.27.0certifi 2024.2.2| Package | Before | After |
|---|---|---|
pydantic | 2.6.4 | |
typing-extensions | 4.10.0 |
| Before | After |
|---|---|
Generated by Stacktower · View diff · Before tower · After tower
name: Dependency Diff on: [pull_request]
jobs: tower: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: stacktower-io/stacktower-action@v1 with: api-key: ${{ secrets.STACKTOWER_KEY }} fail-on-vuln: true
Finds changed package.json, go.mod, Cargo.lock, pyproject.toml, and more — one comment per manifest.
Fail the check when new CVEs appear. No severity threshold config — any new vuln = red.
Flag copyleft drift, abandoned packages, and single-maintainer risk before they merge.
Add investigate: true for a prioritized fix plan right in the PR comment.
Requires Pro plan ($9/mo) · Read the docs
“All modern digital infrastructure depends on a project some random person in Nebraska has been mass-maintaining since 2003”
A small manifest can pull in hundreds of transitive dependencies. Most teams never see the real risk until it shows up in production.
12
packages in the manifest
847
transitive deps inherited
3
with known CVEs
1
unmaintained since 2019
Start for free and upgrade when you need private repos, diffs, SBOM export, and more AI analyses.
For exploring public dependencies.
Full-featured for individuals.
For teams with compliance requirements.
14-day money-back guarantee on your first paid month · See full pricing