Skip to content

About

Command Code Go 2 DeepSeek API , 把 Go 套餐变成本地 DeepSeek 官方 API。协议行为与官方逐项对齐。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Command Code Go 2 DeepSeek API

Command Code Go 2 DeepSeek API

MIT Windows 10/11 Node.js 24+ PowerShell 5.1+

DeepSeek V4.1 OpenAI Chat Completions Anthropic Messages OpenAI Responses

快速开始 · 接口 · 客户端 · 与官方文档的差异 · 额度面板 · 配置 · 安全 · 故障排查 · English

把 DeepSeek 官方 API 的三套协议搬到本地,后端是 Command Code Go 套餐:改一个 base_url 就能用,行为按官方文档逐项实测对齐。

为什么这么做

Command Code 的 Go 套餐是 $1 / 月,官方原话是「Your $1 buys $10 of credits」,即 $1 换 $10 额度,十倍杠杆。这些额度按美元计价消耗在模型调用上,可以全部用在 DeepSeek 上:

窗口 上限
5 小时 $3
每周 $6
每月 $10

对照 DeepSeek 官方定价(模型 & 价格),Flash 每百万 token 空闲时段 $0.003(缓存命中)/ $0.15(未命中)/ $0.60(输出),高峰时段翻倍:

项 空闲 高峰
输入 · 缓存命中 $0.003 / 1M $0.006 / 1M
输入 · 未命中 $0.15 / 1M $0.30 / 1M
输出 $0.60 / 1M $1.20 / 1M

按未命中输入算,$10 额度约合 6600 万 token 的月用量;纯输出则约 1600 万。同样的量在官方 API 需要实付 $10。

也就是说:花 $1 拿到官方 $10 的 DeepSeek 用量,代价是走 Command Code 的通道、受套餐窗口限速,而不是直连 DeepSeek 的机房。

Go 套餐本身只对官方 CLI 开放 /alpha/generate,不提供标准 API。本项目补上协议翻译层,让这 $1 的额度能被任何 OpenAI / Anthropic / Responses 兼容的客户端调用——包括 Claude Code、Codex、opencode、pi、DSH。

这不是官方渠道,用量上限、模型可用范围、服务稳定性都取决于 Command Code 而非 DeepSeek,也可能随时变化。它适合个人开发与试验,不适合当作生产依赖。

只对 Go 套餐有意义

Command Code 官方文档写明:除了 Go 套餐,其它套餐都有 API 访问权。

Every plan except the Go plan has API access. Point any OpenAI or Anthropic compatible client at https://api.commandcode.ai/provider/v1

套餐 官方 API 是否需要本项目
Go($1/月) 无 需要
GOAT($10/月,$80 额度) 有 不需要
Pro / Max / Ultra 有 不需要

如果你在用 GOAT 或更高套餐,直接把它们给的 Key 和 https://api.commandcode.ai/provider/v1 填进客户端即可,没有转译损耗,也不需要本地进程。本项目存在的唯一理由,是 Go 套餐 只对官方 CLI 开放私有端点、不提供标准 API。

快速开始

需要 Windows 10/11、PowerShell 5.1+、Node.js 24+。

.\scripts\install.ps1      # 检查环境、生成 config.json
commandcode login          # 登录 CLI,生成 auth.json
.\launch.ps1               # 启动;窗口开着就在跑,关窗即停

启动后面板会列出三个本地地址。可选:

.\scripts\make-shortcut.ps1   # 桌面快捷方式
.\scripts\test-proxy.ps1      # 自检
npm run verify                # 三套协议对齐验证

额度面板:连接地址、模型清单与实测 TPS、三窗口额度

接口

协议 本地地址 官方文档
OpenAI Chat Completions http://127.0.0.1:8787/v1 create-chat-completion
Anthropic Messages http://127.0.0.1:8787 anthropic_api
Responses http://127.0.0.1:8787/v1 responses_api

API Key 填 proxy-managed(哨兵值,网关替换成 auth.json 里的真实密钥)。留空同样可用;填别的值会被当作你自己的上游密钥原样转发,鉴权失败时返回 401。

模型名可写 deepseek-v4-flash、deepseek-v4.1-flash 或 deepseek-flash。按官方文档,deepseek-flash 指向 V4.1-Flash,本项目对齐这一语义;deepseek-v4-flash 与 deepseek-v4.1-flash 是上游两个独立模型,各自可直接调用。/v1/models 会列出全部可用模型及上下文窗口。

图片输入:deepseek-v4.1-flash、deepseek-v4.1-flash-fast、deepseek-v4-flash-vision-exp 支持,deepseek-v4-flash 与 deepseek-v4-pro 看不到图(会回「没有图片」)。三套协议都能传图,Base64 data URL 与 http(s) 链接均可。

客户端

