← Back to home@jiesou

dsh-commandcode-go-provider

Command Code Go API provider for dsh. Command Code 订阅 + DeekSeek Harness 兼容层

Stars
16
Language
TypeScript
Created
Aug 14, 2026
Updated
Sep 16, 2026

Introduction

dsh-commandcode-go-provider

Command Code Go API provider for dsh.

English

Command Code 提供的订阅分两种:

  1. Provider API:提供标准 OpenAI 兼容端点,可以直接接入任何 agent harness,不需要第三方插件。
  2. Go / GOAT / Pro Plan:调用 Provider API 端点会返回 403 upgrade_required,只能通过 Command Code 私有的 CLI 网关 /alpha/generate 使用(vendor lock-in)。

本插件针对第二种情况:通过 /alpha/generate 流式接入 DSH 的原生 LlmAdapter,让 Go / GOAT / Pro Plan 用户直接在 DSH 中使用订阅的模型。模型列表不写死在代码里,插件在启动时从 /provider/v1/models 拉取实时目录,并按官方 CLI catalog (CDN) 的 Min plan 列筛选:

  • 只保留 Min plan 为 Go and above 的模型(计划顺序 Go < GOAT < Pro < Max),Go 计划包含的 premium 例外(GPT-5.6 Luna、Grok 4.5、Muse Spark 1.2 Contributor)自然落在其中,无需维护品牌名单。
  • 同一份 catalog 还提供每个模型支持的 Reasoning Effort 档位。

安装

从 npm 安装(预构建产物,推荐):

dsh plugin --profile web add @jiesou/dsh-commandcode-go-provider

或从 GitHub 安装:

dsh plugin --profile web add github:jiesou/dsh-commandcode-go-provider

安装之后

Command Code 的 API Key 应写入 ~/.dsh/.credentials.yaml:

echo 'COMMANDCODE_API_KEY: [your key, be like user_xxxx]' >> ~/.dsh/.credentials.yaml

模型列表 无需任何配置 ,插件在启动时从 /provider/v1/models 同步你的 Go 计划包含的模型,并从官方 CLI catalog (CDN) 合并每个模型的 Reasoning Effort 支持。挂载时上游不可达也不挂——目录暂时为空、不会拖垮插件。装完后在 Web 的 Models 页面选择 Command Code Go provider 及模型即可开始对话。

配置项

全部可选,默认即可用:

- id: commandcode-go-provider
  name: '@jiesou/dsh-commandcode-go-provider'
  config:
    apiKeyEnv: COMMANDCODE_API_KEY
    baseURL: https://api.commandcode.ai
    maxTokens: 64000
    defaultContextWindow: 1000000
配置项类型默认值说明
apiKeyEnvstring"COMMANDCODE_API_KEY"读取 API Key 的环境变量名(或 credential ref)
baseURLstring"https://api.commandcode.ai"Command Code 网关 base URL,/alpha/generate 自动追加
maxTokensnumber64000单次请求输出 token 上限
defaultContextWindownumber1000000模型无精确 contextWindow 时的兜底值
accountsobject{}多账号字典:每个 key 是一个独立 provider 路由。缺省或空 = 单账号模式,直接使用顶层字段

多账号

accounts 字典把同一个 Go 计划的多个账号暴露成多个独立 provider(模型选择器里各占一项,各持各的 API Key)。每个账号字段缺省时回退到顶层同名字段,displayName 缺省用账号 key:

- id: commandcode-go-provider
  name: '@jiesou/dsh-commandcode-go-provider'
  config:
    accounts:
      commandcode-1:
        displayName: Command Code Go 1
        apiKeyEnv: COMMANDCODE_API_KEY
      commandcode-2:
        displayName: Command Code Go 2
        apiKeyEnv: COMMANDCODE_API_KEY_2
    baseURL: https://api.commandcode.ai
    retryPolicy:
      mode: always
账号字段类型缺省说明
displayNamestring账号 key模型选择器里的显示名
apiKeyEnvstring顶层 apiKeyEnv该账号的 credential ref,在 Web Models 页对应账号卡片里写入
baseURLstring顶层 baseURL覆盖该账号的网关地址
maxTokensnumber顶层 maxTokens覆盖该账号的输出上限
defaultContextWindownumber顶层 defaultContextWindow覆盖该账号的兜底容量
retryPolicyobject顶层 retryPolicy覆盖该账号的重试策略

模型目录只扫描一次、所有账号共享;改动设置后下个请求即生效,无需重启。把 accounts 清空或删掉即回到单账号模式。

Reasoning effort 不需要配置:档位来自官方 CLI catalog,模型只暴露它真正接受的档位(low/medium/high/xhigh/max),加一个显式 Off 入口。Default 表示"不发送 reasoning_effort"字段,由上游自行决定深度。Off 与 Default 的 wire 形态一致,但显式声明"不推理"的意图。catalog 里档位为空的模型干脆不显示档位选择器。

兼容性

声明在 package.json 的 dsh.compatibility:DSH >=0.1.2-alpha.3 <0.2.0,Node.js ^22.19.0 || >=24.0.0,Profile web / headless。

逐版本证据(每个版本都用 dsh plugin add <tarball> 装进一次性 Profile,冷启动到发出真实请求,再卸载):

DSH 版本安装启动卸载
0.1.5-alpha.1通过通过通过
0.1.5-alpha.2通过通过通过
0.1.5-rc.1通过通过通过

复现方式:DSH_HOME=<空目录> dsh --profile compat --from-default-profile headless,装入对应版本的 @deepseek-ai/dsh-base / 依赖与插件 tarball,dsh --profile compat --dump-config 检查插件行,冷启动用真实网关请求校验 provider 与模型目录,最后 dsh plugin --profile compat remove 复查卸载后仍能启动。

Credit

移植自 brent-weatherall/opencode-commandcode-provider 到 DSH。

本 plugin 加入了动态 reasoning effort 提取功能,从 https://unpkg.com/command-code@latest/dist/bundled/command-code-knowledge/reference/models.md 解析。

License

MIT