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:

  1. Detects your platform and architecture
  2. Downloads a self-contained binary from Google Cloud Storage
  3. Runs claude install, which places the binary at ~/.local/bin/claude and 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/

If you just want to grab the files and go:

FilePlatformSize
claude-darwin-arm64macOS Apple Silicon175 MB
claude-darwin-x64macOS Intel179 MB
manifest.jsonSHA256 checksums1.4 KB
install.shBootstrap installer script4 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 typeuname -m outputPlatform identifier
Apple Silicon (M1/M2/M3/M4)arm64darwin-arm64
Intelx86_64darwin-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/bin to 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

StepWhereWhat
1Target MacCheck architecture (uname -m)
2Online machineFetch the latest manifest
3Online machineDownload binary + verify SHA256
4Transfer file (AirDrop, USB, SCP)
5Target Macchmod +x claude && ./claude install
6Target MacDisable auto-updates
7Target MacConfigure custom API endpoint

The whole process takes a couple of minutes and doesn’t require admin/root privileges.