Claude Code 国内部署终极指南:不占C盘 + DeepSeek接入 + 4个坑一次踩完(万字干货)
省流版:Claude Code 是 Anthropic 出的终端 AI 编程助手,比 Copilot 高一个维度。但国内用不了官方 API,C 盘又爆满怎么装?本文记录把 Claude Code 装到非系统盘 → 接入国产模型(MiniMax/DeepSeek)→ 解决 4 个让人崩溃的真实问题的全过程。所有命令可直接复制粘贴,按目录跳到你关心的部分即可。
📖 目录
一、为什么是 Claude Code?—— 终端 AI 编程工具横评
2025~2026 年,AI 编程工具从"代码补全"卷到了"自主 Agent"。如果你还只在用 IDE 插件自动补全,可能已经落后一个版本了。
1.1 四大主流 AI 编程工具对比
目前市面上的 AI 编程工具大致可以分成两类:IDE 插件型(辅助你写)和 终端 Agent 型(帮你独立干活)。
| 能力维度 | GitHub Copilot | OpenAI Codex CLI | Hermes Agent | Claude Code |
|---|---|---|---|---|
| 产品形态 | IDE 插件 | 终端 CLI + IDE | 终端 CLI(Python) | 终端 CLI(Node.js) |
| 代码补全 | ✅ 最强(内联补全) | ✅ | ❌(不主打补全) | ✅ |
| 读写文件系统 | ❌ | ✅ | ✅(70+ 工具) | ✅ |
| 直接跑 Shell 命令 | ❌ | ✅ | ✅ | ✅ |
| 项目级上下文理解 | ❌(仅当前文件+Tab) | ✅(代码库索引) | ✅ | ✅(最强) |
| 自主多步骤任务 | ❌ | ✅(沙箱执行) | ✅(自进化) | ✅(Agent 循环) |
| 跨会话记忆 | ❌ | ❌ | ✅(持久记忆) | ❌ |
| 模型绑定 | OpenAI 模型 | 仅 OpenAI | 多厂商(任意 OpenAI 兼容) | 多厂商(Anthropic 兼容接口) |
| 国内直连 | 需代理 | 需代理 | ✅(可接入 DeepSeek 等) | ✅(可接入 DeepSeek 等) |
| 开源 | ❌ | ❌(源码可见) | ✅(Apache 2.0) | ❌ |
| 安装难度 | 一键装插件 | pip install |
复杂(多依赖) | ⭐⭐(npm install) |
| 硬件要求 | 无(云端) | 无(云端) | 中(Python 3.11+) | 无(云端) |
| 适合场景 | 日常编码补全 | OpenAI 生态用户 | 想完全自托管/二次开发 | 想用最好的终端 Agent + 国产模型 |
1.2 各工具一句话点评
-
OpenAI Codex CLI:OpenAI 官方的终端编码 Agent,体验不错,但绑死 OpenAI 模型——国内用要挂代理 + 付美元,门槛不低。
-
Hermes Agent:开源、自进化、70+ 内置工具、跨会话记忆——听着很香,但实际部署依赖复杂(我刚踩完坑,见 另一篇)。适合有自托管需求、愿意折腾的硬核玩家。
-
Claude Code:Anthropic 出品,终端 Agent 里 综合体验最好的。特别是它天然支持 Anthropic Messages API 兼容接口,国内 DeepSeek、MiniMax、智谱都能直接接。对国内开发者来说,既能享受顶级 Agent 体验,又不用翻墙、不用付美元——这就是选它的核心理由。
1.3 Claude Code 的两个拦路虎 & 解决方案
-
国内访问不了 Anthropic 官方 API
-
官方 API 贵
→ 装 Claude Code 客户端,把它的 API 端点指向国产大模型厂商的兼容接口。DeepSeek、MiniMax、智谱 GLM 等厂商都实现了 Anthropic Messages API 的兼容层——用国内网络 + 几分之一的价格跑通顶级 AI Agent。
本文适合谁?
想免费/低成本体验 Claude Code 的开发者
在 Copilot、Codex、Hermes、Claude Code 之间纠结选哪个的人
C 盘红了、想把开发工具装到其他盘的人
被
claude命令找不到、启动闪退、401 报错折磨的人想从 MiniMax 迁移到 DeepSeek 的人
二、环境准备
| 项 | 我的环境 | 最低要求 |
|---|---|---|
| 操作系统 | Windows 11 | Windows 10+ |
| Node.js | v24.12.0(装在 K 盘) | v18+ |
| 目标盘可用空间 | 108 GB | ≥ 5 GB |
| 终端 | PowerShell(建议换 Windows Terminal) | 任意 |
已有 Node.js 的跳过这步。没装的去 Node.js 官网 下载 LTS 版本,安装时一定勾上 "Add to PATH"。
验证安装:
node --version # 应该 >= v18.0.0 npm --version
三、安装到非系统盘(C盘救星)
⚠️ 先看这里:官方推荐用
irm https://claude.ai/install.ps1 | iex一键安装,但默认装到C:\Users\你的用户名\.local\bin,800MB+ 的包直接糊 C 盘脸上。C 盘紧张的朋友请务必用下面的 npm 自定义安装方式。
3.1 在目标盘创建目录
# 全局安装位置(我把所有环境都放在 K 盘,你改成自己的盘符即可) New-Item -ItemType Directory -Force "K:\software\npm-global" # npm 缓存也一起迁过去 New-Item -ItemType Directory -Force "K:\software\npm-cache"
3.2 修改 npm 的安装位置
npm config set prefix "K:\software\npm-global" npm config set cache "K:\software\npm-cache" # 确认修改生效 npm config get prefix # 输出:K:\software\npm-global
这条命令做了什么? 它在
%USERPROFILE%\.npmrc文件中写入prefix=K:\software\npm-global。从此所有npm install -g xxx的包都装到 K 盘,和 C 盘说拜拜。
3.3 全局安装 Claude Code
npm install -g @anthropic-ai/claude-code@latest
安装完成后,可执行文件位于:
K:\software\npm-global\node_modules\@anthropic-ai\claude-code\bin\claude.exe
包体积约 240 MB,现在都在你的 K 盘上了。
3.4 验证安装
cd K:\software\npm-global .\claude.cmd --version # 输出:2.1.199 (Claude Code)
3.5 把安装目录加入 PATH(让 claude 全局可用)
# 读取当前用户的 PATH 环境变量
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
# 把 K 盘的 npm-global 目录追加到最前面
$newPath = "K:\software\npm-global;" + $currentPath
# 写回注册表(永久生效)
[System.Environment]::SetEnvironmentVariable("Path", $newPath, "User")
⚠️ 注意:写完注册表后,当前 PowerShell 窗口不会立即生效。需要新开一个窗口,或者跳到本文第六节-坑3用
$PROFILE大法一劳永逸。
四、接入 MiniMax API(踩坑全过程)
踩坑过程比直接抄答案更有价值,所以我保留了从"按照网上的教程配 → 报错 → 排查 → 修复"的完整链路。只想抄答案的直接看 4.3 修正后的配置。
4.1 按网上教程配的第一版(翻车了)
在 C:\Users\你的用户名\.claude\settings.json 写入:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的API-Key",
"ANTHROPIC_BASE_URL": "https://api.minimax.io/anthropic",
"ANTHROPIC_MODEL": "MiniMax-M2.5",
"API_TIMEOUT_MS": "600000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"permissions": {
"allow": [],
"deny": []
}
}
然后满怀期待敲下 claude,结果:401 Unauthorized ❌
4.2 问题出在哪?
搜了一圈才发现:网上很多教程(包括部分高阅读量的掘金/博客园文章)写的 api.minimax.io 是 MiniMax 的国际版端点。国内用户必须用 api.minimaxi.com。
❌ https://api.minimax.io/anthropic ← 国际版,国内 401 ✅ https://api.minimaxi.com/anthropic ← 国内版,通了
注意域名中间是 minimaxi,不是 minimax。这个细节 90% 的教程都没写清楚。
4.3 修正版配置(直接抄)
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的MiniMax-API-Key",
"ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
"ANTHROPIC_MODEL": "MiniMax-M2.5",
"ANTHROPIC_SMALL_FAST_MODEL": "MiniMax-M2.5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-M2.5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-M2.5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M2.5",
"API_TIMEOUT_MS": "600000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"permissions": {
"allow": [],
"deny": []
}
}
几个容易踩的坑(帮你省一小时):
坑 说明 ANTHROPIC_AUTH_TOKEN≠ANTHROPIC_API_KEY前者用于第三方代理认证,后者是 Anthropic 官方直连。用 AUTH_TOKEN才生效五个 *_MODEL全部要填Claude Code 内部按任务复杂度自动选模型,少填一个就可能 404 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1关掉向 Anthropic 官方发送遥测数据,避免国内网络超时 API_TIMEOUT_MS=60000010 分钟超时,复杂任务不会因为等太久被截断
4.4 再加一个文件:绕过登录拦截
不然后面每次启动 claude 都会弹登录拦截页面:
# 在 C:\Users\你的用户名\.claude.json 写入:
{
"hasCompletedOnboarding": true
}
4.5 端到端验证
claude --print "回复 pong 即可"
返回 pong → 恭喜,Claude Code ↔ MiniMax API ↔ 你的 Key ↔ 模型响应,全链路通了! 🎉
五、切换到 DeepSeek(更便宜!)
MiniMax 用了一段时间后额度耗尽。DeepSeek 的 deepseek-chat 一次调用只要几毛几分钱。
5.1 获取 DeepSeek API Key
-
注册/登录 → 左侧「API Keys」→ 创建新 Key
-
Key 格式:
sk-开头的一长串字符 -
新用户一般送几块钱额度,个人开发者够玩好久
5.2 修改配置文件
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-你的DeepSeek-API-Key",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_MODEL": "deepseek-chat",
"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-chat",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-chat",
"API_TIMEOUT_MS": "600000",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"permissions": {
"allow": [],
"deny": []
}
}
和 MiniMax 配置相比,只改了 3 个地方:
| 改动项 | MiniMax | DeepSeek |
|---|---|---|
ANTHROPIC_AUTH_TOKEN |
sk-你的MiniMax-Key |
sk-你的DeepSeek-Key |
ANTHROPIC_BASE_URL |
https://api.minimaxi.com/anthropic |
https://api.deepseek.com/anthropic |
5 个 *_MODEL |
MiniMax-M2.5 |
deepseek-chat |
5.3 备份配置(方便以后来回切)
# 保存 DeepSeek 配置 Copy-Item "$env:USERPROFILE\.claude\settings.json" ` "$env:USERPROFILE\.claude\settings.deepseek-backup.json" # 以后想切回 MiniMax(前提是你之前存过备份) Copy-Item "$env:USERPROFILE\.claude\settings.minimax-backup.json" ` "$env:USERPROFILE\.claude\settings.json" -Force
5.4 双确认验证
# 方式1:看配置文件 Get-Content "$env:USERPROFILE\.claude\settings.json" | Select-String "BASE_URL|MODEL" # 方式2:进 Claude Code 交互模式查看 claude > /status
/status 会显示当前生效的 Model 和 API 端点,两个都对 = 100% 切换成功 ✅
六、4 大真实坑 + 解决方案(全篇精华)
这一节是本文最有价值的部分。每个坑都包含:症状 → 根因 → 解决 → 底层原理。理解原理才能真正避坑,而不是靠运气。
坑 1:Claude Code 启动后闪退
** 症状**:
启动 Claude Code,banner 刚渲染出欢迎语和小螃蟹 ASCII 图标,窗口直接消失。
** 根因**:
PowerShell 默认字体(Consolas)不支持 Claude Code banner 里的 box-drawing 字符和 emoji。渲染到那些字符时直接抛异常退出。
** 解决**(任选其一):
方案 A:换字体(30 秒搞定)
PowerShell 窗口左上角图标 → 属性 → 字体 → 选 Cascadia Mono(Win11 自带)
方案 B:装 Windows Terminal(强烈推荐)
winget install Microsoft.WindowsTerminal
✨ Windows Terminal 自带支持所有 Unicode 字符的默认字体,而且是现代化的多标签终端,支持 GPU 加速渲染、分屏、自定义主题。装完以后再也用不回那个白底黑字的传统 PowerShell 了。
坑 2:401 Unauthorized
** 症状**:
配置完跑 claude --print "test",返回 401。
** 根因**:
用错了 API 端点域名。MiniMax 国际版 api.minimax.io 和国内版 api.minimaxi.com 是两个不同的服务。
** 解决**:
翻回第四节 4.2 确认你的端点域名。国内用户必须用 api.minimaxi.com(中间是 xi,不是 x)。
坑 3:重启电脑后 claude 命令消失(Windows PATH 缓存问题)
** 症状**:
PS C:\Users\30106> claude 'claude' 不是内部或外部命令,也不是可运行的程序或批处理文件。
重启前明明能用的,重启完就找不到了。而且 $env:Path 里确实没有你之前加进去的路径。
** 根因(这是本文技术深度最高的部分)**:
Windows 环境变量分两层:
| 层级 | 存储位置 | 加载时机 |
|---|---|---|
| System | 注册表 HKLM\...\Environment |
系统启动时读取一次 |
| User | 注册表 HKCU\Environment |
每个进程启动时从父进程继承快照 |
进程继承链:
Windows 内核 → explorer.exe ← 启动时从注册表读 User PATH(旧值) → PowerShell.exe ← 继承 explorer.exe 内存中的旧 PATH → claude.exe ← 再继承 PowerShell 的旧 PATH
我们用 SetEnvironmentVariable 改的是注册表,但 explorer.exe 在我们改之前就已经启动了,它内存里的 PATH 是旧快照。新开的 PowerShell 继承的是 explorer 的内存副本 → 永远用旧值。
理论上重启电脑能清掉 explorer 缓存,但 Windows 有时候"不彻底"——部分后台服务保留了旧环境快照,重启后又把污染值传给了新进程。
** 解决($PROFILE 大法,一劳永逸)**:
# 第一步:创建 PowerShell Profile(如果还没有) New-Item -ItemType File -Path $PROFILE -Force # 第二步:编辑 Profile,写入下面这行 notepad $PROFILE
在打开的记事本中写入:
# 每次打开 PowerShell 时,强制从注册表同步最新 PATH
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","User") + ";" + [System.Environment]::GetEnvironmentVariable("Path","Machine")
保存后,以后任何新开的 PowerShell 窗口都会自动执行这一行,把注册表里最新的 PATH 同步到当前会话。
✅ 验证方法:关掉所有 PowerShell 窗口 → 重新打开 → 直接敲
claude --version,能正常输出即修复成功。
坑 4:claude 命令大小写问题
** 症状**:
PS C:\Users\30106> Claude Claude : 无法将"Claude"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
** 根因**:
PowerShell 对内置 cmdlet 大小写不敏感,但去 PATH 里找可执行文件时,行为在不同 Windows 版本/PowerShell 版本下不完全一致。
** 解决**:
全部用小写 claude,养成肌肉记忆即可。如果小写也找不到,那就是坑 3(PATH 缓存)的问题,先修那个。
七、底层原理(知其所以然)
7.1 npm config set prefix 到底干了什么?
npm install -g xxx │ ▼ prefix 目录 ├── node_modules/ ← 全局包的实际代码放这里 │ └── @anthropic-ai/ │ └── claude-code/ │ └── bin/ │ └── claude.exe (240MB) │ └── claude.cmd ← cmd shim 直接放 prefix 根目录 └── claude.ps1 ← PowerShell shim 也放根目录
关键认知:加到 PATH 里的必须是 prefix 根目录(
K:\software\npm-global),不是node_modules子目录。因为 npm 把.cmdshim 放在 prefix 根目录。
7.2 Windows 环境变量继承机制
BIOS → Windows 内核 → smss.exe(会话管理器) → winlogon.exe(登录进程) → userinit.exe(用户初始化) → explorer.exe ← 第 1 次读 User PATH(从注册表) → PowerShell.exe ← 继承 explorer 的 PATH 快照(不是读注册表!) → claude.exe ← 继承 PowerShell 的 PATH
一句话总结:子进程继承的是父进程启动那一刻的环境变量副本,不会实时同步注册表。这就是
$PROFILE方案的必要性。
7.3 PowerShell $PROFILE 机制
$PROFILE 是一个指向 .ps1 脚本文件路径的特殊变量。PowerShell 每次启动时会自动执行这个脚本(如果文件存在)。
| Profile 类型 | 路径 | 作用范围 |
|---|---|---|
| Current User, Current Host | $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 |
当前用户当前 Shell(最常用) |
| Current User, All Hosts | $HOME\Documents\PowerShell\Profile.ps1 |
当前用户所有 Shell |
| All Users, Current Host | $PSHOME\Microsoft.PowerShell_profile.ps1 |
所有用户当前 Shell |
| All Users, All Hosts | $PSHOME\Profile.ps1 |
所有用户所有 Shell |
notepad $PROFILE 打开的就是第一个(最常用的那个)。
推荐做法:把 PATH 同步 + 别名 + 自定义函数全写进
$PROFILE,换电脑时备份这一个文件就行。
7.4 Anthropic 兼容接口原理
Claude Code 客户端发请求用的是 x-api-key 头 + Anthropic Messages API 格式(POST /v1/messages)。国产大模型厂商都在自己的网关上实现了这套协议的兼容层:
┌─────────────────────────────────────┐ │ Claude Code 客户端 │ │ POST /v1/messages │ │ Headers: │ │ x-api-key: sk-xxxxx │ │ anthropic-version: 2023-06-01 │ └──────────────┬──────────────────────┘ │ ▼ ┌──────────────────────────────────────┐ │ 国内厂商的反代网关(兼容层) │ ← ANTHROPIC_BASE_URL 指向这里 │ 把 Anthropic 格式 → 厂商自有协议 │ └──────────────┬───────────────────────┘ │ ▼ ┌──────────────────────────────────────┐ │ 厂商的大模型 │ │ deepseek-chat / MiniMax-M2.5 / ... │ └──────────────────────────────────────┘
所以我们只需要改 BASE_URL + AUTH_TOKEN + MODEL 名称,Claude Code 就能对接任何实现了 Anthropic 兼容接口的服务。
八、常用命令速查表
安装 & 环境
npm config get prefix # 查看 npm 全局安装位置 npm config set prefix "K:\software\npm-global" # 修改全局安装位置 npm install -g @anthropic-ai/claude-code@latest # 安装/更新 Claude Code
Claude Code 使用
claude --version # 查看版本 claude --print "你的问题" # 非交互模式(适合脚本/测试) claude # 进入交互模式
交互模式内命令:
| 命令 | 作用 |
|---|---|
/status |
查看当前模型和 API 端点 |
/help |
查看所有可用命令 |
/clear |
清空对话上下文 |
/compact |
压缩上下文(节省 token) |
Ctrl+C |
退出交互模式 |
配置 & 排查
# 编辑配置文件
notepad "$env:USERPROFILE\.claude\settings.json"
# 编辑 PowerShell 启动脚本
notepad $PROFILE
# 查看当前会话的 PATH
$env:Path
# 从注册表强制刷新当前会话的 PATH
$env:Path = ([Environment]::GetEnvironmentVariable("Path","User") + ";" + `
[Environment]::GetEnvironmentVariable("Path","Machine"))
模型切换
# 备份当前配置 Copy-Item "$env:USERPROFILE\.claude\settings.json" ` "$env:USERPROFILE\.claude\settings.backup.json" # 恢复之前的配置 Copy-Item "$env:USERPROFILE\.claude\settings.backup.json" ` "$env:USERPROFILE\.claude\settings.json" -Force # 验证切换 Get-Content "$env:USERPROFILE\.claude\settings.json" | Select-String "BASE_URL|MODEL"
九、总结与推荐
给同样要折腾的朋友的 5 条忠告
-
国内用 MiniMax,端点必用
api.minimaxi.com,不是.io -
想省 C 盘,npm prefix 必须改,一条命令就能省出几百 MB
-
Windows PATH 缓存是真恶心,
$PROFILE大法一劳永逸 -
闪退就换字体或装 Windows Terminal,别死磕
-
.claude.json别忘了写hasCompletedOnboarding: true,不然每次都弹登录
还没解决的问题(待探索)
-
多模型一键切换 GUI 工具:cc-switch 支持 DeepSeek、MiniMax、智谱、阿里百炼、字节豆包的可视化切换,下次试试
-
Claude Code Skills 插件:官方内置了 docx、pptx、pdf、xlsx 等技能,还没深度用
-
VS Code 集成:Claude Code 有官方 VS Code 插件,配合终端使用应该更顺手
参考资料
参考教程
推荐工具
如果这篇文章帮到了你,欢迎 点赞 、收藏 ⭐、评论 三连~
踩了什么新坑或者有更好的方案?评论区分享一下 🙌
更多推荐

所有评论(0)