-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Description
Bug Description
The install.sh script at https://claude.ai/install.sh has two issues:
Issue 1: Script appears "stuck" during download (no progress indication)
The script uses curl -fsSL for downloading the ~180MB binary, which suppresses all output including progress. Users see no feedback for several minutes and assume the script is stuck.
Current code (line 41):
curl -fsSL -o "$output" "$url"Suggested fix:
curl -fL --progress-bar -o "$output" "$url"Also add a message before the download:
echo "Downloading Claude Code v$version..."Issue 2: Install claims success but binary not installed
When ~/.claude.json contains "installMethod": "native" (from a previous installation), the claude install command skips copying the binary but still reports "Claude Code successfully installed!" - even though the binary doesn't exist at ~/.local/bin/claude.
The script then shows a contradictory warning:
✔ Claude Code successfully installed!
⚠ Setup notes:
• installMethod is native, but claude command not found at /Users/.../.local/bin/claude
Suggested fix: Always use --force flag since we're running from a fresh download:
"$binary_path" install --force ${TARGET:+"$TARGET"}Steps to Reproduce
Issue 1:
- Run
curl -fsSL https://claude.ai/install.sh | bash - Observe no output for several minutes during the ~180MB download
Issue 2:
- Have a previous Claude Code installation (creates
~/.claude.jsonwithinstallMethod: native) - Remove
~/.local/bin/claudeand~/.local/share/claude - Run install.sh
- Observe "successfully installed" message but
which claudereturns nothing
Environment
- macOS (Darwin 24.6.0, arm64)
- curl available
Proposed Complete Fix
download_file() {
local url="$1"
local output="$2"
if [ "$DOWNLOADER" = "curl" ]; then
if [ -n "$output" ]; then
- curl -fsSL -o "$output" "$url"
+ curl -fL --progress-bar -o "$output" "$url"
else
curl -fsSL "$url"
fi # Download and verify
binary_path="$DOWNLOAD_DIR/claude-$version-$platform"
+echo "Downloading Claude Code v$version..." # Run claude install to set up launcher and shell integration
echo "Setting up Claude Code..."
-"$binary_path" install ${TARGET:+"$TARGET"}
+"$binary_path" install --force ${TARGET:+"$TARGET"}🐛 Debugged by @csaftoiu with assistance from Bucky (Claude Opus 4.5)