Skip to content

Latest commit

 

History

History
374 lines (270 loc) · 11 KB

File metadata and controls

374 lines (270 loc) · 11 KB

Claude Code 离线部署方案

简体中文 | English | 繁體中文 | Русский | 日本語 | 한국어

GitHub Actions Version License

一个智能的 Claude Code 离线部署方案,支持自动镜像源检测、地区限制绕过和多语言支持。

特性

  • GitHub Actions 自动下载: 自动从 npm 下载最新 Claude Code 并打包
  • 多路径自动检测: 自动查找离线包,无需硬编码路径
  • 通用 Node.js 安装: 支持 nvm、apt 或直接下载二进制文件安装 Node.js
  • 灵活的部署方式: 支持离线包、在线下载或直接 npm 安装
  • 智能配置管理: 自动清理旧配置,保持 .bashrc 整洁
  • 内置清理工具: 包含 TMP 目录清理脚本
  • 🆕 镜像源自动检测: 自动测试并选择最快的下载源(Node.js、npm、GitHub)
  • 🆕 地区限制绕过: 自动配置跳过首次启动的地区验证
  • 🆕 卸载功能: 完整的卸载功能,支持备份
  • 🆕 离线 Skills 支持: 内置 14 个离线可用的 Claude Code 插件(文档处理、设计、测试等)

🚀 快速开始(3 种方式)

方式 1:一行命令安装(推荐,需要网络)

bash <(curl -fsSL https://raw.githubusercontent.com/DeepTrial/claude-code-offline/main/setup-claude-code.sh) --auto-download

方式 2:使用离线包安装(无需网络)

  1. Releases 下载 claude-offline-packages.tar.gz
  2. 解压并运行:
tar -xzf claude-offline-packages.tar.gz
cd claude-offline-packages
bash setup-claude-code.sh

方式 3:本地已有离线包

bash setup-claude-code.sh --offline-path /path/to/claude-offline-packages

⚠️ 安装后必做(关键步骤)

安装完成后,必须配置 API 密钥才能使用:

1. 编辑配置文件

nano ~/.claude/settings.json

2. 修改以下配置

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.anthropic.com",
    "ANTHROPIC_API_KEY": "sk-your-api-key-here",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-3-opus-20240229",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-3-sonnet-20240229",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-3-haiku-20240307"
  }
}

3. 重新加载配置

source ~/.bashrc
claude --version

💡 提示:如果你所在地区无法直接访问 Anthropic API,需要配置代理地址到 ANTHROPIC_BASE_URL


详细使用指南

目录

自动版本更新

本仓库包含自动版本检查和更新机制:

GitHub Actions 自动构建

工作流自动执行:

  1. 每日检查:每天 UTC 00:00 检查 npm registry 新版本
  2. 版本对比:对比 npm 版本与现有 GitHub Release
  3. 智能构建:仅检测到新版本时才构建
  4. 自动发布:自动创建 GitHub Release

本地版本检查器

使用 check-update.sh 脚本检查和下载更新:

# 交互式检查更新
bash check-update.sh

# 仅检查版本
bash check-update.sh --check-only

# 有更新则下载并安装
bash check-update.sh --install

平台支持

默认构建平台

GitHub Actions 自动构建的离线包默认为 linux-x64 平台。包中包含:

  • Claude Code CLI 原生二进制 (linux-x64)
  • 所有离线可用的 skills 和 plugins

支持的平台列表

平台 npm 包名 说明
linux-x64 @anthropic-ai/claude-code-linux-x64 默认构建 (glibc)
linux-arm64 @anthropic-ai/claude-code-linux-arm64 ARM Linux (glibc)
linux-x64-musl @anthropic-ai/claude-code-linux-x64-musl Alpine/BusyBox
linux-arm64-musl @anthropic-ai/claude-code-linux-arm64-musl Alpine ARM
darwin-x64 @anthropic-ai/claude-code-darwin-x64 macOS Intel
darwin-arm64 @anthropic-ai/claude-code-darwin-arm64 macOS Apple Silicon
win32-x64 @anthropic-ai/claude-code-win32-x64 Windows x64
win32-arm64 @anthropic-ai/claude-code-win32-arm64 Windows ARM

修改项目以支持其他平台

如需为其他平台构建离线包,修改 .github/workflows/download-claude-packages.yml

修改下载的原生二进制包

找到以下部分,将 linux-x64 替换为目标平台:

# 原代码(linux-x64)
npm pack "@anthropic-ai/claude-code-linux-x64@${CLAUDE_VERSION}" --pack-destination .
NATIVE_TGZ=$(ls -t anthropic-ai-claude-code-linux-x64-*.tgz 2>/dev/null | head -1)
if [ -n "$NATIVE_TGZ" ]; then
  mv "$NATIVE_TGZ" "claude-code-linux-x64-${CLAUDE_VERSION}.tgz"

替换为对应平台,例如 macOS Apple Silicon

npm pack "@anthropic-ai/claude-code-darwin-arm64@${CLAUDE_VERSION}" --pack-destination .
NATIVE_TGZ=$(ls -t anthropic-ai-claude-code-darwin-arm64-*.tgz 2>/dev/null | head -1)
if [ -n "$NATIVE_TGZ" ]; then
  mv "$NATIVE_TGZ" "claude-code-darwin-arm64-${CLAUDE_VERSION}.tgz"

同时修改解压步骤

找到解压原生二进制包的部分:

