Files
everything-claude-code/commands/setup-pm.md
zerx-lab 970f8bf884 feat: cross-platform support with Node.js scripts
- Rewrite all bash hooks to Node.js for Windows/macOS/Linux compatibility
- Add package manager auto-detection (npm, pnpm, yarn, bun)
- Add scripts/lib/ with cross-platform utilities
- Add /setup-pm command for package manager configuration
- Add comprehensive test suite (62 tests)

Co-authored-by: zerx-lab
2026-01-22 23:08:07 -08:00

1.6 KiB

description, disable-model-invocation
description disable-model-invocation
Configure your preferred package manager (npm/pnpm/yarn/bun) true

Package Manager Setup

Configure your preferred package manager for this project or globally.

Usage

# 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:

# 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:

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