False positive warning: 'Native installation exists but ~/.local/bin is not in your PATH'

Resolved 💬 3 comments Opened Jan 9, 2026 by RaufGlasgow Closed Jan 13, 2026

Bug Description

Claude Code displays the following warning at startup even when ~/.local/bin is correctly configured in PATH:

Warning: Native installation exists but ~/.local/bin is not in your PATH
Fix: Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc then open a new terminal or run: source ~/.zshrc

Environment

  • OS: macOS (Darwin 25.1.0)
  • Shell: zsh
  • Terminal: Warp
  • Claude Code Version: 2.1.2 (native installation at ~/.local/bin/claude)

Evidence that PATH is correctly configured

1. PATH contains ~/.local/bin

$ echo $PATH | tr ':' '\n' | grep local
/Users/username/.local/bin
/Users/username/.local/bin

2. Claude binary is found correctly

$ which claude
/Users/username/.local/bin/claude

$ type -a claude
claude is /Users/username/.local/bin/claude

3. The exact line exists in ~/.zshrc

$ grep -F 'export PATH="$HOME/.local/bin:$PATH"' ~/.zshrc
export PATH="$HOME/.local/bin:$PATH"

4. PATH is configured in FOUR places:

  • /etc/paths.d/claude-local-bin - Contains /Users/username/.local/bin
  • ~/.zshenv - Contains export PATH="$HOME/.local/bin:$PATH"
  • ~/.zprofile - Contains export PATH="$HOME/.local/bin:$PATH"
  • ~/.zshrc - Contains export PATH="$HOME/.local/bin:$PATH" (first line)

5. No hidden characters in the export line

$ grep 'local/bin' ~/.zshrc | xxd
00000000: 6578 706f 7274 2050 4154 483d 2224 484f  export PATH="$HO
00000010: 4d45 2f2e 6c6f 6361 6c2f 6269 6e3a 2450  ME/.local/bin:$P
00000020: 4154 4822 0a                             ATH".

Steps to Reproduce

  1. Install Claude Code natively to ~/.local/bin
  2. Add export PATH="$HOME/.local/bin:$PATH" to ~/.zshrc
  3. Restart terminal and start Claude Code
  4. Warning still appears

Expected Behavior

The warning should not appear when:

  • ~/.local/bin is in the PATH
  • The claude binary is found via which claude
  • The export line exists in ~/.zshrc

Actual Behavior

Warning persists despite all conditions being met.

Additional Context

  • Cleared ~/.claude/cache/ - warning persists
  • Restarted terminal multiple times - warning persists
  • Opened new Claude Code sessions - warning persists
  • The warning is purely cosmetic - Claude Code functions correctly

Hypothesis

The startup check may be:

  1. Checking PATH before shell initialization completes
  2. Looking for a very specific string pattern that doesn't match
  3. Running in a context where shell config files aren't sourced
  4. Caching the warning state somewhere not yet identified

View original on GitHub ↗

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