# 原代码(linux-x64)
NATIVE_TGZ=$(ls -t claude-code-linux-x64-*.tgz 2>/dev/null | head -1)
if [ -n "$NATIVE_TGZ" ]; then
  echo "Extracting: $NATIVE_TGZ to node_modules/@anthropic-ai/claude-code-linux-x64"
  mkdir -p node_modules/@anthropic-ai/claude-code-linux-x64
  tar -xzf "$NATIVE_TGZ" -C node_modules/@anthropic-ai/claude-code-linux-x64 --strip-components=1
fi

替换为:

NATIVE_TGZ=$(ls -t claude-code-darwin-arm64-*.tgz 2>/dev/null | head -1)
if [ -n "$NATIVE_TGZ" ]; then
  echo "Extracting: $NATIVE_TGZ to node_modules/@anthropic-ai/claude-code-darwin-arm64"
  mkdir -p node_modules/@anthropic-ai/claude-code-darwin-arm64
  tar -xzf "$NATIVE_TGZ" -C node_modules/@anthropic-ai/claude-code-darwin-arm64 --strip-components=1
fi

修改 package.json 平台标记

# 找到并修改 platform 字段
"platform": "darwin-arm64"  # 原为 "linux-x64"

Fork 后自动构建

  1. Fork 本仓库
  2. 按上述方法修改 workflow 文件
  3. 在你 fork 的仓库中启用 GitHub Actions
  4. 等待自动构建或手动触发 workflow

构建完成后,离线包会发布到你 fork 的仓库 Releases 中。

# 示例:下载 macOS ARM64 版本用于离线部署
npm pack @anthropic-ai/claude-code@latest
npm pack @anthropic-ai/claude-code-darwin-arm64@latest

# 将 .tgz 文件传输到目标机器后解压
mkdir -p node_modules/@anthropic-ai/claude-code
tar -xzf anthropic-ai-claude-code-*.tgz -C node_modules/@anthropic-ai/claude-code --strip-components=1

mkdir -p node_modules/@anthropic-ai/claude-code-darwin-arm64
tar -xzf anthropic-ai-claude-code-darwin-arm64-*.tgz -C node_modules/@anthropic-ai/claude-code-darwin-arm64 --strip-components=1

# 运行 postinstall
cd node_modules/@anthropic-ai/claude-code
node install.cjs

镜像源自动检测

脚本内置智能镜像源检测系统,自动测试并选择最快的下载源:

支持的镜像源

类型 默认源 国内镜像源
Node.js 二进制 nodejs.org/dist/ 淘宝(npmmirror)、腾讯云
npm registry registry.npmjs.org/ registry.npmmirror.com
nvm 安装脚本 raw.githubusercontent.com jsDelivr CDN、gitmirror
GitHub API api.github.com gitmirror、ghproxy、ghps.cc

自定义镜像源

# 自定义 Node.js 镜像
export NODE_MIRROR=https://your-mirror.com/node/

# 自定义 npm registry
export NPM_MIRROR=https://your-registry.com

# 然后运行脚本
bash setup-claude-code.sh --auto-download

地区限制绕过

脚本已内置配置来自动绕过 Claude Code 的首次启动地区限制:

自动配置项

配置 作用
hasCompletedOnboarding: true 标记引导流程已完成
skipOnboarding: true 跳过首次启动引导
hasAcceptedTerms: true 标记已接受服务条款
telemetry.enabled: false 禁用遥测
DISABLE_AUTOUPDATER=1 禁用自动更新
CLAUDE_CODE_SKIP_FIRST_RUN=1 跳过首次运行检查
regionCheck.bypassed: true 标记地区检查已绕过

如果仍遇到地区问题

确保正确配置 API 端点(使用代理):

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://your-proxy-api-endpoint.com",
    "ANTHROPIC_API_KEY": "your-api-key"
  }
}

高级用法

脚本参数

参数 说明
--offline-path PATH 指定离线包路径
--auto-download 自动从 GitHub Release 下载
--force-download 强制重新下载,即使本地已有包
--skip-mirror-test 跳过镜像速度测试
--uninstall 卸载 Claude Code 及所有配置
--help, -h 显示帮助信息

环境变量

变量 说明 示例
NODE_MIRROR 自定义 Node.js 镜像源 https://npmmirror.com/mirrors/node/
NPM_MIRROR 自定义 npm registry https://registry.npmmirror.com
GITHUB_MIRROR 自定义 GitHub API 镜像 https://hub.gitmirror.com/https://api.github.com

GitHub Actions 触发方式

  1. 手动触发:

    GitHub 页面 → Actions → Download Claude Code Offline Packages → Run workflow
    
  2. 定时触发:

    • 每天 UTC 00:00 自动检查新版本
    • 每周一 UTC 00:00 完整重建

卸载方法

# 卸载 Claude Code
bash setup-claude-code.sh --uninstall

卸载内容包括:

  • ✅ 删除 ~/.claude/ 配置目录
  • ✅ 删除 ~/.claude.json 配置文件
  • ✅ 从 .bashrc 中移除所有相关配置
  • ✅ 可选:删除 Node.js 和 nvm(如果由本脚本安装)
  • ✅ 卸载前自动备份配置

故障排除

Node.js 安装失败

# 手动安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 20
nvm use 20

# 重新运行脚本
bash setup-claude-code.sh

Claude 命令找不到

# 重新加载 shell 配置
source ~/.bashrc

# 或手动添加 PATH
export PATH="/path/to/claude-offline-packages/node_modules/.bin:$PATH"

API 连接失败

如果配置后仍无法使用,检查:

  1. API 密钥是否正确
  2. 网络是否可以访问配置的 ANTHROPIC_BASE_URL
  3. 是否需要配置代理

许可证

与原 Claude Code 许可证一致。

贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目。


注意: Claude Code 和 Claude 标志是 Anthropic 的商标。本项目与 Anthropic 无关。