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.json with installMethod: native)
- Remove
~/.local/bin/claude and ~/.local/share/claude
- Run install.sh
- Observe "successfully installed" message but
which claude returns 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)
Bug Description
The
install.shscript at https://claude.ai/install.sh has two issues:Issue 1: Script appears "stuck" during download (no progress indication)
The script uses
curl -fsSLfor 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):
Suggested fix:
Also add a message before the download:
Issue 2: Install claims success but binary not installed
When
~/.claude.jsoncontains"installMethod": "native"(from a previous installation), theclaude installcommand 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:
Suggested fix: Always use
--forceflag since we're running from a fresh download:Steps to Reproduce
Issue 1:
curl -fsSL https://claude.ai/install.sh | bashIssue 2:
~/.claude.jsonwithinstallMethod: native)~/.local/bin/claudeand~/.local/share/claudewhich claudereturns nothingEnvironment
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..."🐛 Debugged by @csaftoiu with assistance from Bucky (Claude Opus 4.5)