非官方 Command Code 模型接入插件:注册 `commandcode` 路由,带实时模型目录与推理强度支持。
安装
# npm 包(预构建)
dsh plugin --profile web add @mars-sea/dsh-commandcode-provider
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Mars-Sea/dsh-commandcode-provider
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 简体中文
非官方 DeepSeek Harness 的 LLM provider 插件,用于 Command Code,移植自 pi-commandcode-provider(MIT 协议)。它注册了一个 commandcode 模型 provider,将请求转换为 Command Code 的 Provider API(POST /alpha/generate,由 pi 插件逆向工程,对应 command-code@1.26.0)。
这是一个社区集成。你需要自己的 Command Code 账号、API key 或订阅,并遵守 Command Code 的服务条款。本项目与 Command Code, Inc. 无关。
功能一览
- 插件包:可通过
dsh plugin add安装到任意 dsh 配置(npm 包,带dsh.bundle层)。 commandcodeprovider 路由:注册在llm服务上,可在模型选择器中选择,并带 实时模型目录(从GET {apiBase}/provider/v1/models拉取,缓存于~/.commandcode/models-cache.json)。- Models 页面卡片("Command Code")带 API key 输入框——凭据通过 dsh 凭据服务存储,与 DeepSeek 卡片一致。
- API key 解析顺序:
config.apiKey→ 凭据引用apiKeyEnv(Web Models 页面写入,默认COMMANDCODE_API_KEY)→ 启动环境变量 → 官方 Command Code CLI 认证文件(~/.commandcode/auth.json,由command-code login写入)。 - 推理强度(reasoning-effort)支持:针对 Command Code 目录中标为推理模型的模型(如
claude-opus-5、gpt-5.5、deepseek/deepseek-v4-pro等),通过KNOWN_EFFORTS实现,与官方 command-code@1.26.0 内置目录一致。
获取 API key
Command Code 的 API key 永不过期。最简单的途径是官方 CLI(Node.js 22+):
npm i -g command-code@latest
cmd login # macOS/Linux;Windows 原生版:cmdc login
cmd login 会打开浏览器进行认证;成功后 key 写入 ~/.commandcode/auth.json——本插件会自动读取(最后兜底)。也可以直接在浏览器创建 API key(Command Code Studio)并粘贴到 Models 页面的卡片中,或者 export COMMANDCODE_API_KEY="user_..."。
安装
从 GitHub 安装(推荐)
# 推荐:锁定发布 tag(可读、不可变)
dsh plugin --profile web add github:Mars-Sea/dsh-commandcode-provider#v0.1.6
# 或按完整 commit SHA 锁定任意提交
dsh plugin --profile web add github:Mars-Sea/dsh-commandcode-provider#<完整-commit-sha>
#<ref> 后缀用于将源码锁定到某一个精确版本(pnpm 的 git 依赖语法:可以是 tag、分支或 commit SHA)。不加 # 则跟随默认分支,后续的 push 会悄悄改变你装到的内容——请固定 tag 或 commit,并审计你要运行的代码。
git 安装会拉取源码,因此包的 prepare 脚本会在安装后构建 lib/。pnpm ≥10 默认会阻止该脚本——先运行 add,然后把 pnpm 打印的确切包 key 复制到 ~/.dsh/profiles/web/pnpm-workspace.yaml:
allowBuilds:
'dsh-commandcode-provider@github:Mars-Sea/dsh-commandcode-provider#<完整-commit-sha>': true
然后重新运行 add。只允许信任其源码的包(并固定 commit)。
从 npm 安装
发布为 @mars-sea/dsh-commandcode-provider(npm 上裸名 dsh-commandcode-provider 已被无关包占用):
dsh plugin --profile web add @mars-sea/dsh-commandcode-provider
从本地检出安装
npm install
npm run build # git/压缩包安装通过 `prepare` 自动执行
dsh plugin --profile web add /path/to/dsh-commandcode-provider
本地路径安装会按原样链接检出目录,因此修改 src/ 后需重新运行 npm run build 并重启应用。
安装做了什么
dsh plugin add 会将包链接到配置目录,把 dsh-commandcode-provider 追加到配置的 dsh.profile.bundles,并激活 cordis.patch.yml 层,其中插入:
- insert:
- id: llm-commandcode
name: dsh-commandcode-provider
config:
apiKeyEnv: COMMANDCODE_API_KEY
验证合成后的层,然后(重新)启动 Web 应用:
dsh --profile web --dump-config # 会显示 "# == dsh-commandcode-provider" 层
dsh web # 或重启你正在运行的实例
验证是否生效
重启后,在 Web UI 中:设置 → Models 会显示 Command Code 卡片;模型选择器会在 commandcode 下列出实时目录(撰写本文时有 54 个模型)。发送一条消息,选择你套餐中包含的模型——默认的 deepseek/deepseek-v4-flash 适用于入门级套餐;开放权重模型(DeepSeek/Qwen/Kimi/MiniMax)通常都可用,而前沿模型(Claude/GPT/Gemini/Grok)可能需要 Pro/Max 套餐或按需计费(见 FAQ)。
用量面板
插件注册了一个 /commandcode 斜杠命令(需要 dsh 的 commands 服务,标准 web profile 自带),直接从官方账户端点显示你的 Command Code 账户状态:
/commandcode (或 /commandcode status)
输出示例(结构化文本 + Unicode 条形图):
📊 Command Code 用量 (mars-sea)
── 请求 ──────────────────────────────
💬 请求 992 次 / 失败 0 成功率 100%
💰 花费 $1.4446 ($1.44 credits)
🔤 Token 205.3M 入 / 808.8K 出
── 信用 ──────────────────────────────
💳 月额度 $8.54 (已购 $0.00 / 赠送 $0.00)
└ ██████████ 100%
── 窗口用量 ──────────────────────────
⏱ 5 小时 $0.18 / $3.00
└ █░░░░░░░░░ 重置 8/15/2026, 2:39:36 PM
📅 每周 $1.46 / $6.00
└ ██░░░░░░░░ 重置 8/21/2026, 7:10:57 PM
每个端点独立降级:某个端点临时失败(如 credits 端点)不会影响其他数据,并会在末尾内联提示失败。
配置
Command Code 卡片接收你的 API key(存储在 $DSH_HOME/.credentials.yaml;没有 key 也可以浏览模型目录)。高级选项位于 $DSH_HOME/settings.yaml 的 llm-commandcode 一节(按请求覆盖 bundle 默认值,无需重启):
llm-commandcode:
apiKeyEnv: COMMANDCODE_API_KEY # 每次请求解析的凭据引用
apiBase: https://api.commandcode.ai
workingDir: /path/to/project # 上报给 API(项目 slug、配置块)
modelsCachePath: ~/.commandcode/models-cache.json
组合入口配置(cordis.patch.yml / 你 profile 的 cordis.patch.yml)接受相同的键;那里的字面量 apiKey 优先于凭据引用。
故障排查
MODEL_NOT_IN_PLAN(403) ——所选模型不在你的 Command Code 套餐内。选择一个开放权重模型(如deepseek/deepseek-v4-flash)或升级套餐。错误信息会指明模型并附官方文档链接。MISSING_CREDENTIAL——任何地方都没有 key。通过 Models 页面卡片存储一个、export COMMANDCODE_API_KEY、设置config.apiKey,或运行command-code login。没有 key 时路由保持注册、目录保持可浏览。- Models 页面卡片显示"未配置"但请求可用 ——key 来自
~/.commandcode/auth.json(cmd login兜底),而不是 dsh 凭据存储。把它粘贴到卡片一次即可让卡片显示为已配置;两者可以共存。 - 推理模型在短请求下不返回可见文本 ——推理模型(如
deepseek/deepseek-v4-*)会先消耗输出 token 进行推理;maxTokens较小时可能在出现可见文本前就用完。这属于正常现象。 - git 安装时
dsh plugin add报allowBuilds错误 ——把 pnpm 打印的确切包 key(含 commit hash)复制到pnpm-workspace.yaml并重新运行(见从 GitHub 安装(推荐))。
注意事项与限制
- 目前仅支持文本:图片输入会抛出
UNSUPPORTED_CONTENT(接入附件服务以解析图片字节是后续工作)。有意不声明 pi 插件的MODEL_INPUT_MODALITIES表。 - 不支持
stop序列:线上格式没有 stop 字段;携带它的请求会抛出UNSUPPORTED_OPTION。 - 推理块不会重放到后续轮次(与官方 CLI 一致:先前的私有推理不得泄漏)。
- 只有带配对工具结果的工具调用会被重放到对话中。
- 模型目录端点是公开的;对
/alpha/generate的请求需要上述 key。
权限与隐私
本插件完全在你的 dsh profile 和你的 Command Code 账号内运行。它触及的内容:
- 本地文件
- 仅在最后兜底时读取
~/.commandcode/auth.json(官方 CLI 登录文件)。 - 读写
~/.commandcode/models-cache.json(模型目录缓存)。 - 通过标准凭据 seam 从 dsh 凭据库(
$DSH_HOME/.credentials.yaml)读取 API key——key 永不记录日志,也只会发送给 Command Code API。
- 仅在最后兜底时读取
- 网络
GET {apiBase}/provider/v1/models—— 公开模型目录(无需 key)。POST {apiBase}/alpha/generate—— 模型请求本身,使用你的 key 认证。- 请求体包含你配置的
workingDir(项目路径,默认进程 cwd),作为 Command Code 的config.workingDir发送。
- 无遥测:无分析、无追踪、无第三方端点。唯一的对外主机是 Command Code API(默认
api.commandcode.ai,可通过apiBase配置)。
关闭 / 卸载
禁用(不删除):编辑你 profile 的
cordis.patch.yml,注释掉(或移除)llm-commandcode行,或对其设置disabled: true,然后重启 web 应用。完全卸载:
dsh plugin --profile web remove dsh-commandcode-provider这会移除 bundle 依赖及其配置层。你在 dsh 凭据库和
~/.commandcode/auth.json中的 API key 不会被改动(如需撤销访问权限,可手动删除)。
开发
npm install
npm run typecheck # tsc --noEmit
npm run build # tsdown -> lib/
社区与反馈
许可证
MIT —— 见 LICENSE。部分内容移植自 pi-commandcode-provider(MIT)。
链接
同类插件
feibi-mochi/deepseek-harness-wallet★ 8
多供应商钱包标签:官方 DeepSeek 余额、本会话花费与 token、第三方合计 token、一键充值、低余额提醒。
franksong2702/dsh-codex-connect★ 7
通过 ChatGPT OAuth 将 OpenAI Codex 模型接入 DeepSeek Harness,并提供可选的搜索与图片工具。
jyh20030112/dsh-visual-plugin★ 6
给纯文本模型装上眼睛:把用户图片转发给任意 OpenAI 兼容的视觉模型生成描述,并在 Web UI 右侧面板展示结果。
Noob-stupid/dsh-github-login★ 4
零终端的 GitHub 可视化登录插件:窗口内完成设备码授权,令牌同步进 gh CLI,附宿主端状态与唤起接口。
btspoony/dsh-llm-fallbacks★ 4
基于角色的模型重试与备用策略。
omdsh-dev/Qwen-MM-Plugins★ 4
Qwen 多模态插件支持。