Why would you need this?
The standard Claude Code installer runs curl ... | bash and downloads the binary on the fly. That works great — unless your Mac can’t reach the internet. Corporate networks with strict firewalls, air-gapped environments, or simply a flaky hotel Wi-Fi can all get in the way.
The fix is simple: download the binary on a machine that does have internet, transfer it, and run the built-in installer.
Important: Claude Code is a cloud tool — it needs access to an API endpoint to function. By default that’s
api.anthropic.com, but you can point it at any compatible endpoint: a corporate proxy, an LLM gateway, or a cloud provider like AWS Bedrock or Google Vertex AI. See Configuring a custom API endpoint below.
How the installer works
The native Claude Code installer does three things:
- Detects your platform and architecture
- Downloads a self-contained binary from Google Cloud Storage
- Runs
claude install, which places the binary at~/.local/bin/claudeand adds it to your PATH
All release files are hosted at:
https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/
Direct download links (v2.1.41)
If you just want to grab the files and go:
| File | Platform | Size |
|---|---|---|
| claude-darwin-arm64 | macOS Apple Silicon | 175 MB |
| claude-darwin-x64 | macOS Intel | 179 MB |
| manifest.json | SHA256 checksums | 1.4 KB |
| install.sh | Bootstrap installer script | 4 KB |
These links point to version 2.1.41 (Feb 13, 2026). For the latest version, see Step 2 below.
After downloading, skip to Step 4.
Step 1. Identify your Mac’s platform
On the target Mac, check the architecture:
uname -m
| Mac type | uname -m output | Platform identifier |
|---|---|---|
| Apple Silicon (M1/M2/M3/M4) | arm64 | darwin-arm64 |
| Intel | x86_64 | darwin-x64 |
Most Macs sold since late 2020 are Apple Silicon, so you’ll likely need darwin-arm64.
Step 2. Get the latest version info
On a machine with internet access, first get the latest version number:
BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"
# Get the latest version string
curl -s "${BASE_URL}/latest"
# Example output: 2.1.41
Then fetch the manifest for that version to get checksums:
VERSION=$(curl -s "${BASE_URL}/latest")
curl -s "${BASE_URL}/${VERSION}/manifest.json" | python3 -m json.tool
The manifest contains SHA256 checksums and file sizes for every platform.
Step 3. Download the binary
Set your platform, resolve the latest version, and download:
PLATFORM="darwin-arm64" # or darwin-x64 for Intel Macs
BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"
# Resolve the latest version
VERSION=$(curl -s "${BASE_URL}/latest")
echo "Downloading Claude Code v${VERSION} for ${PLATFORM}"
# Download the binary
curl -o claude "${BASE_URL}/${VERSION}/${PLATFORM}/claude"
# Download the manifest for checksum verification
curl -o manifest.json "${BASE_URL}/${VERSION}/manifest.json"
Verify the SHA256 checksum:
# Print the expected checksum from the manifest
python3 -c "
import json
m = json.load(open('manifest.json'))
print(m['platforms']['$PLATFORM']['checksum'])
"
# Compute the checksum of the downloaded file
shasum -a 256 claude
The two values must match. If they don’t, re-download.
Step 4. Transfer the binary to the target Mac
Use whatever method is available to you:
# AirDrop — just drop the file from Finder
# USB drive
cp claude /Volumes/USB_DRIVE/
# SCP over local network
scp claude user@target-mac:/tmp/
# Or any other method: shared folder, external disk, etc.
Step 5. Install on the target Mac
On the target Mac:
# Make the binary executable
chmod +x /tmp/claude
# Run the built-in installer
/tmp/claude install
The claude install command will:
- Copy the binary to
~/.local/bin/claude - Add
~/.local/binto your PATH in~/.zshrc(default shell on macOS) - Set up auto-update (which won’t work without internet — we’ll disable it next)
Restart your terminal or run:
export PATH="$HOME/.local/bin:$PATH"
Verify the installation:
claude --version
claude doctor
Step 6. Disable auto-updates
Since the Mac doesn’t have internet, the auto-updater will just produce errors. Disable it by adding this to your ~/.zshrc:
echo 'export DISABLE_AUTOUPDATER=1' >> ~/.zshrc
source ~/.zshrc
Configuring a custom API endpoint
By default Claude Code talks to api.anthropic.com. If your network blocks that, or you want to route requests through your own infrastructure, you have several options.
Option A. Custom Anthropic-compatible endpoint
If you run a proxy or gateway that speaks the Anthropic API protocol (e.g. LiteLLM, your own reverse proxy), set two environment variables:
export ANTHROPIC_BASE_URL=https://your-proxy.internal:4000
export ANTHROPIC_AUTH_TOKEN=your-api-key
Add them to ~/.zshrc to make it permanent, or put them in ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://your-proxy.internal:4000",
"ANTHROPIC_AUTH_TOKEN": "your-api-key"
}
}
Option B. AWS Bedrock
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
export AWS_PROFILE=your-profile # or set AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
If you route Bedrock through a gateway that handles AWS auth for you:
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
export ANTHROPIC_BEDROCK_BASE_URL=https://your-gateway:4000/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
Option C. Google Vertex AI
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
Through a gateway:
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
export ANTHROPIC_VERTEX_BASE_URL=https://your-gateway:4000/vertex_ai/v1
export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
Option D. Microsoft Foundry
export CLAUDE_CODE_USE_FOUNDRY=1
export ANTHROPIC_FOUNDRY_RESOURCE=your-resource
export ANTHROPIC_FOUNDRY_API_KEY=your-api-key
Corporate proxy and custom certificates
If your network requires an HTTPS proxy or custom CA certificates:
export HTTPS_PROXY=https://proxy.corp.internal:8080
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
Choosing the model
You can override which models Claude Code uses:
export ANTHROPIC_MODEL=claude-sonnet-4-5-20250929
export ANTHROPIC_SMALL_FAST_MODEL=claude-haiku-4-5-20251001
Verify your configuration
After setting everything up, run Claude Code and check the status:
claude
# then type: /status
This shows your current provider, authentication method, and model.
Updating later
To update Claude Code on the offline Mac, repeat steps 2–5 with the newer version. The installer will replace the old binary automatically.
Alternative: install via npm
If you have Node.js 18+ on the target Mac, you can use the npm package instead:
# On a machine with internet
npm pack @anthropic-ai/claude-code
# Creates: anthropic-ai-claude-code-X.Y.Z.tgz
# Transfer the .tgz file to the target Mac, then:
npm install -g anthropic-ai-claude-code-X.Y.Z.tgz
Note: The npm installation method is deprecated. Anthropic recommends the native binary.
Quick reference
| Step | Where | What |
|---|---|---|
| 1 | Target Mac | Check architecture (uname -m) |
| 2 | Online machine | Fetch the latest manifest |
| 3 | Online machine | Download binary + verify SHA256 |
| 4 | — | Transfer file (AirDrop, USB, SCP) |
| 5 | Target Mac | chmod +x claude && ./claude install |
| 6 | Target Mac | Disable auto-updates |
| 7 | Target Mac | Configure custom API endpoint |
The whole process takes a couple of minutes and doesn’t require admin/root privileges.
