npmreport

npm gives maintainers mechanisms to verifiably establish how a package was published.

Staged publishing
Published through npm's staged flow, prepared and reviewed before it goes live. npm docs ↗
Trusted publisher
Published from CI over OIDC, with no long-lived npm token to leak or steal. npm docs ↗
Provenance
A signed link from the published package back to the exact source commit and build. npm docs ↗
None
No verifiable signal. The release rests on the maintainer's account and token alone, so a compromise there can ship malware unnoticed.

In the summary, staged publishing and trusted publisher both count as strong trust; provenance is a weaker positive; none is the one to check.

Supply-chain trust signals for npm orgs. Audit, visualize, share, track over time.

Example report
Strong trust
40% (24) staged or trusted
Any trust
65% (39) incl. provenance
No trust signal
35% (21) no trust metadata detected

Every package owned by acme, tracked daily.

Strong trust Any trust No trust signal
0%50%100%6/226/277/17/87/127/19
Run your own audit ↓

Recent reports

Latest saved audits
  1. astrojs
  2. gameroman
  3. sveltejs
  4. fast-check
  5. netlify
  6. … 13 more

Configuration

gameroman

One or more npm org slugs (up to 5).

Reports
GitHub Actions

Publishers to treat as automation. Note: npm cannot distinguish a human from that human’s CI token, so “manual” is a proxy, not proof.

streaming to terminal →
audit · stream
→ audit gameroman | reports: trust,manual
→ scope: ALL org packages
[trust] listing packages in: gameroman
[trust] 142 packages; checking latest release metadata...
audit running

Live log shows audit progress and warnings.

Progress over time

Strong trust
10.6% (15) staged or trusted
Any trust
10.6% (15) incl. provenance
No trust signal
89.4% (127) no trust metadata detected
Strong trust Any trust No trust signal
0%50%100%8/249/19/810/410/18
  1. ...
    15/142 any trust
  2. ...
    15/142 any trust
  3. 15/137 any trust
  4. ...
    15/137 any trust
  5. ...
    15/137 any trust
  6. ...
    15/137 any trust
  7. ...
    15/137 any trust
  8. ...
    15/137 any trust
  9. ...
    15/137 any trust
  10. ...
    15/137 any trust
  11. 15/137 any trust
  12. 15/137 any trust
  13. 15/135 any trust
  14. ...
    15/135 any trust
  15. 15/135 any trust
  16. 15/135 any trust
  17. 15/133 any trust
  18. ...
    15/133 any trust
  19. ...
    15/131 any trust
  20. 15/131 any trust
  21. 15/131 any trust
  22. 15/131 any trust
  23. 15/131 any trust
  24. ...
    15/131 any trust
  25. ...
    15/131 any trust
  26. 15/131 any trust
  27. 15/131 any trust
  28. ...
    15/131 any trust
  29. 15/128 any trust
  30. ...
    15/127 any trust
  31. 15/129 any trust
  32. 14/117 any trust

“Recency” is the latest dist-tag’s publish time. “Manual” means the publisher isn’t in your bot-exclusion list — npm can’t tell a human session from that account’s automation token.

User publish history

standalone — by npm account

Versions attributed to a specific npm publisher within the window. This scans that account’s maintained packages, optionally combined with packages from the last audit run.

paused — audit running