ni is a command-line tool that automatically detects and uses the correct package manager for your project.
The problem ni solves is the friction of working across projects that use different package managers. When you run commands like `ni` (install), `nr` (run), `nup` (upgrade), or `nun` (uninstall), the tool detects lock files in your project—including yarn.lock, pnpm-lock.yaml, package-lock.json, bun.lock, deno.json, and others—to determine which package manager is in use, then executes the corresponding command with that manager. It also respects the packageManager field in package.json if specified. This eliminates the need to remember which manager each project uses.
The tool suits any developer who works across multiple projects with different package managers. It provides additional features like workspace catalog support for pnpm, Yarn Berry, and Bun, allowing automatic management of pinned versions through catalog references. The `nlx` command downloads and executes packages, with a `--local` flag to prefer already-installed binaries. An automatic installation mode can install missing package managers globally before running commands. The tool is available through npm, Homebrew, and asdf.
Development on the project shows consistent engagement with regular updates to support new package managers and workspace features. The codebase maintains active refinement of detection logic and command handling across multiple package manager ecosystems. The project integrates with established package manager ecosystems and distribution channels, indicating sustained maintenance of compatibility as those tools evolve.