官方为 8 个 Agent 提供了接入指南。本项目不重写这些配置——按官方文档配好, 只把 base URL 换成本地地址即可,协议行为一致。

Agent 官方接入文档 本地要改的
Claude Code claude_code ANTHROPIC_BASE_URL → http://127.0.0.1:8787
Codex codex base_url → http://127.0.0.1:8787/v1
OpenCode opencode baseURL → http://127.0.0.1:8787/v1
Hermes hermes Base URL → http://127.0.0.1:8787/v1
OpenClaw openclaw Base URL → http://127.0.0.1:8787/v1
Qoder qoder 自定义模型的 Base URL → http://127.0.0.1:8787/v1
Reasonix reasonix 首次向导里的 Base URL → http://127.0.0.1:8787/v1
WorkBuddy / CodeBuddy workbuddy models.json 里的 url → http://127.0.0.1:8787/v1/chat/completions

API Key 一律填 proxy-managed。

用 CC Switch 一键切换

CC Switch 支持 10 个客户端,其中 8 个走 DeepSeek 预设时可以直接指向本地。复制对应的 DeepSeek 预设,只改地址:

CC Switch 里的客户端 改哪个字段 值
Claude Code ANTHROPIC_BASE_URL http://127.0.0.1:8787
Claude Desktop 模型映射的 Base URL http://127.0.0.1:8787
Codex TOML 的 base_url http://127.0.0.1:8787/v1
OpenCode options.baseURL http://127.0.0.1:8787/v1
OpenClaw 供应商 Base URL http://127.0.0.1:8787/v1
Hermes base_url http://127.0.0.1:8787/v1
Pi baseUrl http://127.0.0.1:8787/v1
MiniMax Code 模型配置的 Base URL http://127.0.0.1:8787/v1

Gemini CLI 与 Grok Build 走各自的 Native 协议,本项目未实现,不能指向本地。

三个会踩的坑

Claude Code 的上下文声明:它按内置模型目录判断窗口,遇到没见过的模型名会退回 200k 并告警。 在模型名后加 [1M] 声明真实窗口即可,这个后缀不会发给上游:

$env:ANTHROPIC_MODEL = "deepseek-v4-flash[1M]"

也可以用 CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000。

OpenCode 的模型 id 不能带斜杠:它用 provider/model 寻址,斜杠会被当层级分隔符, 把 deepseek-v4-flash 之外的写法(如带 / 的)写进 models 会被截断导致 403。 用扁平的 deepseek-v4-flash,调用时 --model ccgo/deepseek-v4-flash。

pi / DeepSeek Harness 按 URL 判断供应商:两者底层同为 pi-ai,会看 base URL 里有没有 deepseek.com 来决定思考格式。本地地址不含该串,需显式声明 compat:

{
  "compat": {
    "thinkingFormat": "deepseek",
    "requiresReasoningContentOnAssistantMessages": true,
    "requiresThinkingAsText": false,
    "maxTokensField": "max_tokens",
    "supportsReasoningEffort": true
  }
}

pi 的配置放 $env:PI_CODING_AGENT_DIR\models.json。

与官方文档的差异

三套协议逐项实测,npm run verify 可复现:

PASS  OpenAI Chat Completions  差异 0
PASS  Anthropic Messages       差异 0
PASS  Responses                差异 0

需要知道的偏差,全部源于上游通道的能力边界:

项 说明
计费 套餐窗口额度($3 / $6 / $10),非官方按 token 计费
logprobs / top_logprobs 上游不返回,响应中为空
n > 1 只返回 1 条
web_search 工具 上游无服务端搜索,忽略
Files API 无文件存储,未实现
FIM 补全(/beta) 上游无该端点,未实现
上下文硬盘缓存 由上游内部管理,不可控

官方本身标注为「忽略」的字段,本项目同样忽略、不报错。这类字段在各协议官方文档的兼容性小节里都有列表,实现时逐条对齐,未额外增减。

额度面板

启动后显示静态面板,不自动刷新。测速不自动执行——TPS 栏启动时为 -,按 T 才测,因为每次测速都消耗额度。

按键 作用
R 刷新额度与实际用量
T 测速(消耗少量额度)
Q 退出并停止

面板分四块:三套协议的本地地址、模型清单(上下文 + 实测 TPS)、三窗口额度(已用 / 剩余 / 进度 / 重置时间)、运行状态。TPS 达到阈值标绿、偏低标黄;E 表示测速失败。

数据来源:模型清单与上下文来自上游 /provider/v1/models,窗口上限与已用量来自 /alpha/billing/credits(上限由服务端下发,不写死),套餐名与月总额按 planId 映射。

实现

单进程、单端口,三套协议共用一条上游通道。协议层自研,无第三方依赖。

vendor/
  wire.mjs       upstream protocol: headers, wire messages, NDJSON events
  translate.mjs  OpenAI Chat / Anthropic Messages  <->  wire
  responses.mjs  OpenAI Responses                  <->  wire
  server.mjs     HTTP routing for all three

