Preflight Checklist
What's Wrong?
https://claude.ai/install.sh returns HTTP 403 when fetched from Docker builds or CI environments (GitHub Actions). Cloudflare is serving a browser challenge instead of the install script, making the documented install method unusable in automated environments.
What Should Happen?
curl -fsSL https://claude.ai/install.sh | bash should work in non-interactive environments (Docker builds, GitHub Actions, CI pipelines) as documented.
Error Messages/Logs
$ curl -fsSL https://claude.ai/install.sh | bash
curl: (22) The requested URL returned error: 403
$ curl -sI https://claude.ai/install.sh
HTTP/2 403
cf-mitigated: challenge
content-type: text/html; charset=UTF-8
Steps to Reproduce
- In any Dockerfile:
FROM node:20-slim
RUN curl -fsSL https://claude.ai/install.sh | bash
docker build .
- Build fails at the curl step with exit code 22 (HTTP 403)
Same issue from GitHub Actions runners and any non-browser curl request.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown — worked before Cloudflare challenge was enabled on claude.ai
Claude Code Version
1.0.202 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Non-interactive/CI environment
Additional Information
Response headers confirm Cloudflare challenge mitigation:
cf-mitigated: challenge
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, ...
Workaround: Install via npm instead: npm install -g @anthropic-ai/claude-code
This is impacting our Docker builds in GitHub Actions. The Cloudflare WAF rule appears to not distinguish automated installs from bot traffic.
Preflight Checklist
What's Wrong?
https://claude.ai/install.shreturns HTTP 403 when fetched from Docker builds or CI environments (GitHub Actions). Cloudflare is serving a browser challenge instead of the install script, making the documented install method unusable in automated environments.What Should Happen?
curl -fsSL https://claude.ai/install.sh | bashshould work in non-interactive environments (Docker builds, GitHub Actions, CI pipelines) as documented.Error Messages/Logs
Steps to Reproduce
docker build .Same issue from GitHub Actions runners and any non-browser
curlrequest.Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown — worked before Cloudflare challenge was enabled on claude.ai
Claude Code Version
1.0.202 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Non-interactive/CI environment
Additional Information
Response headers confirm Cloudflare challenge mitigation:
Workaround: Install via npm instead:
npm install -g @anthropic-ai/claude-codeThis is impacting our Docker builds in GitHub Actions. The Cloudflare WAF rule appears to not distinguish automated installs from bot traffic.