npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@depgate/unpm

v0.3.0

Published

An npm wrapper that delegates to pnpm for improved security

Readme

UNPM

A secure npm wrapper that protects against supply chain attacks while maintaining full npm compatibility.

Why UNPM?

npm's default behavior allows packages to execute arbitrary scripts during installation, a vector exploited in numerous supply chain attacks. UNPM wraps npm commands and delegates to pnpm with security-first defaults:

  • Scripts blocked by default - Dependency install scripts are blocked unless explicitly allowed
  • Minimum release age - New packages must be at least 2 days old before installation
  • Trust policy - Prevents version downgrades that could introduce malicious code
  • Strict mode for CI - Enhanced protections for automated environments
  • Package provenance - Verify supply chain integrity with attestation checks
  • Gradual migration - Use npm and unpm interchangeably before committing to full migration
  • Zero migration required - Same commands, same flags, drop-in replacement

Quick Start

Install

npm install -g @depgate/unpm

Requires pnpm (npm install -g pnpm).

Use

Replace npm with unpm:

unpm install              # Install dependencies
unpm add lodash           # Add a package
unpm run build            # Run scripts
unpm test                 # Run tests

That's it. Your project is now protected.

Key Features

Script Blocking

Install scripts from dependencies are blocked by default:

# If a package needs scripts, allow it explicitly
unpm allow-scripts add esbuild

Release Age Protection

Packages must be at least 2 days old, protecting against malicious packages being published and quickly installed:

# Override for a specific package if needed
unpm install --allow-recent=hotfix hotfix

Trust Policy

Prevents version downgrades that could introduce malicious code:

unpm install                    # Trust policy enabled by default
unpm install --no-trust-policy  # Disable if needed

Package Provenance

Verify supply chain integrity before installing:

unpm provenance lodash          # Check attestations and signatures
unpm prov [email protected]          # Alias with version

Strict Mode

For CI/CD, enable strict mode for maximum security:

UNPM_STRICT=true unpm ci
# or
unpm --strict ci

Strict mode enforces 7-day release age, blocks dlx, requires frozen lockfiles, and fails on unreviewed build scripts.

Gradual Migration

UNPM supports gradual migration from npm. Before running unpm migrate, npm and unpm work interchangeably:

# These can be used interchangeably before migration
npm install lodash
unpm install express    # Syncs with package-lock.json automatically
npm install axios       # Works seamlessly

When ready to fully commit to pnpm's security benefits:

unpm migrate

After migration, npm install/update is blocked to ensure consistent, secure dependency management.

Security Diagnostics

Check your project's security configuration:

unpm doctor --security

Reviews trust policy, release age settings, lockfile status, allowlist entries, and more.

Documentation

Requirements

  • Node.js >= 18.0.0
  • pnpm installed (npm install -g pnpm)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Apache-2.0

Related Projects

  • pnpm - Fast, disk space efficient package manager
  • LavaMoat - Tools for sandboxing JavaScript dependency risk