Guide · npm

npm license checker — audit every dependency’s license, no install

Here’s how to check the license of every npm dependency — direct and transitive — straight from your lockfile, with no npm install, no node_modules, and nothing sent to a SaaS. It runs as a GitHub Action or a single container, on your own infrastructure, in about five minutes.

Updated 24 Jul 2026 · by the depproof team

Why the usual npm license tools make you install first

Most npm license tools work off an installed node_modules/, so you have to run a full npm install first — slow in CI, awkward in a locked-down network, and impossible when you only have the source and can’t install it. SaaS scanners skip the install but want your code in their cloud instead.

depproof does neither: it reads your lockfile, so you get the license picture without installing anything and without your code leaving your infrastructure.

Option 1 · GitHub Action

Add this to a workflow. depproof reads your lockfile and uploads an HTML license report and a CycloneDX SBOM as build artifacts — no npm install in the job.

# .github/workflows/licenses.yml
name: licenses
on: [push]

jobs:
  licenses:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: depproof/depproof-action@v1
        with:
          fail-on: none  # report-only; license CI gating is on the roadmap

Option 2 · Docker container

The same scanner ships as one public image — run it in any CI, or locally. Point it at a checkout, or straight at a single lockfile.

docker pull ghcr.io/depproof/depproof:v0

# audit licenses for the current npm project — no install
docker run --rm -v $PWD:/work -w /work ghcr.io/depproof/depproof:v0 \
  scan --discover --root /work --fail-on none --html --output-dir /work

What you get

  • Every dependency, direct and transitive — the whole tree, not just what’s in your package.json.
  • A clear license for each one, named consistently and classified allowed, review, or forbidden.
  • Dev and production dependencies told apart, so you can hold what you ship to a stricter bar.
  • An HTML report you can read and a CycloneDX SBOM — the machine-readable artifact auditors and customers ask for.

Reading the license report

depproof classifies each license as allowed, review, or forbidden, so a copyleft or unknown license stands out in the report — and whether a copyleft finding like AGPL is actually a problem (is AGPL safe for commercial and SaaS use?) depends on how you use it. Today this is report-only for licenses — you review the findings; CI gating on a license policy is on the roadmap. To fail a build today, depproof gates on vulnerability severity (fail-on: critical | high | medium | low | none).

Works with npm, pnpm, and yarn lockfiles. For the most accurate audit, commit your lockfile and scan that — it’s the exact picture of what you ship.

Where this fits

A per-repo license check is the first data point; the moment a customer or auditor asks about your whole estate, you’ll want those results aggregated in the depproof hub. See dependency governance — when per-repo scans stop being enough for the org-wide picture. And if your product also ships Java, the same tool covers it:

depproof is free for open source and teams under $1M revenue — see pricing. The action README is the source of truth for exact inputs and the current release.