
pnpm
A fast Node.js package manager that saves disk space by sharing installed packages.
- Stars
- 37k
- Forks
- 2k
- Licence
- MIT
- Language
- Rust
- Last update
- 4 days ago
- Type
- Dev tool
What it is
pnpm is a package manager for JavaScript and Node.js projects, the tool that downloads and installs the libraries a project depends on. According to its README, it is fast and disk-efficient because files inside node_modules are linked from a single content-addressable store rather than copied for each project. It also aims to be strict, so a package can only access dependencies listed in its own package.json, and it uses a lockfile (pnpm-lock.yaml) so installs are repeatable.
- Install and manage the dependencies of a Node.js web application
- Manage several related packages in one monorepo using workspaces
- Use pnpm runtime to manage Node.js versions, as described in the README
Great for
- Developers working in Node.js projects who want faster installs and less disk use
- Teams maintaining monorepos with multiple packages in one repository
- Projects that need strict dependency declarations to avoid accidental imports
- Developers who want a lockfile for reproducible installs
Not ideal for
- People who need a stable, fully proven tool for critical production use without checking the README's note about the experimental Rust port (pacquet) is not the default CLI, so this is a caveat only if you plan to try it
- Non-developers with no need to install JavaScript libraries
- Projects that depend on behaviour specific to npm or Yarn, since switching package managers can require changes; the README points to a feature comparison page for details
How to get it
- 1
Install with a package manager
Clone the repository
git clone https://github.com/pnpm/pnpm.git - 2
Run it
- Install pnpm using the instructions at https://pnpm.io
- Open a Node.js project that has a package.json
- Run pnpm install in the project folder
- Check the pnpm-lock.yaml file that gets created
- 3
Get the most out of it
- Use workspaces for monorepos, as described at pnpm.io/workspaces
- Compare features with npm and Yarn on the feature comparison page linked in the README
- Use pnpm runtime to manage Node.js versions, per the README
Downloads
Strengths
- The README claims up to 2x faster installs than alternatives, with a linked benchmark
- Shares package files from one store across projects, reducing disk usage
- Strict dependency access and a lockfile help keep projects predictable
Trade-offs
- Speed and disk claims come from the project's own README; verify on your own projects
- Strict dependency rules can break projects that rely on undeclared packages
- The Rust port (pacquet) is described as experimental
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| pnpm (this) | 37k | Dev tool | beginner | 4 days ago | Developers working in Node.js projects who want faster installs and less disk use |
| patch-package | 11.2k | Dev tool | beginner | 1.1 years ago | Teams running a Node.js app who need a quick fix to a dependency before the upstream project publishes one |
| poetry | 34.3k | Dev tool | intermediate | 5 days ago | Python developers starting a new project who want one config file for dependencies and packaging |
| composer | 29.6k | Dev tool | beginner | 4 days ago | PHP developers starting a new project who want standard third-party libraries |
| nvm | 48.1k | App | beginner | 4 days ago | Windows developers who work on several Node.js projects that need different versions |
| UniGetUI | 26.8k | App | beginner | 4 days ago | Windows users who already use WinGet, Scoop or Chocolatey and want one place to manage them |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.