方案概览
我们采用非侵入式的配置方案——新增一个 claude-ds 命令,与原有的 claude 命令互不干扰:
| 命令 | 后端 | 说明 |
|---|---|---|
claude | Anthropic 订阅 | 保持不变,日常正常使用 |
claude-ds | DeepSeek V4 | 新增,专门走 DeepSeek API |
原理很简单:在 ~/.zshrc 中定义一个 shell 函数,用命令前缀的形式注入环境变量。这些变量只对该次 claude 进程生效,不会泄漏到当前 shell,也不会和 .zshrc 中已有的 unset ANTHROPIC_* 产生冲突。~/.claude/settings.json 完全不动,随时可逆。
前置条件
开始之前,请确保满足以下条件:
- 已安装 Claude Code CLI(本指南基于版本
2.1.185,安装路径/opt/homebrew/bin/claude)。 - 拥有一个有效的 DeepSeek API Key(格式为
sk-xxxxxxxx...),可在 DeepSeek 平台 创建。 - Shell 为
zsh,配置文件为~/.zshrc(macOS 默认即如此)。
核心配置参数
下面是需要设置的环境变量,每一项都对应一个明确的用途:
| 环境变量 | 值 | 作用 |
|---|---|---|
ANTHROPIC_BASE_URL | https://api.deepseek.com/anthropic | DeepSeek 的 Anthropic 兼容端点 |
ANTHROPIC_AUTH_TOKEN | <你的 DeepSeek API Key> | 认证令牌(切勿泄露) |
ANTHROPIC_MODEL | deepseek-v4-pro[1m] | 默认主模型(1M 长上下文版) |
ANTHROPIC_DEFAULT_OPUS_MODEL | deepseek-v4-pro[1m] | 选 Opus 时映射到此模型 |
ANTHROPIC_DEFAULT_SONNET_MODEL | deepseek-v4-pro[1m] | 选 Sonnet 时映射到此模型 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | deepseek-v4-flash | 轻量 / 快速任务模型 |
CLAUDE_CODE_SUBAGENT_MODEL | deepseek-v4-flash | 子代理(subagent)使用的模型 |
即使 settings.json 中写了 "model": "opus",由于设置了 ANTHROPIC_DEFAULT_OPUS_MODEL,Opus 选择会被自动映射到 deepseek-v4-pro[1m],无需改动 settings。
安装步骤
在 ~/.zshrc 中追加以下函数(建议紧接原有 Anthropic 相关的 unset 段之后)。记得将 <在此填入你的_DeepSeek_API_Key> 替换为真实的 API Key:
# ---- DeepSeek V4 backend for Claude Code (switchable) ----
claude-ds() {
ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" \
ANTHROPIC_AUTH_TOKEN="<在此填入你的_DeepSeek_API_Key>" \
ANTHROPIC_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" \
command claude "$@"
}
保存后执行以下命令使其生效:
source ~/.zshrc
这里使用 command claude 而非直接 claude,是为了绕过可能存在的同名 shell 别名,确保调用到真正的 CLI。
使用方式
配置完成后,你可以这样使用:
claude-ds # 启动走 DeepSeek V4 的 Claude Code
claude-ds --resume # 恢复上次会话
claude-ds "帮我看下这个 bug" # 直接带 prompt 启动
claude # 不变,仍走 Anthropic 订阅验证测试
检查 .zshrc 语法
首先确认你的配置文件语法没有错误:
zsh -n ~/.zshrc && echo "OK: .zshrc 语法无误"
预期输出:OK: .zshrc 语法无误
实测 DeepSeek Anthropic 兼容接口
用 curl 直接测试 API 端点是否正常工作(替换 <你的_DeepSeek_API_Key> 为真实密钥):
curl -sS -w "\n[HTTP %{http_code}]\n" https://api.deepseek.com/anthropic/v1/messages \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "authorization: Bearer <你的_DeepSeek_API_Key>" \
-d '{"model":"deepseek-v4-pro[1m]","max_tokens":32,"messages":[{"role":"user","content":"reply with exactly: pong"}]}' \
--max-time 45
实测返回 HTTP 200,模型字段为 deepseek-v4-pro,内容正确返回 pong,证明认证、端点和模型名 deepseek-v4-pro[1m] 全部可用。
响应示例:
{
"type": "message",
"role": "assistant",
"model": "deepseek-v4-pro",
"content": [
{ "type": "thinking", "thinking": "..." },
{ "type": "text", "text": "pong" }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 10, "output_tokens": 31 }
}模型名称说明
DeepSeek V4 系列的模型名称有几个细节需要注意:
deepseek-v4-pro[1m]:DeepSeek V4 Pro 的 1M 长上下文版本,[1m]后缀是官方模型名的组成部分,不要去掉。deepseek-v4-flash:轻量、快速、成本更低的版本,适合子代理和简单任务。- 旧模型名弃用:
deepseek-chat和deepseek-reasoner将于 2026 年 7 月 24 日弃用,届时会被路由到 V4-Flash。本配置已直接使用新名称deepseek-v4-*,无需后续迁移。
详见 Models & Pricing | DeepSeek API Docs。
卸载与撤销
如果你希望移除 DeepSeek V4 配置,只需删除 ~/.zshrc 中 claude-ds() { ... } 函数定义,然后执行:
source ~/.zshrc
由于全程未改动 ~/.claude/settings.json,删除函数后即完全恢复到配置前的状态。
安全建议
API Key 是敏感凭据,应当像密码一样对待:
- 切勿将 Key 提交到 Git 仓库、分享到聊天记录、截图或任何公开场合。
- 当前方案将 Key 以明文存放在
~/.zshrc中(文件权限建议设为600,仅本人可读)。 - 如果 Key 曾在不安全渠道出现过,强烈建议立即轮换:
- 前往 DeepSeek API Keys 管理页 吊销旧 Key;
- 创建一个新 Key;
- 更新
~/.zshrc中ANTHROPIC_AUTH_TOKEN的值; - 执行
source ~/.zshrc使其生效。
进阶:更安全的密钥存放方式
如果不想将 Key 以明文直接写在 ~/.zshrc 中,可以改为从独立文件读取,便于权限隔离和版本控制排除:
# 1) 把 key 存到单独文件并收紧权限
# echo 'sk-...' > ~/.config/deepseek/api_key && chmod 600 ~/.config/deepseek/api_key
claude-ds() {
ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" \
ANTHROPIC_AUTH_TOKEN="$(cat ~/.config/deepseek/api_key)" \
ANTHROPIC_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" \
CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" \
command claude "$@"
}
macOS 用户还可以使用系统钥匙串(security 命令)存取密钥,进一步避免明文落盘。
References
DeepSeek. "Anthropic API." DeepSeek API Docs, link.
DeepSeek. "Integrate with Claude Code." DeepSeek API Docs, link.
DeepSeek. "Models & Pricing." DeepSeek API Docs, link.