字段布局来自对官方 CLI 发布产物的静态分析,逐条记录在 docs/COMMAND-CODE-PROTOCOL.md。与早期依赖第三方包 的实现相比,自研版对齐了几处此前偏离的细节:

项 早期实现 现在
User-Agent 仿造的 CLI 字符串 官方值 cli
图片块 无 mimeType 带 mimeType
traceparent 自造格式 标准 W3C 00-<trace>-<span>-01
截断检测 无 无 finish 且无 abort → 可重试 502
推理 token 恒为 0 从 outputTokenDetails.reasoningTokens 提取
Responses 端口 独立 8788 进程 与另两套同端口

验证分两档:

npm run verify:offline   # 离线:mock 上游,15 项断言,零额度消耗
npm run verify           # 真实:连上游逐项对齐,3/3 通过,消耗少量额度

改代码后用离线验证,它跑的是同一套协议翻译逻辑,只是上游换成本地 mock —— 不需要凭据、不消耗套餐额度、秒级完成。真实验证只在需要确认「与官方对齐」时跑。

npm run mock             # 单独启动 mock 上游(默认 :8799)
node tools/mock-upstream.mjs --scenario truncated   # 制造流截断场景
node tools/mock-upstream.mjs --scenario error       # 制造上游错误

除三套协议外还提供两个查询端点:

端点 用途
GET /user/balance 官方 /user/balance 形状,返回剩余额度
GET /user/quota 本项目形状,含 5 小时 / 每周窗口的已用、上限、重置时刻

请求日志默认开启,每请求写一行 JSON Lines 到 ~/.commandcode/ccgo2dsapi-requests.log; --request-log <path> 改路径,--request-log off 关闭:

{"ts":"2026-10-21T17:56:59Z","protocol":"openai","model":"deepseek/deepseek-v4.1-flash","stream":false,"status":200,"in":35,"out":8,"reasoning":0,"ms":52}

上游 429 / 5xx 会自动指数退避重试 2 次(--retries 可调), 额度耗尽等终态错误不重试。

/user/quota 的返回示例:

{
  "plan_id": "individual-go-v1",
  "credits": { "monthly": 5.35, "purchased": 0, "free": 0, "total": 5.35 },
  "windows": {
    "five_hour": { "used": 1.64, "cap": 3, "percent": 55, "reset_at": 1792602021321 },
    "weekly":    { "used": 4.65, "cap": 6, "percent": 77, "reset_at": 1793170293513 }
  }
}

配置

config.json(由 config.example.json 复制,已加入 .gitignore)。

字段 说明
Port / HostAddress 主代理监听,默认 8787 / 仅回环
AuthFile 凭据路径,支持环境变量
Upstream.* 上游接口,换服务时改这里
Panel.ModelFilter 模型过滤正则,默认只匹配 DeepSeek
Panel.SpeedTestModels 测速范围,留空表示全部
PlanCredits 各套餐月额度总额(服务端不下发此项)

安全

默认只监听 127.0.0.1,不要改成 0.0.0.0。不要共享密钥——上游按密钥绑定设备指纹,多机并发最容易触发风控。凭据只从 CLI 维护的 auth.json 读取,不上传;进程内缓存一份,设 CCGO_NO_CACHE 可强制重读(密钥轮换后无需重启)。

上游协议层是本项目自研的(vendor/),不依赖任何第三方 Command Code 包,也没有需要重打的补丁。协议依据来自 官方 CLI 的静态分析。早期版本曾依赖并被 commandcode-api-proxy(MIT, 作者 thaolaptrinh)启发,署名保留在 THIRD_PARTY_NOTICES.md。

使用者需自行承担账号受限、套餐终止等后果。

故障排查

现象 原因
TPS 显示 - 尚未测速,按 T
TPS 显示 E 测速失败,多为该模型不在套餐内
看不到思考内容 请求未带 reasoning_effort,或值为 none
401 填了非 proxy-managed 的 key,且上游拒绝了它
403 / model not recognized 模型名不对或不在套餐内
模型反复重新推理同一件事 历史思维链没进上下文。必须同时满足:请求带 tools 且回传 reasoning_content,缺任一条都无效(180 次实验结论,见协议文档)
maximum context length 会话超出 1000000 token 窗口,需精简历史或调小 max_tokens
端口被占用 启动器会自动接管本项目的旧实例;若占用者是别的程序,用 -Port 换端口

卸载

.\scripts\stop-proxy.ps1
.\scripts\make-shortcut.ps1 -Remove

删除项目目录即可。不写注册表、不装系统服务、不改 PATH。

License

MIT

About

Command Code Go 2 DeepSeek API , 把 Go 套餐变成本地 DeepSeek 官方 API。协议行为与官方逐项对齐。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages