/doctor: installMethod stuck on 'local' after migrating to native install — causes recurring ghost npm-local installation

Resolved 💬 3 comments Opened Feb 23, 2026 by lucasmccomb Closed Feb 27, 2026

Description

After migrating from the npm-local installation method to the native installation, /doctor persistently reports:

Warning: Multiple installations found
├ npm-local at /Users/<user>/.claude/local
└ native at /Users/<user>/.local/bin/claude
Warning: Running native installation but config install method is 'local'
Fix: Run claude install to update configuration
Warning: Leftover npm local installation at /Users/<user>/.claude/local
Fix: Run rm -rf /Users/<user>/.claude/local

Root Cause

~/.claude.json retains "installMethod": "local" from the original npm-local installation. This causes two problems:

  1. /doctor reports a config mismatch — the running binary is native but config says local
  2. The auto-updater recreates ~/.claude/local/ — because it follows the installMethod config, it reinstalls via npm into ~/.claude/local/ on every update, even though the user is running the native binary

Reproduction

  1. Originally install Claude Code via npm-local method (the old default)
  2. Later install/migrate to the native method (~/.local/share/claude/versions/)
  3. Run claude install — this appears to fix the issue temporarily
  4. On the next auto-update or fresh session, ~/.claude/local/ reappears and /doctor shows the warnings again
  5. Deleting ~/.claude/local/ alone doesn't fix it — the directory gets recreated

Expected Behavior

Either:

  • claude install should update installMethod in ~/.claude.json to "native" when run from a native binary
  • The native installer should detect and clean up the old npm-local installation during migration
  • The auto-updater should use the actual running binary's installation method, not the stored config

Workaround

Manually edit ~/.claude.json and change "installMethod": "local" to "installMethod": "native", then delete ~/.claude/local/.

Environment

  • macOS (Darwin 25.2.0)
  • Claude Code 2.1.50 (native)
  • Previously installed via npm-local method

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