Fetch minified JavaScript and CSS directly from npm packages. No node_modules bloat. No postinstall scripts. Just the files you actually use.
Why MPM
MPM resolves packages from the npm registry, extracts tarballs, intelligently ranks files, and copies only the best candidates.
No node_modules bloat. MPM downloads only the tarball, extracts temporarily, and copies the final assets you actually need.
Built on top of npm for speed. Downloads only the tarball, extracts temporarily, and copies what matters in seconds.
Doesn't execute any package code. Never runs postinstall scripts. Just static file extraction and copying.
Automatically picks the most likely asset minified, inside /dist, matching package name, reasonable size. Scored and ranked.
If npm fails, MPM scans GitHub repositories for the same asset patterns. You always get your file, one way or another.
Updates your package.json under an "assets" section for full reproducibility. Update all assets with a single command.
Ranking Engine
MPM resolves the package from the npm registry and downloads the tarball to a temporary folder.
Each candidate file receives a score based on positive signals (.min.js, /dist, name match) and negative signals (/src, test files, too small).
When scores match, MPM prioritizes: exact name match → index/main → shortest folder depth.
The highest-scoring file is copied to your output directory and tracked in package.json for reproducibility.
Commands
Three commands. That's all you need to manage your project's assets.
Fetch assets for a specific package. Supports --js,
--css, --version, and
--out flags.
Update specific package assets defined in package.json. Re-fetches and replaces output files with the latest version.
Remove asset entries and delete the corresponding files from disk. Clean removal, no traces left behind.
Process all packages listed in the package.json → assets section. Perfect for bootstrapping a project.
mpm get lodash --version 4.17.21
Integration
MPM writes an "assets" object for full reproducibility and easy updates.
The exact file(s) that were selected from the package. Can be overridden manually in package.json.
Either "js" or "css". Determines how
the asset is categorized and filtered.
Where the file was copied, relative to the project root. MPM uses this path when updating assets.
Running mpm update re-fetches each package and
replaces the output file with the newly selected asset.
Fallback Resolver
If the npm registry lookup fails, MPM seamlessly falls back to GitHub scanning repositories and applying the same ranking engine.
No more node_modules bloat. No more wasted disk space. Just the assets your project actually uses.