The Eternal Conflict
“We should use npm!” 😤 “No, yarn is better!” 😠 “pnpm is the future!” 🤓 …and the war never ends
# 1. Install FNPM/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ideascoldigital/fnpm/refs/heads/main/install.sh)"
# 2. Setup with transparent aliases (NEW!)fnpm setup pnpm # or npm, yarn, bun
# 3. Configure your shellecho 'eval "$(fnpm source)"' >> ~/.zshrc && source ~/.zshrc
# 4. Use your favorite package manager - FNPM handles the rest!pnpm install # Intercepted by FNPM ✨FNPM (F*ck NPM) - Because sometimes you just need to say it.
The Eternal Conflict
“We should use npm!” 😤 “No, yarn is better!” 😠 “pnpm is the future!” 🤓 …and the war never ends
The Lock File Drama
Monday: package-lock.json Tuesday: yarn.lock Wednesday: pnpm-lock.yaml …and your git history cries
The CI/CD Nightmare
“Works on my machine!” “But which package manager did you use?” …and deployment fails again
The New Dev Onboarding
“Welcome! We use npm here.” “But I prefer yarn!” “Too bad!” …and another developer quits
Use What You Love
Supported Package Managers:
Use your favorite, we support them all!
One Lock to Rule Them All
No more lock file conflicts! FNPM ensures consistent dependencies across the team, regardless of individual preferences.
Happy CI/CD
Standardized workflow. Consistent builds. No more “works on my machine” excuses!
Team Harmony
Let developers be developers. Stop the package manager wars. Focus on what really matters: building awesome stuff!
The game-changer that makes FNPM truly invisible. Use your favorite package manager commands while FNPM works behind the scenes!
Zero Learning Curve
Keep using npm install, yarn add, pnpm run - exactly as you always have.
FNPM intercepts and optimizes everything automatically.
Seamless Integration
One-time setup: fnpm setup pnpm
Add to shell: eval "$(fnpm source)"
That’s it! Your workflow stays the same.
Smart Detection
Hooks only activate in FNPM projects. Automatic fallback to original commands when needed. No interference with existing workflows.
Team Adoption Made Easy
Developers can adopt FNPM gradually. No forced workflow changes. Perfect for mixed environments.
With transparent aliases enabled, you can use either FNPM commands or your favorite package manager commands:
| Action | FNPM Command | Transparent Alias | What it does |
|---|---|---|---|
| Install dependencies | fnpm install | npm install / pnpm install / yarn install | Installs all project dependencies |
| Add a package | fnpm add <package> | npm install <package> / pnpm add <package> / yarn add <package> | Adds a new package to your project |
| Remove a package | fnpm remove <package> | npm uninstall <package> / pnpm remove <package> / yarn remove <package> | Removes a package from your project |
| Update packages | fnpm update | npm update / pnpm update / yarn upgrade | Updates packages to their latest versions |
| Run a script | fnpm run <script> | npm run <script> / pnpm run <script> / yarn run <script> | Runs a script defined in package.json |
| Clean cache | fnpm clean | npm cache clean / pnpm store prune / yarn cache clean | Cleans the package manager cache |
| List packages | fnpm list | npm list / pnpm list / yarn list | Lists installed packages |
🎉 The magic: After setup, both columns work identically! Use whatever feels natural.