pnpm is een package manager voor JavaScript en de Node.js-omgeving, ontwikkeld als alternatief voor npm met als voornaamste doel efficiënter omgaan met schijfruimte. De naam staat voor Performant npm. Het project werd in 2016 gestart door Rico Sta. Cruz en bouwde voort op ied, een eerder experiment van Alexander Gugel waarin symbolische links werden gebruikt om de map node_modules te organiseren. De eerste stabiele versie, v1.0.0, verscheen op 28 juni 2017.
Het technische onderscheid van pnpm zit in het gebruik van een centrale, content adresseerbare opslagplaats voor afhankelijkheden. In plaats van voor elk project een aparte kopie van elk pakket aan te maken, bewaart pnpm een enkel exemplaar van elke pakketversie op een vaste locatie, doorgaans de map .pnpm-store, en koppelt projecten daaraan via hard links, terwijl de afhankelijkheidsboom binnen het project zelf met symbolische links wordt opgebouwd.
Door deze aanpak kan pnpm grote monorepositories relatief snel en zuinig verwerken, wat het pakket in de jaren na de introductie populair maakte naast andere JavaScript package managers zoals npm, Yarn en Bun.