Note: snpm is under active development. Core features work well, but we're still building toward full pnpm compatibility. Contributions are welcome!
snpm is a drop-in replacement for pnpm, built from the ground up in Rust. Our goal is to match pnpm's functionality while delivering better performance and a cleaner developer experience.
Current status:
- ✅ Core commands working (
install,add,remove,run,exec,dlx) - ✅ Workspaces and catalogs
- ✅ Lockfile compatibility
- ✅ Security features (install script blocking, min package age)
- 🚧 Publishing (
snpm publish) - 🚧 Full pnpm CLI parity
npm install -g snpm
Or download a binary from GitHub Releases.
snpm install # Install dependencies snpm add react # Add a package snpm add -D typescript # Add a dev dependency snpm run build # Run a script
If you're coming from pnpm, snpm reads your existing pnpm-workspace.yaml and pnpm-lock.yaml.
We love pnpm. We just think it can be faster and simpler.
| snpm | pnpm | |
|---|---|---|
| Written in Rust | ✅ | ❌ |
| Install script blocking | ✅ | ❌ |
| Min package age protection | ✅ | ❌ |
| Reads pnpm config | ✅ | ✅ |
| Version catalogs | ✅ | ✅ |
| Full CLI parity | 🚧 | ✅ |
Security first — Install scripts are blocked by default. Packages must be explicitly whitelisted. Set SNPM_MIN_PACKAGE_AGE_DAYS=7 to ignore recently published packages.
pnpm compatible — Reads pnpm-workspace.yaml, pnpm-lock.yaml, and .npmrc. Migration is straightforward.
Workspaces & catalogs — First-class monorepo support with version catalogs to eliminate drift.
Patching — snpm patch edit lodash → make changes → snpm patch commit. Patches auto-apply on install.
snpm install --frozen-lockfile # Fail if lockfile is out of sync snpm install --production --frozen-lockfile # Skip devDependencies SNPM_MIN_PACKAGE_AGE_DAYS=7 snpm install # Ignore recently published packages
We need your help! snpm is actively looking for contributors. Whether it's bug reports, feature requests, documentation improvements, or code contributions — all are welcome.
git clone https://github.com/binbandit/snpm.git cd snpm cargo build && cargo test
See CONTRIBUTING.md for our development philosophy, code guidelines, and areas where we need help.
MIT OR Apache-2.0