Skip to content

setup-pm

Configure your preferred package manager (npm/pnpm/yarn/bun)


Package Manager Setup

Configure your preferred package manager for this project or globally.

Usage

Terminal window
# Detect current package manager
node scripts/setup-package-manager.js --detect
# Set global preference
node scripts/setup-package-manager.js --global pnpm
# Set project preference
node scripts/setup-package-manager.js --project bun
# List available package managers
node scripts/setup-package-manager.js --list

Detection Priority

When determining which package manager to use, the following order is checked:

  1. Environment variable: CLAUDE_PACKAGE_MANAGER
  2. Project config: .claude/package-manager.json
  3. package.json: packageManager field
  4. Lock file: Presence of package-lock.json, yarn.lock, pnpm-lock.yaml, or bun.lockb
  5. Global config: ~/.claude/package-manager.json
  6. Fallback: First available package manager (pnpm > bun > yarn > npm)

Configuration Files

Global Configuration

~/.claude/package-manager.json
{
"packageManager": "pnpm"
}

Project Configuration

.claude/package-manager.json
{
"packageManager": "bun"
}

package.json

{
"packageManager": "pnpm@8.6.0"
}

Environment Variable

Set CLAUDE_PACKAGE_MANAGER to override all other detection methods:

Terminal window
# Windows (PowerShell)
$env:CLAUDE_PACKAGE_MANAGER = "pnpm"
# macOS/Linux
export CLAUDE_PACKAGE_MANAGER=pnpm

Run the Detection

To see current package manager detection results, run:

Terminal window
node scripts/setup-package-manager.js --detect