前言¶
DeepSeek Harness(dsh)把模型适配、工具、会话和界面都做成插件。官方仓库的说法是 Everything is a Plugin:换一套模型提供方,通常不需要改 Harness 源码,只要往当前 profile 里加一层 bundle。社区里已经有人把各类云厂商、代理和本地模型接到这条缝上。
Command Code 是另一套带订阅额度的多模型网关。账号里往往同时能看到 DeepSeek、Qwen、Kimi、MiniMax,以及按套餐开放的 Claude / GPT / Gemini / Grok。很多人希望这些额度直接在 dsh web 里用,而不是再开一份 CLI。Command Code 对外有一套 OpenAI / Anthropic 兼容的 Provider API;它自己的 CLI 实际走的是另一条生成接口 POST /alpha/generate。
dsh-commandcode-provider 接的是后一条路:在 DeepSeek Harness 里注册原生的 commandcode 提供方,把对话请求翻译成 CLI 使用的生成接口。它不是 DeepSeek 或 Command Code 的官方插件,社区目录 deepseek-harness-plugin.com 也只是独立收录站点,和 DeepSeek / 幻方没有从属关系。
这是什么¶
dsh-commandcode-provider 是一款 模型与提供方 插件,由 Mars-Sea 维护,npm 包名是 @mars-sea/dsh-commandcode-provider(裸名 dsh-commandcode-provider 已被无关包占用)。当前仓库 package.json 与 npm 页面上的版本是 0.4.0(2026-08-17 发布),许可证是 MIT。社区目录页把许可证标成 NOASSERTION,以仓库里的 LICENSE 和 package.json 为准。
它移植自 pi-commandcode-provider(同样 MIT)。README 写明:请求格式对应官方 CLI command-code@1.26.0,由原 pi 插件逆向得到。这是社区集成,需要你自己的 Command Code 账号、API key 或订阅,并遵守对方服务条款;项目与 Command Code, Inc. 无关。
目录页上有一句「让 Command Code 直接使用 DeepSeek Harness 的模型」。按仓库 README 和 package.json 的 description,方向其实相反:是让 DeepSeek Harness 去调用 Command Code 账号里的模型。下文以仓库一手说明为准。
核心功能¶
按仓库 README 与 0.4.0 的 CHANGELOG,已经核实的能力可以分成下面几块。
1、实时模型目录¶
插件注册 commandcode 路由后,会请求 GET {apiBase}/provider/v1/models 拉当前目录,缓存在 ~/.commandcode/models-cache.json。目录端点是公开的,没有 key 也能浏览;真正发推理要走 POST /alpha/generate,这一步需要密钥。
选择器里每个模型会带一批标注:包含它的最低套餐(KNOWN_PLANS)、活动折扣或 FREE 徽章(过期折扣会自行隐藏)、按时段计价模型的 Peak / Half、Vision 模型的 Image,以及上下文长度(1M / 256K / 262K)。列表按套餐排序:Go → GOAT → Pro → Provider/Max,当前套餐能用的排在前面。
0.4.0 起,选择器默认会藏掉超出你订阅档位的模型。判断依据是账户账单状态。账单接口不可用、套餐未知,或账户里有按需余额(官方 CLI 把这当成解锁全部模型)时,插件会失败开放,继续展示完整目录;服务端仍是最终闸门,不在套餐内会返回 MODEL_NOT_IN_PLAN(403)。设置页可以关掉「隐藏套餐外模型」,或在配置里写 filterModelsByPlan: false。
2、专属设置页和 Models 卡片¶
安装并重启 Web 应用后:
- 设置 → Command Code:API key 输入框、API 地址、工作目录、请求/流超时,「隐藏套餐外模型」开关。密钥走 dsh 凭据服务,写入
$DSH_HOME/.credentials.yaml,只写不回显;连接参数写进llm-commandcode段,对下一次请求生效,不用重启。 - 配好 key 之后,同一页顶部会出一张 账户用量 卡片:请求统计、额度、5 小时/周窗口进度条、套餐徽章和账期截止。数据在宿主进程里拉取,浏览器不持有 key。
- 设置 → Models:出现 Command Code 卡片;模型选择器在
commandcode下列出实时目录。
3、推理强度和图片¶
官方目录标了 reasoning 的模型,插件按 KNOWN_EFFORTS(与 command-code@1.26.0 对齐)暴露 reasoning-effort。没有分档、但仍会思考的模型会自动思考,行为和官方 CLI 一致。
带 Vision 能力的模型可以通过 dsh 附件服务发图片;纯文本模型会明确拒绝(UNSUPPORTED_CONTENT),不会把图片悄悄丢掉。官方 CLI 对纯文本模型还有一层客户端 VISION 副调用,这个插件 不复现,需要换带 Image 标记的模型。
4、密钥解析顺序¶
同一把 key 可以从多处来,优先级是:
- 组合配置里的字面量
config.apiKey - 凭据引用
apiKeyEnv(默认COMMANDCODE_API_KEY) - 启动时的环境变量
- 官方 CLI 登录文件
~/.commandcode/auth.json(command-code login/cmd login写入)
最后这一档是兜底。如果卡片显示「未配置」但请求其实能发出去,多半是走了 auth.json,把 key 再贴进设置页一次即可。
安装与启用¶
插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前先看仓库源码和许可证;要可复现安装,请固定 commit 或版本号。
社区目录页给出的安装命令是:
dsh plugin add github:Mars-Sea/dsh-commandcode-provider
固定某一提交时,目录页的写法是:
dsh plugin add github:Mars-Sea/dsh-commandcode-provider#commit
把 #commit 换成完整 SHA。不加后缀会跟随默认分支,后面一次 push 就可能改变你实际装到的内容。
仓库 README 更推荐从 npm 装到 web profile(客户端声明了 "platform": "web"):
dsh plugin --profile web add @mars-sea/dsh-commandcode-provider
当前 npm 版本是 0.4.0,需要钉死版本时:
dsh plugin --profile web add @mars-sea/dsh-commandcode-provider@0.4.0
从 GitHub 装的是源码,包的 prepare 脚本会在安装后构建 lib/。pnpm 10 及以上默认拦住这个脚本,需要把 pnpm 打印的包 key 写进 ~/.dsh/profiles/web/pnpm-workspace.yaml 的 allowBuilds,再重新 add。日常使用走 npm 可以避开这一步。
装完后验证合成层,再启动(或重启)Web UI:
dsh --profile web --dump-config
dsh web
--dump-config 里应出现 # == @mars-sea/dsh-commandcode-provider 这一层。cordis.patch.yml 里的 name 必须是带引号的完整包名:
- insert:
- id: llm-commandcode
name: "@mars-sea/dsh-commandcode-provider"
config:
apiKeyEnv: COMMANDCODE_API_KEY
写成裸名 dsh-commandcode-provider 会在启动时报 ERR_MODULE_NOT_FOUND;@ 开头的标量若不加引号,YAML 解析会失败。这两种情况在 0.1.6 及更早的手改配置里出现过,升级时如果曾经把旧 patch 行复制进自己的 profile,需要改成上面这一段,或直接删掉那份拷贝。
卸载用 scoped 名,凭据和 ~/.commandcode/auth.json 不会被删:
dsh plugin --profile web remove @mars-sea/dsh-commandcode-provider
典型用法¶
下面步骤都来自仓库 README,可以按原样做一遍。
1、准备 API key¶
Command Code 的 API key 文档写明永不过期。官方 CLI 需要 Node.js 22+(插件 engines 同样要求 node >= 22):
npm i -g command-code@latest
cmd login # macOS / Linux;Windows 原生版用 cmdc login
浏览器登录成功后,key 写到 ~/.commandcode/auth.json。也可以在 Command Code Studio 新建一把,粘贴到 设置 → Command Code,或:
export COMMANDCODE_API_KEY="user_..."
2、在界面里接上提供方¶
重启 dsh web 之后:
- 打开 设置 → Command Code,填入 API key,点保存。徽章变成「已配置」表示宿主已经存下密钥。
- 打开 设置 → Models,应看到 Command Code 卡片。
- 在模型选择器的
commandcode分组里选一个当前套餐包含的模型,发一条消息。
README 给的入门级例子是 deepseek/deepseek-v4-flash。开放权重模型(DeepSeek / Qwen / Kimi / MiniMax)通常可用;Claude / GPT / Gemini / Grok 这类前沿模型可能要 Pro / Max,或走按需额度。
3、看用量¶
标准 web profile 带 commands 服务。对话里输入:
/commandcode
或 /commandcode status。输出和设置页的账户用量卡片同源:账号、请求数、花费、额度、窗口限制。某个账户接口临时失败时,其余项仍会显示,并在末尾注明失败。
4、需要改连接参数时¶
同一组选项也可以写在 $DSH_HOME/settings.yaml,按请求覆盖,不用重启:
llm-commandcode:
apiKeyEnv: COMMANDCODE_API_KEY
apiBase: https://api.commandcode.ai
workingDir: /path/to/project
modelsCachePath: ~/.commandcode/models-cache.json
requestTimeoutMs: 60000
streamIdleTimeoutMs: 300000
workingDir 可选,留空则用进程当前工作目录,并上报给 Command Code API。requestTimeoutMs 是等待首个响应字节的上限,默认 60 秒;streamIdleTimeoutMs 是流停顿多久算死连接。0.2.3 起默认 300 秒,避免 xhigh / max 这类长时间静默思考被看门狗误判。网络慢但稳定时,可以在设置页把这两个值再调大。
适用场景与注意事项¶
适合这些人:
- 已经有 Command Code 订阅,希望在
dsh web里直接选模型、改推理强度,而不是只在官方 CLI 里用 - 需要实时目录、套餐过滤、用量卡片,而不是在配置文件里手写一份模型列表
- 入门套餐主要用开放权重模型,偶尔再按套餐或按需额度点开前沿模型
使用前注意下面几条,均来自目录页安全提示和仓库 README,不是额外发挥。
- 权限。 插件以当前 dsh 进程权限运行,安装可能执行构建脚本。先核对 GitHub 仓库和 MIT 许可证;生产环境用版本号或 commit 哈希钉死。
- 这不是官方应用商店。 DeepSeek Harness 官方只提供插件机制和
dsh-plugintopic;社区目录 是独立站点。插件本身也声明与 Command Code, Inc. 无关。 - 套餐仍由服务端裁决。 选择器过滤会失败开放,真正拦住不在套餐内的模型的是
403 MODEL_NOT_IN_PLAN。 - 图片。 只有官方注册表标了 Vision 的模型收图片,且依赖 dsh 附件服务。会话里已经有图时,切到纯文本模型会被 Harness 层拒绝;插件只会把提示改写成更清楚的中文,拦不住这次切换。
- 协议能力。 线上格式没有
stop序列,带了会抛UNSUPPORTED_OPTION。推理块不会重放到后续轮次,只有带配对结果的工具调用会重放。 - 网络。 默认只访问
api.commandcode.ai(可用apiBase改)。Node 的fetch/ undici 不读HTTP_PROXY/HTTPS_PROXY,需要代理的环境会表现为传输层失败(ECONNREFUSED、ENOTFOUND、socket hang up等),而浏览器访问同一站点却正常。README 建议配 dispatcher,或把该主机加入白名单。 - 无遥测。 本地会兜底读取
~/.commandcode/auth.json,读写模型缓存;密钥经凭据服务读取,README 写明不打进日志。
小结¶
dsh-commandcode-provider 在 DeepSeek Harness 的 web profile 里补了一个 commandcode 提供方:实时目录、套餐感知的选择器、reasoning-effort、Vision 图片,以及设置页上的密钥和用量卡片。它把 dsh 的请求接到 Command Code CLI 使用的 /alpha/generate,让已有订阅可以留在 Harness 里用,而不必再维护一份手写模型表。
装的时候优先 npm 包 @mars-sea/dsh-commandcode-provider,并固定版本;从 GitHub 装则按目录页命令加上 commit。装前检查源码和 MIT 许可证,记住插件与当前 dsh 进程同权。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-commandcode-provider/
GitHub:https://github.com/Mars-Sea/dsh-commandcode-provider
npm:https://www.npmjs.com/package/@mars-sea/dsh-commandcode-provider