Claude Code / Codex / WorkBuddy 配置全流程
场景:你已经在用某个编程 Agent,但想换成更省的方式调用模型——不改工作流,只改一条配置。
适用:Claude Code、Codex、WorkBuddy 用户。全部配置均为官方支持的标准字段,不修改客户端程序本身。
Claude Code 读取 ~/.claude/settings.json 的 env 段。写入以下 7 个键(其余设置项原样保留):
{
"env": {
"ANTHROPIC_BASE_URL": "https://starseaapi.com",
"ANTHROPIC_AUTH_TOKEN": "你的Key",
"ANTHROPIC_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4.1-flash",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
Windows 一键写入(PowerShell):
$dir = Join-Path $env:USERPROFILE ".claude"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
$file = Join-Path $dir "settings.json"
$cfg = if (Test-Path $file) { Get-Content $file -Raw | ConvertFrom-Json } else { New-Object PSObject }
$env_obj = @{
ANTHROPIC_BASE_URL = "https://starseaapi.com"
ANTHROPIC_AUTH_TOKEN = "你的Key"
ANTHROPIC_MODEL = "claude-sonnet-5"
ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-5-5"
ANTHROPIC_DEFAULT_SONNET_MODEL = "claude-sonnet-5"
ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-v4.1-flash"
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
}
if ($cfg.PSObject.Properties.Name -contains "env") {
$env_obj.GetEnumerator() | ForEach-Object { $cfg.env | Add-Member -Force -NotePropertyName $_.Key -NotePropertyValue $_.Value }
} else {
$cfg | Add-Member -NotePropertyName env -NotePropertyValue $env_obj
}
$cfg | ConvertTo-Json -Depth 10 | Set-Content $file -Encoding UTF8
Write-Host "已写入 $file,请重启 Claude Code"
macOS / Linux 一键写入(bash):
mkdir -p ~/.claude
python3 - <<'PY'
import json, os
f = os.path.expanduser("~/.claude/settings.json")
cfg = json.load(open(f)) if os.path.exists(f) else {}
cfg.setdefault("env", {}).update({
"ANTHROPIC_BASE_URL": "https://starseaapi.com",
"ANTHROPIC_AUTH_TOKEN": "你的Key",
"ANTHROPIC_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4.1-flash",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
})
json.dump(cfg, open(f, "w"), indent=2, ensure_ascii=False)
print("已写入", f)
PY
写完必须重启 Claude Code。 生效后 Opus / Sonnet / Haiku 三档自动映射到上表指定的模型;切换用其内置
/model命令。⚠️ 为什么设
DEFAULT_HAIKU_MODEL:Haiku 档承担 Claude Code 的后台轻量任务(如文件摘要、命令补全建议),调用量大。指向deepseek-v4.1-flash(¥1/¥4 每百万字)可显著降低成本,且不影响主对话体验。
Codex CLI 自 0.147 起只接受 wire_api = "responses"(旧 chat 协议已被官方移除)。
编辑 ~/.codex/config.toml:
model_provider = "starsea"
model = "gpt-6.1-sol"
[model_providers.starsea]
name = "starsea"
base_url = "https://starseaapi.com/v1"
wire_api = "responses"
env_key = "STARSEA_API_KEY"
然后设置环境变量:export STARSEA_API_KEY="你的Key"(Windows:setx STARSEA_API_KEY "你的Key")。
⚠️ 关键点:
wire_api必须是responses。站内/v1/responses端点已实测可用。
WorkBuddy 读取 ~/.workbuddy/models.json——必须是裸数组(顶层直接是 [)。
基本配置样例(三款模型):
[
{
"id": "claude-sonnet-5",
"name": "claude-sonnet-5",
"apiKey": "你的Key",
"vendor": "starsea",
"url": "https://starseaapi.com/v1",
"supportsToolCall": true,
"supportsImages": true,
"supportsReasoning": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 128000
},
{
"id": "deepseek-v4.1-flash",
"name": "deepseek-v4.1-flash",
"apiKey": "你的Key",
"vendor": "starsea",
"url": "https://starseaapi.com/v1",
"supportsToolCall": true,
"supportsImages": true,
"supportsReasoning": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 393216
}
]
Python 一键生成全量(71 款模型,读站内实时清单):
import json, urllib.request, os
KEY = "你的Key"
BASE = "https://starseaapi.com"
models = json.loads(urllib.request.urlopen(BASE + "/v1/models").read())["data"]
out = [{"id": m["id"], "name": m["id"], "apiKey": KEY, "vendor": "starsea",
"url": BASE + "/v1", "supportsToolCall": True, "supportsImages": True,
"supportsReasoning": True, "maxInputTokens": 1000000, "maxOutputTokens": 128000}
for m in models]
path = os.path.expanduser("~/.workbuddy/models.json")
if os.path.exists(path):
os.rename(path, path + ".bak")
json.dump(out, open(path, "w", encoding="utf-8"), ensure_ascii=False, indent=2)
print(f"已写入 {len(out)} 款模型 -> {path},重启 WorkBuddy 生效")
⚠️ 踩坑警示:该文件必须是裸数组。若写成
{"models":[...]}(对象包裹),客户端会被整份静默清空。
配置完成后,用这段代码验证连通性(不依赖任何客户端):
import json, urllib.request
KEY = "你的Key"
req = urllib.request.Request(
"https://starseaapi.com/v1/chat/completions",
data=json.dumps({"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "回复两字:正常"}],
"max_tokens": 20}).encode(),
headers={"Authorization": "Bearer " + KEY, "Content-Type": "application/json"})
print(json.loads(urllib.request.urlopen(req, timeout=60).read())["choices"][0]["message"]["content"])
输出 正常 即接入成功。
| 项 | 结果 |
|---|---|
claude-sonnet-5 调用 |
✅ 成功,3.3s,返回「好」 |
claude-opus-5-5 调用 |
✅ 成功,2.5s |
deepseek-v4.1-flash 调用 |
✅ 成功,0.9s |
Anthropic 协议 /v1/messages |
✅ 可用(Claude Code 依赖此协议) |
成本参考(站内实时定价):
- claude-sonnet-5:输入 ¥13 / 输出 ¥65(每百万字)
- claude-opus-5-5:输入 ¥26 / 输出 ¥130
- deepseek-v4.1-flash:输入 ¥1 / 输出 ¥4
按典型编码会话(输入 5 万 token / 输出 3000 token 计):用
claude-sonnet-5约 ¥0.85/会话;把后台任务交给deepseek-v4.1-flash后综合成本还可再降。
1. 在 Key 服务台创建一把 Key
2. 把代码里的 你的Key 替换为实际 Key
3. 直接运行即可
每篇配方均经真实调用实测 · 返回配方库 · 前往 Key 服务台