前言¶
DeepSeek Harness(DSH)通过向 ctx.llm 注册适配器来接入外部模型,不会自动替你调用 Command Code 官方 CLI。Command Code 的 Go 套餐没有 Provider API(走 https://api.commandcode.ai/provider/v1 会拿到 403 upgrade_required),官方 CLI 改走 POST https://api.commandcode.ai/alpha/generate 这一套未在公开文档里写死的传输。
若你希望在同一套 DSH 工作流里选用 Go 订阅下的模型,又不想单独起反向代理或后台进程,就需要一个能在 DSH 进程内完成协议转换的插件。dsh-commandcode-go(维护者 Hakuzoukyuu)做的就是这件事:Host 侧注册 commandcode-go provider,Client 侧在 Web 界面提供可拖动的用量悬浮窗。仓库当前版本为 0.2.1,许可证 MIT;SkillHub 分类为「模型推理」。它是非官方插件,与 Command Code 官方无关,复刻的是 CLI 使用的 alpha 传输,使用前需自行评估服务条款与协议变更风险。
这是什么¶
dsh-commandcode-go 是标准的 DSH 双半边插件:Host 注册模型 provider 与用量相关路由,Client 在浏览器 overlay 挂载悬浮窗。README 注明实现由 DeepSeek(大肥鱼) 编写。
插件在 DSH 内把 GenerateOptions 转成 CLI 的 alpha envelope,再把 NDJSON 事件流转回 StreamChunk;不是本地 HTTP 反向代理,不需要额外端口或后台进程。
核心功能¶
下面能力与 README 一致,便于对照是否满足你的场景。
模型与推理
- 实时读取 Command Code 模型目录并按套餐过滤;离线时用内置 Go 模型列表兜底。
- 支持文本、图片输入、工具调用、工具结果、reasoning effort、流式输出。
- 正确回放历史 reasoning(DeepSeek thinking 模式下的工具循环需要)。
- 图片按 1568 长边、单张 1 MiB 编码上限压缩;总图片预算 20 MiB。
- 网关级输出上限 131072;
moonshotai/Kimi-K3.1-Pro会自动省略固定 temperature。
配置与 Web
- DSH 根据插件
Configschema 自动生成设置页;apiKey为 write-only secret。 - 可拖动用量悬浮窗:额度、5 小时 / 每周窗口、本期请求与 token 统计(可通过
usageWidget关闭)。
安装与启用¶
安装前请知悉:插件以当前 DSH profile 的进程权限运行,会读取你配置的 API key 或 CLI 登录文件;安装前建议浏览仓库源码与 MIT 许可证。仓库说明当前 npm 包尚未发布,可直接用本地目录安装。
普通 profile(命令行)¶
发布到 npm 后可用包名安装:
dsh plugin --profile <profile> add dsh-commandcode-go
当前可用本地链接方式:
dsh plugin --profile <profile> add link:/absolute/path/to/dsh-commandcode-go
例如:
dsh plugin --profile web add link:~/dsh-commandcode-go
在 Settings → Plugins → Command Code Go 填写 API key(或使用下文所述环境变量 / CLI 登录文件),然后重启或重新加载 profile。
DSH Desktop¶
Desktop 的 desktop profile 由 Electron 管理,dsh plugin --profile desktop 会被拒绝。可手动安装:
- 将整个
dsh-commandcode-go目录复制到~/.dsh/profiles/desktop/node_modules/dsh-commandcode-go。 - 编辑
~/.dsh/profiles/desktop/package.json,在dsh.profile.bundles末尾加入"dsh-commandcode-go"。 - 重启 DSH Desktop;
cordis.patch.yml会把插件插入 loader。
开发时可把目录软链到 node_modules/dsh-commandcode-go,改源码后重启或重载即可。用量悬浮窗是 Client 半边,首次安装或升级后需让 Host 重新加载插件才会出现。
package.json 要求 Node ≥ 20,dsh 版本 >=0.2.1-rc.2 <0.3.0-0。
配置要点¶
| 字段 | 默认值 | 说明 |
|---|---|---|
apiKey |
空 | Command Code API key,通常以 user_ 开头;secret,保存后不回显。 |
apiKeyEnv |
CMD_API_KEY |
apiKey 为空时读环境变量;也会尝试 COMMAND_CODE_API_KEY。 |
baseURL |
https://api.commandcode.ai/provider/v1 |
只取 origin,拼成 /alpha/generate。 |
alphaVersion |
1.88.3 |
作为 x-command-code-version 发送。 |
plan |
individual-go |
模型过滤:individual-go、individual-goat、individual-pro、individual-provider、individual-max、all。 |
models |
[] |
为空用实时目录;非空则严格按给定 id/顺序。 |
defaultMaxTokens |
32768 |
默认输出上限,还会被模型与网关 131072 收紧。 |
defaultContextWindow |
262144 |
目录缺 context_length 时的兜底。 |
streamTimeoutMs |
300000 |
单次 alpha 流超时。 |
retries |
3 |
交给 DSH 的可重试次数。 |
usageWidget |
true |
是否在 Web 显示用量悬浮窗。 |
usageRefreshSeconds |
60 |
悬浮窗自动刷新间隔(15–3600 秒)。 |
典型用法¶
API key 与登录¶
解析顺序:
- Settings 里的
apiKey; apiKeyEnv(默认CMD_API_KEY)及COMMAND_CODE_API_KEY;- Command Code CLI 的
~/.commandcode/auth.json(可用COMMANDCODE_AUTH_FILE指定路径)。
若 Go 订阅只能在官方 CLI 里浏览器登录且没有可读 auth 文件,README 建议改用支持浏览器登录的 @mars-sea/dsh-commandcode-provider。
不要把 API key 提交到仓库。
在 Models 页选模型¶
配置完成后,在 Models 选择 provider commandcode-go,再选任意 Go 模型,例如:
deepseek/deepseek-v4-flashdeepseek/deepseek-v4-promoonshotai/Kimi-K3gpt-6-lunaz-ai/glm-5.3-flash
用量悬浮窗¶
悬浮窗数据来自 Host 只读路由 /dsh-commandcode-go/usage;API key 留在 Host,不进入浏览器。可拖动位置、折叠为悬浮球;刷新间隔受 usageRefreshSeconds 与 Host 约 20 秒缓存约束。关闭 usageWidget 并刷新页面即可隐藏。
适用场景与注意¶
适合谁
- 已订阅 Command Code Go 套餐,希望在 DSH 里统一选模型、走工具与流式对话。
- 需要 Web 端查看额度与窗口用量,又不想把 key 暴露给前端脚本。
务必注意
- alpha 传输未官方文档化,CLI 或上游改版后可能要调
alphaVersion或改适配逻辑;用量接口同理,悬浮窗失败不影响模型调用。 - 仅支持文本/图片;文件由 DSH 转成文本句柄,不作二进制上传。图片只扫消息顶层 content。
- 插件不内置浏览器登录;无 key、无 env、无 CLI auth 时需另选方案或手动配置。
- 与 Command Code 官方无隶属关系;DSH 社区目录(如 SkillHub)也是独立站点,并非 DeepSeek / 幻方官方应用商店。
开发与自测¶
维护者本地测试方式为:
cd dsh-commandcode-go
node --test
更细的模块划分见仓库 docs/architecture.md。
经过上面的步骤,你可以在 DSH 内直接使用 Go 订阅对应的 alpha 传输,并在 Web 端查看用量。插件目录页:SkillHub - dsh-commandcode-go;源码与完整说明:GitHub - Hakuzoukyuu/dsh-commandcode-go。