Automatic Detection
Intelligently identifies package managers by checking for package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, deno.json, and more.
javascript-package-delegator (jpd) is a powerful CLI tool that eliminates the friction of working across JavaScript projects with different package managers. Instead of remembering whether a project uses npm install, yarn add, pnpm add, or bun add, you simply use jpd install and let the tool figure out the rest.
Inspired by @antfu/ni, jpd automatically detects your project’s package manager by analyzing lock files and configuration, then transparently delegates commands to the appropriate tool. This creates a unified development experience that’s especially valuable for:
Automatic Detection
Intelligently identifies package managers by checking for package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, deno.json, and more.
Unified Commands
One consistent API for install, run, exec, create, update, uninstall, and clean-install across all supported package managers.
Interactive Workflows
Search npm registry interactively, select scripts/tasks from a menu, and choose dependencies to uninstall with built-in UI.
Volta Integration
Automatically uses Volta when detected to ensure consistent Node.js versions across your environments.
Shell Completion
Generate completion scripts for Bash, Zsh, Fish, PowerShell, and Nushell to boost productivity and reduce errors.
Debug Mode
Built-in debugging with --debug flag shows exactly what commands are being executed behind the scenes.
External Integrations
Generate Warp terminal workflows and Carapace completion specs with one command.
jpd seamlessly works with all major JavaScript package managers:
Get up and running in under a minute:
# Install jpdbrew install louiss0/tap/jpd
# Detect your project's package managerjpd agent
# Install dependencies (equivalent to npm/yarn/pnpm/bun install)jpd install
# Run a script interactivelyjpd run
# Generate and view Carapace spec (no install)jpd integrate carapace --stdout
# Generate Warp workflows to a folderjpd integrate warp --output-dir ./workflows/jpd follows a clean Why/What/How CLI design:
jpd represents the universal package manager interfaceinstall, run, exec, update, etc. represent the actions you want to take--agent, --cwd, --debug modify how those actions are executedThis design makes jpd predictable and easy to learn, whether you’re a newcomer or switching from existing tools.
Tutorial
Get started with installation and basic usage patterns.
How-to Guides
Learn specific techniques like running commands in subprojects and interactive workflows.
Commands Reference
Browse the complete command reference with all flags and examples.
Mental Model
Understand the design philosophy behind jpd’s CLI structure.