-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Open
Description
Bug Description
Running curl -fsSL https://claude.ai/install.sh | bash on macOS reports "successfully installed" but:
- Never creates
~/.local/bin/claude(the native launcher) - Never creates
~/.claude/local/(the local npm install directory) - Deletes the existing working npm global install as a "cleanup" step
This leaves the user with a completely broken claude command.
Steps to Reproduce
- Have Claude Code installed via npm:
npm install -g @anthropic-ai/claude-code - Verify it works:
claude --version→2.1.42 - Run the native installer:
curl -fsSL https://claude.ai/install.sh | bash - Observe: output says "✔ Claude Code successfully installed!" with "Location: ~/.local/bin/claude"
- Observe: warning says "installMethod is native, but claude command not found at /Users/rafael/.local/bin/claude"
- Run
claude --version→ command not found - Check
ls ~/.local/bin/claude→ does not exist - Check
ls ~/.claude/local/→ does not exist
What Happens Internally
From the debug log at ~/.claude/debug/:
Install: Starting installation process (force=false, target=undefined)
Install: Calling installLatest(channelOrVersion=stable, forceReinstall=false)
Checking for native installer update to version 2.1.32
Install: installLatest returned version=2.1.32, wasUpdated=true, lockFailed=false
Install: Setup launcher completed with 1 messages
Install: Setup message: installMethod is native, but claude command not found at /Users/rafael/.local/bin/claude
Install: Cleaning up npm installations after successful install
Removed global npm installation of @anthropic-ai/claude-code
Cleaned up 1 npm installation(s)
The flow is:
installLatest("stable")returnswasUpdated=trueand version2.1.32— the install claims successsetupLauncher()fails to create~/.local/bin/claudebut returns a warning message instead of throwing an error- Because the install reported success, the cleanup function
VdT()runsnpm uninstall -g @anthropic-ai/claude-code, removing the user's working installation - The bootstrap script's cleanup then removes the downloaded binary with
rm -f "$binary_path"
Net result: old install deleted, new install never materialized.
Expected Behavior
- If the launcher at
~/.local/bin/claudeis not created, the install should fail (not report success) - The cleanup step should not remove existing working installations if the native install didn't succeed
- At minimum, the cleanup should verify
~/.local/bin/claudeexists and is executable before removing the npm global install
Environment
- macOS 26.2 (Tahoe / Darwin 25.2.0)
- Apple Silicon (arm64)
- Node.js v22.14.0 (via nvm)
- Claude Code 2.1.42 (was installed via
npm install -g @anthropic-ai/claude-code) - Shell: zsh
Workaround
Reinstall via npm:
npm install -g @anthropic-ai/claude-codeReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels