DSH Plugins Marketplace

DSH Plugins

Plugins

/

Models & Providers

/

dsh-cliproxyapi-pro

d

dsh-cliproxyapi-pro

Manifest valid

Connects one or more CLIProxyAPI servers to DeepSeek Harness, discovers each server's models and syncs the selected ones into the model picker, routing each model over its native protocol (Anthropic M

UI (client)hasBundlePatch

dsh-cliproxyapi-pro

中文 | English

npm CI License: MIT

把 CLIProxyAPI(CPA)里的模型,一键接进 DeepSeek Harness(DSH)的模型选择器。

填好服务地址和 API Key,插件会自动读取 CPA 的模型目录,把你勾选的模型连同上下文长度、图片输入、推理档位一起同步到 DSH;每个模型自动走它最合适的协议。可以同时接入多个 CPA 账号,每个账号单独启用或停用。

  • 多账号:每个账号独立的地址、密钥、模型勾选和参数,互不影响,可随时停用。
  • 开箱即用:首次连接时按该服务自己的模型目录,为每个模型家族勾选最新的一个(最多 12 个),模型选择器不会被上百个模型淹没。
  • 原生协议:Claude 走 Anthropic Messages,GPT / Codex / Grok 走 OpenAI Responses,其余走 OpenAI Chat,减少 CPA 的协议转换。
  • 可视化管理:设置面板里勾选模型、编辑单个模型的参数;也可以让 DSH 的 Agent 通过 cliproxyapi 工具帮你配置。
  • 插件更新:自动检查稳定 / Beta / 开发通道,可选择全球 / 中国大陆下载源;装有 DSH 插件市场(dshmarket) 时可一键或自动安装新版本,否则下载校验离线包,在关闭 DSH 后手动升级。
  • 安全:API Key 只保存在 DSH 凭证服务里,不写入任何配置文件。
  • 零依赖:不依赖任何 npm 包,无需构建,安装几秒完成。

适用于 DSH 0.2.0-rc.1 及以上版本(含桌面版与 Web 版)。

目录

安装

插件已发布到 npm:dsh-cliproxyapi-pro,中国大陆镜像(npmmirror)同步可用。任选一种方式安装即可。

方式一:在 DSH 插件页安装(推荐)

  1. 打开 DSH,点击左侧栏的 插件。

  2. 点击页面顶部的 添加插件。

  3. 在输入框中填写包名:

    dsh-cliproxyapi-pro
    

    需要固定版本时可以写成 dsh-cliproxyapi-pro@1.6.0。

  4. 点击 安装,完成后点击 立即启用。

在中国大陆下载慢,可以点输入框旁的 安装源,切换到 中国大陆镜像源。

方式二:让 DSH 里的 Agent 帮你装

在 DSH 对话框里直接说:

帮我安装 DSH 插件 dsh-cliproxyapi-pro

Agent 会调用 plugin_manager 完成安装和启用(视权限设置,可能需要你批准)。装好后可以接着让它配置,例如「把 CLIProxyAPI 地址设为 http://127.0.0.1:8317,密钥是 sk-…」。

方式三:命令行

dsh plugin --profile <profile 名称> add dsh-cliproxyapi-pro

这条命令从 npm 下载插件,并把它加入该 profile 已启用的插件列表,一步完成。DSH 桌面版的 profile 通常叫 desktop;如果 DSH 正在运行,重启后生效。

方式四:从 GitHub 安装(不经过 npm)

在插件页的 添加插件 中,或作为 plugin_manager 的 target,也可以填写:

来源填写内容
某个发布版本git+https://github.com/TinyBOOOOM/dsh-cliproxyapi-pro.git#v1.6.0
最新开发版git+https://github.com/TinyBOOOOM/dsh-cliproxyapi-pro.git#main
离线安装包下载 dsh-cliproxyapi-pro.tgz(始终是最新版),填写它的本地绝对路径
本地源码(开发用)克隆后的仓库目录绝对路径;以链接方式安装,改代码后重载插件即生效

所有版本见 Releases。

快速上手

  1. 打开设置面板:设置 → 左侧导航的 CLIProxyAPI 页(账号、模型与协议都在这里)。插件自身的更新在左侧栏 插件 → CLIProxyAPI,或 设置 → 内置插件 → CLIProxyAPI 标签页,这两处只有更新功能。
  2. 填写连接信息:在「连接与认证配置」里填 CLIProxyAPI 服务地址(如 http://127.0.0.1:8317,不用加 /v1)和 API Key(本地免密的 CPA 可留空),点 保存设置并应用。
  3. 选择模型:连接成功后,「模型显示筛选」会列出 CPA 上的全部模型,并已为每个家族勾好最新的一个。按需增减后点 保存模型勾选。
  4. 开始使用:回到对话框,打开模型选择器,就能在以账号名称命名的分组里看到这些模型。

CPA 就在本机默认端口 8317 且没有设置密钥时,什么都不用填,插件会自动发现它。

截图

以下均为 1.6.0 在 DSH 桌面版中的实际截图。

1. 设置左侧的 CLIProxyAPI 页与账号栏。 账号与模型设置位于 设置 左侧导航的 CLIProxyAPI 页。顶部账号栏列出所有账号:绿点表示已连接,灰点加「未启用」标记表示已停用。图中刚用「+ 添加账号」新增了第二个账号「CLI Proxy API 2」:它默认停用,拥有独立的路由 cli-proxy-2;由于还没填写服务地址,探测提示本地没有找到 CPA 服务。

设置左侧的 CLIProxyAPI 页:一个已连接账号和一个刚添加、未启用的账号

2. 模型显示筛选。 从 CPA 服务发现的全部 168 个模型,支持全部发现 / 已勾选 / 未勾选切换、家族标签(GPT、CLAUDE、GEMINI、GROK……)、搜索与批量操作。只有勾选的模型会同步到 DSH 模型选择器;每个模型显示将使用的协议(图中为 OpenAI Responses)、图片输入、推理档位与上下文长度,「编辑参数」可打开单模型参数覆盖。

模型筛选:家族标签、已勾选模型、协议与能力标记

3. 连接与认证配置。 每个账号独立的设置:「启用此账号」开关、服务地址、保存在该账号独立引用名(CLI_PROXY_API_KEY_2)下的 API Key、接口协议、账号名称、可折叠的高级设置,以及「保存设置并应用」与「删除此账号」。

未启用账号的连接设置,使用独立的密钥引用名

4. 内置插件里的插件更新页。 设置 → 内置插件 → CLIProxyAPI 标签页只有插件更新:检查更新与离线下载、检测到 DSH 插件市场后的「立即更新」、更新通道、下载区域,以及自动检查 / 自动下载 / 自动安装开关。图中已是稳定通道最新版本,所以「立即更新」不可用。

内置插件中的 CLIProxyAPI 更新页:版本状态、插件市场更新、通道、区域与自动开关

功能详解

自动发现与同步

  • 服务地址可以是本地或远程,/v1、/v1/chat/completions、/v1/messages 等后缀会自动去掉。
  • 地址留空时,依次尝试:已有路由的地址、环境变量 CLIPROXYAPI_BASE_URL、本机 127.0.0.1:8317。
  • 读取 /v1/models?client_version=pi 的富元数据目录(也兼容标准 OpenAI data[] 格式),并用 /v1/models 的 owned_by 判断模型家族。
  • 所有账号按统一间隔自动刷新(默认 300 秒);模型目录没有变化时不写入任何设置。

模型勾选

  • 搜索、家族标签、全部 / 已勾选 / 未勾选切换、批量勾选。只有勾选的模型会出现在模型选择器中;勾选为空表示全部显示。
  • 还可以用「包含 / 排除关键词」规则进一步过滤。
  • 从未保存过勾选的账号,首次探测成功后自动为每个模型家族勾选最新的一个(最多 12 个),按该服务自己的模型目录计算;恢复推荐精选 可随时恢复这组勾选。

单模型参数覆盖

已勾选模型的 编辑参数 可以单独设置:上下文窗口、最大输出、图片输入、思考等级(off、minimal、low、medium、high、xhigh、max)和请求协议,也可一键恢复自动探测值。

多账号

  • 每个账号写入自己的一组路由:第一个账号为 cli-proxy / cli-proxy-responses / cli-proxy-messages,之后依次为 cli-proxy-2*、cli-proxy-3*……;密钥引用名依次为 CLI_PROXY_API_KEY、CLI_PROXY_API_KEY_2……。模型选择器按账号名称分组。
  • 停用账号:保留全部配置,但移除它的路由,模型从选择器中消失;其他账号不受影响。
  • 新增账号默认停用。可先填好地址和密钥,点「立即探测刷新」预览模型并勾选,再打开「启用此账号」保存。
  • 填写了服务地址的账号只连接该地址,连不上就报错,不会悄悄改连本地 :8317,避免两个账号指向同一个服务。
  • 不同账号的路由 ID 不能重叠,冲突的修改会被拒绝。
  • 删除账号会移除它的路由,但保留凭证服务里的密钥。

协议路由

CPA 对每个模型同时提供 OpenAI Chat、OpenAI Responses、Anthropic Messages 三种入口,入口协议和上游不一致时需要转换。默认的自动模式让每个模型直接使用上游协议:

模型家族(依据 owned_by 与模型 id)协议路由(以 cli-proxy 为例)
Claude(含 devin/claude-*、Antigravity Claude)Anthropic Messages /v1/messagescli-proxy-messages
OpenAI / Codex / GPT、xAI GrokOpenAI Responses /v1/responsescli-proxy-responses
Gemini、DeepSeek、Kimi、GLM、SWE、gpt-oss 等OpenAI Chat /v1/chat/completionscli-proxy
  • DSH 自定义路由不支持 Gemini 原生 generateContent,所以 Gemini 走 OpenAI Chat。
  • DSH 每条路由只能有一种协议,模型按协议分到三条路由;没有模型的路由会自动移除。默认模型因此换了路由时,agent-default-model 会自动跟随。
  • Claude 4.6+ / 5.x / Fable 使用自适应思考(effort),更早的 Claude 使用 token 预算。
  • 可以改为「统一使用」某一种协议,或在单个模型的「编辑参数」里指定。
  • 你在路由上手动加的其他字段(如 retryPolicy)会被保留。

插件自身更新

插件更新 位于左侧栏 插件 → CLIProxyAPI 的插件页,以及 设置 → 内置插件 → CLIProxyAPI 标签页;这两处只有更新功能,账号与模型设置在 设置 左侧导航的 CLIProxyAPI 页。更新卡片在插件页默认展开,摘要行显示当前版本和更新状态,可随时收起;后台检查仍按保存的开关运行,展开状态不会被轮询重置。它只管理 dsh-cliproxyapi-pro 自身,不会更新 CPA 服务或 DSH 宿主,也不改变 CPA 请求的路由、账号或模型勾选。更新设置修改后立即保存;卡片独立轮询状态,不会重载未保存的账号表单。

安装交给插件市场。 本插件自身从不运行包管理器、卸载插件、覆盖源码或重启 DSH。装有 DSH 插件市场(dshmarket) 时,卡片通过它公开的 Update API v1 一键或自动安装新版本;没有插件市场时,只能下载并校验离线包,在关闭 DSH 后手动升级。

通道、区域与自动开关

设置默认值行为
更新通道稳定(stable)稳定 / Beta / 开发分别读取 npm 的 latest / beta / dev dist-tag。Beta / 开发通道尚未发布时明确报错,不悄悄回退稳定版。
下载区域自动(auto)自动模式同时请求全球 npmjs 与中国大陆 npmmirror,选择最先返回有效版本元数据的源;全球(global)只使用 https://registry.npmjs.org,中国大陆(cn)使用 https://registry.npmmirror.com 及其官方 cdn.npmmirror.com 包下载域名。离线包从本次检查选中的源下载,至多跟随 3 次经过白名单与精确包名/版本路径校验的 HTTPS 跳转,不跨区域回退。
自动检查更新开启插件启动或更新设置重新调度后约 3 秒检查,之后每 6 小时检查所选通道;关闭后仍可手动点 检查更新。
自动下载更新关闭仅在自动检查发现新版本时,自动下载并校验离线包;下载本身不安装、不重启。仅开启此项而关闭自动检查,不会触发后台下载。
自动安装更新关闭需要开启自动检查并装有 dshmarket(未检测到插件市场时无法开启)。自动检查发现新版本后,由打开着的 DSH 页面调用插件市场安装;同一版本 6 小时内最多尝试一次,安装成功的版本不再重试。插件市场的发布冷却期等限制照常生效,自动模式从不强制安装。生效可能需要重启 DSH 或刷新页面。
  • 检查使用严格 SemVer 比较:只有所选通道版本高于当前运行版本时才提供下载,不自动降级。自动区域选择也不会跨通道回退。
  • 区域只影响本插件的更新元数据与安装包下载,不影响 CPA 的连接、模型请求或其他插件的安装源。
  • 切换通道或区域后,请重新检查更新。打开卡片、轮询或重新读取状态本身只读取内存状态,不主动访问更新源;后台自动检查由上述开关控制。
  • 失败时卡片显示本地化提示,例如通道未发布、网络异常、包完整性校验失败或磁盘写入失败,不显示后端堆栈。

通过插件市场一键更新 / 自动更新

  1. 卡片打开时只读取插件市场本地的 GET /dsh-market/api/v1/capabilities,不访问任何更新源;检测到后显示 立即更新。
  2. 检查到新版本后点 立即更新 并确认版本号;卡片向插件市场提交 POST /dsh-market/api/v1/updates { "packageName": "dsh-cliproxyapi-pro" },再轮询该任务的进度与结果。版本解析、下载、安装、版本核对与恢复都由插件市场完成。
  3. 完成后卡片显示实际装上的版本,并按插件市场的结果提示 重启 DSH(仅插件市场声明可以重启时显示按钮;桌面版需完全退出后重新打开)或 刷新页面。若插件市场按其自身通道装上的版本低于本卡片检查到的版本,会明确提示。
  4. 遇到发布冷却期(RELEASE_TOO_FRESH)或镜像未同步(VERSION_UNCHANGED)时可手动选择 仍然安装;其他失败只显示本地化原因,不显示后端信息。
  5. 本地链接安装(link:)不提供插件市场安装,以免替换源码链接。

下载、校验与离线升级

没有插件市场或需要离线升级时使用:

  1. 点击 检查更新;有更高版本时,点 下载更新 并确认版本号,或等待已启用的自动检查 / 自动下载。

  2. 下载先通过 npm 元数据中的 SHA-512 完整性校验,再验证 gzip / tar、预期文件与目录、包名和版本;拒绝路径穿越、链接等特殊条目、依赖和安装生命周期脚本。只保存离线包,不解压到安装目录,也不执行包内代码。

  3. 校验成功后,卡片显示安装包的绝对路径与适用的升级命令。包保存在 <Profile 目录>/.dsh-cliproxyapi/updates/dsh-cliproxyapi-pro-<version>.tgz。

  4. 先保存工作并完全关闭 DSH,再在终端执行卡片提供的命令。示意如下,以卡片里的实际 profile 名称和绝对路径为准:

    dsh plugin --profile 'desktop' add '/absolute/path/dsh-cliproxyapi-pro-<version>.tgz'
    
  5. 重新启动 DSH 后新版本生效。检查结果和已下载提示不跨插件重载持久化;离线包仍保留在磁盘,可按需要自行清理,插件不会自动删除历史下载。

本地链接安装(link:) 可以检查并下载包,但不会提供升级命令,也不会覆盖链接的源码目录。若要保留源码开发方式,请在合适时机手动更新 Git 源码,再重启 DSH;通过离线包重新安装会将插件的安装来源从链接切换到离线包。

Agent 工具与斜杠命令

cliproxyapi 工具

DSH 的 Agent 可以用这个工具查看和配置插件,你只需用自然语言提要求。

action作用
status查看所有账号(或 account 指定的账号)的状态与模型
refresh立即探测并同步;不带 account 时刷新全部账号
configure修改一个账号(默认第一个),保存后立即刷新
add_account新增账号;给了 baseURL 时默认启用,否则停用
remove_account删除 account 指定的账号及其路由

参数(除 action 外都可选):

参数说明
account账号 id(如 default、account-2),也可用路由 ID 或账号名称
enabled启用 / 停用该账号
baseURLCPA 地址,如 http://127.0.0.1:8317;空字符串表示自动发现
apiKeyBearer 密钥,保存到该账号的 apiKeyEnv 引用名下
apiKeyEnv密钥引用名([A-Za-z_][A-Za-z0-9_]*)
providerllm-pi-ai 路由 ID,每个账号唯一
displayName账号名称,也是模型选择器中的分组名
protocolModeauto(按家族走原生协议,默认)或 fixed
protocolfixed 时使用的协议:openai-completions / openai-responses / anthropic-messages
selectedModels显示在选择器中的模型 id 列表;[] 表示全部
includePrefix / excludePrefix逗号分隔的模型 id 关键词
modelOverrides{ [modelId]: { contextWindow?, maxTokens?, image?, reasoningLevels?, protocol? } },整体替换

示例:

{ "action": "configure", "baseURL": "http://127.0.0.1:8317", "apiKey": "sk-...", "selectedModels": ["gpt-6.1-sol", "claude-opus-5-5"] }
{ "action": "add_account", "displayName": "Backup CPA", "baseURL": "https://other-cpa:8317", "apiKey": "sk-...", "selectedModels": ["gpt-6-astra"] }
{ "action": "configure", "account": "account-2", "enabled": false }
{ "action": "remove_account", "account": "account-2" }

输出包含 accounts[](每个账号的 id、displayName、provider、enabled、state、endpoint、modelCount、totalDiscovered、error)和文字摘要 summary。state 取值:idle、probing、connected、disabled、error。

斜杠命令

  • /cpa-status:显示所有账号的状态。
  • /cpa-refresh:立即刷新所有账号(也会探测停用账号的模型列表)。

HTTP 接口

供设置面板使用,需要 DSH Web 会话的认证;POST 只接受来自本机或受信任主机的同源请求。

方法路径请求体说明
GET/api/dsh-cliproxyapi/status—{ ok, global, accounts[] }
POST/api/dsh-cliproxyapi/refresh{ accountId? }刷新一个或全部账号
POST/api/dsh-cliproxyapi/save{ accountId?, …账号字段, apiKey?, clearApiKey?, refreshIntervalSeconds?, probeTimeoutMs? }保存账号(缺省为第一个);只有全局字段时只保存全局设置
POST/api/dsh-cliproxyapi/accounts/add账号字段(可选)新增账号,默认停用;返回 createdId
POST/api/dsh-cliproxyapi/accounts/remove{ accountId }删除账号及其路由
GET/api/dsh-cliproxyapi/updates/status—只读更新状态,不主动联网检查
POST/api/dsh-cliproxyapi/updates/check{}主动检查所选通道与区域;手动检查不触发自动下载
POST/api/dsh-cliproxyapi/updates/save{ autoCheck?, autoDownload?, autoInstall?, channel?, region? }只保存这五项更新设置,与账号配置独立
POST/api/dsh-cliproxyapi/updates/download{ version }下载最近一次检查确认的新版本,完成校验后保存离线包;不安装

更新接口的操作响应采用 { ok, update },状态包含 currentVersion、latestVersion、available、channel、region、effectiveRegion、autoCheck、autoDownload、autoInstall、checking、downloading、lastCheckedAt、error / errorCode、blockedReason、downloadedVersion、downloadPath 与 upgradeCommand。未检查或未下载的相关字段为 null。channel 为 stable / beta / dev,region 为 auto / global / cn;effectiveRegion 为本次成功检查使用的 global / cn(此前为 null)。

失败用顶层 errorCode 或 update.errorCode 表达,不能只凭 HTTP 状态或 ok 判断操作成功;常见值包括 network-error、invalid-metadata、channel-unavailable、integrity-error、invalid-package、storage-error、busy、stale-version、service-unavailable、forbidden-origin 与 disposed。更新 POST 仍然依赖宿主的会话鉴权与可信主机策略:请求带 Origin 时必须属于当前监听的同一 authority(按 Origin 自身协议比较主机与端口,与宿主规则一致),否则返回 forbidden-origin;桌面端桥接请求可能不带 Origin,此时只要通过宿主会话鉴权即可执行,未认证请求仍会在到达路由前被拒绝。普通未认证 curl 不能调用这些接口。

存储与配置

  • 状态文件:<Profile 目录>/.dsh-cliproxyapi/state.json,保存账号、勾选和参数覆盖(不含密钥)。

    {
      "version": 2,
      "refreshIntervalSeconds": 300,
      "probeTimeoutMs": 5000,
      "accounts": [
        {
          "id": "default", "enabled": true, "provider": "cli-proxy", "displayName": "CLI Proxy API",
          "baseURL": "https://cpa.example.com", "apiKeyEnv": "CLI_PROXY_API_KEY",
          "protocol": "openai-completions", "protocolMode": "auto",
          "includePrefix": "", "excludePrefix": "", "selectedModels": ["gpt-6.1-sol"], "modelOverrides": {}
        }
      ]
    }
    

    文件每次读取都会重新加载,手动修改后点「立即探测刷新」即可生效。旧版(1.3.x 及以前)的单账号文件会自动迁移为 id 为 default 的账号,路由、密钥和勾选保持不变,原文件备份为 state.v1.json。

  • 更新设置:独立保存在 <Profile 目录>/.dsh-cliproxyapi/update-settings.json,不扩展或改写账号的 state.json v2,也不接触凭证。首次没有此文件时采用下列默认值:

    {
      "version": 1,
      "autoCheck": true,
      "autoDownload": false,
      "autoInstall": false,
      "channel": "stable",
      "region": "auto"
    }
    

    设置通过面板保存后立即应用。手动编辑此文件后需重载插件或重启 DSH 才会重新读取;文件损坏、结构 / 字段无效或无法读取时采用关闭自动联网检查的安全默认值。版本检查结果、候选版本、下载完成提示与命令只在内存中,插件重载后重新检查;下载包仍位于独立的 updates 子目录,由用户按需清理。

  • 密钥:通过 DSH 的 credentials 服务按引用名存取;凭证服务里没有时,回退读取同名环境变量。

  • 环境变量:CLIPROXYAPI_BASE_URL 只用于服务地址留空的账号的自动发现。

  • 插件行配置:cordis.patch.yml 中本插件行的 config 会在启动时叠加到状态文件上:包含 accounts 时替换账号列表,否则其中的字段作用于第一个账号。一般保持 {},用面板或工具配置即可。

升级与卸载

  • 升级:装有 dshmarket 时,直接在插件更新卡片点 立即更新(或开启自动安装),完成后按提示重启 DSH 或刷新页面。没有插件市场时,使用卡片下载校验后的离线包,保存工作并关闭 DSH,再执行卡片的 dsh plugin --profile '名称' add '离线包绝对路径' 命令,最后重新启动;无需先卸载。也可在关闭 DSH 后运行 dsh plugin --profile <profile 名称> add dsh-cliproxyapi-pro@latest 从 npm 升级。账号、勾选和参数仍保存在原 profile 目录里,密钥仍在凭证服务里;更新下载功能不会改写这些数据。本地链接安装要保留源码方式时应自行更新源码,而不是从离线包重装。
  • 卸载:在 插件 页卸载。已同步的模型路由保存在 DSH 设置里,卸载插件不会自动删除它们;想让这些模型一并从选择器消失,请在卸载前把各账号停用或删除。

常见问题

模型选择器里看不到模型? 确认账号已打开「启用此账号」,并且至少勾选了一个模型(或勾选为空,表示全部)。可以运行 /cpa-status 查看每个账号的状态。

提示「none of the selected models matched」? 已勾选的模型在这台服务器上都不存在(常见于换了服务器)。面板里仍会列出该服务器的模型,重新勾选,或点「恢复推荐精选」后保存。

连接失败 / no usable CPA service found? 检查服务地址是否能从运行 DSH 的机器访问、API Key 是否正确。填写了地址的账号不会改连其他地址,报错里会列出尝试过的地址和原因。

刚发布的新版本装不上? DSH 使用的 pnpm 可能设置了新版本发布后的等待期(minimumReleaseAge),安装界面会说明实际装到的版本。稍后再装,或明确写出版本号。

怎样自动安装更新? 安装并启用 DSH 插件市场(dshmarket),在插件更新卡片打开 自动检查更新 和 自动安装更新。安装由插件市场完成(它负责包管理器、版本核对与恢复),本插件自身不会运行包管理器、覆盖文件或重启。没有插件市场时只能准备离线包,在关闭 DSH 后升级。

点「检查更新」就报错(尤其是桌面版)? 1.5.1 及以前的版本要求更新 POST 必须带 Origin,而 DSH 桌面版转发页面请求时会去掉这个请求头,所以检查、保存更新设置和下载都会被拒绝。1.6.0 起已与宿主规则一致:缺少 Origin 时依靠宿主会话鉴权,带 Origin 时仍须同源。旧版本请通过插件市场、插件管理器或离线方式升级到新版本。

Beta / 开发通道提示暂无版本? 只有维护者发布对应 npm dist-tag 后才可使用;插件不会把稳定版伪装成 Beta / 开发版。若通道版本不高于当前版本,也不会提供降级下载。

更新卡片显示「更新服务未就绪」或「网络异常」? 收起状态会直接给出原因:更新服务未就绪 表示页面已是新版,但运行中的插件宿主代码仍是旧版——安装或升级后必须重启 DSH(只刷新页面或重载插件不够);网络异常 表示本机到 npm 官方源或国内镜像的请求失败,可切换下载区域、检查代理/防火墙后重试;通道未发布 则表示该通道还没有对应版本。展开卡片可看到对应说明。

已经下载,重启后为什么版本没变? 下载和校验并不安装。应先退出 DSH、执行卡片提供的升级命令,再启动;本地链接安装不提供该命令,保留链接方式需手动更新源码。若重载插件后下载提示消失,离线包仍在 profile 的 updates 目录里。

给 AI Agent 的安装指南

给 DeepSeek Harness 中的 AI Agent:用户要求安装或配置本插件时按以下步骤执行。本包没有 npm 依赖,也没有构建脚本。

  1. 安装:调用 plugin_manager:{"action": "install_bundle", "target": "dsh-cliproxyapi-pro", "enabled": true}。查看结果中的 application 与 warnings;restart-required 表示需要重启 DSH 后新代码才会运行。
  2. 配置:使用 cliproxyapi 工具。
    • CPA 在本机 http://127.0.0.1:8317 且无鉴权:无需配置,调用 {"action": "refresh"}。
    • 远程地址或有密钥:{"action": "configure", "baseURL": "...", "apiKey": "..."}(作用于第一个账号);额外的账号用 {"action": "add_account", ...};指定账号时传 "account": "<id>"。
    • 用 selectedModels(取自 status 输出中的精确 id)精简模型选择器。
  3. 验证:{"action": "status"} 中每个启用的账号 state 为 connected 且 modelCount > 0。告诉用户模型已出现在 DSH 模型选择器中(按账号名称分组),可在 设置 左侧导航的 CLIProxyAPI 页管理账号。

不要把 API Key 回显给用户,也不要写入任何文件。

开发

lib/index.js        Host 插件(发现、同步、多账号控制器、工具、命令、HTTP 接口)
lib/client.js       Web 界面(ModuleLoader 格式:设置左侧的账号页、插件页的更新卡片,无需构建)
lib/updater.js      更新设置、SemVer/通道、区域竞速、SHA-512/包结构检查与离线包存储
locale/*.json       插件管理器中显示的标题与描述
cordis.patch.yml    Bundle patch,插入 dsh-cliproxyapi-pro 行
tests/              node:test 单元与集成测试
.github/workflows/  CI(测试)与发版(GitHub Release + npm 受信任发布)
assets/screenshots/ README 截图(同时登记在 screenshots.json 中供插件市场展示)
AGENTS.md           给编码 Agent 的开发约定、架构与不变量
git clone https://github.com/TinyBOOOOM/dsh-cliproxyapi-pro.git
cd dsh-cliproxyapi-pro
npm test             # 运行测试
npm run check        # 语法检查 + 测试
npm run pack:check   # 查看打包文件列表

npm run check 会语法检查三个 lib/*.js 模块并运行全部测试。更新相关离线测试为 tests/updater.test.mjs(设置、SemVer、区域、下载完整性与包结构)、tests/update-routes.test.mjs(HTTP 鉴权与同源)和 tests/client.test.mjs(更新卡片与请求生命周期);它们不访问真实网络或真实 profile。npm run pack:check 的文件列表应包含 lib/updater.js,且仍不包含测试或截图,无需安装任何运行时依赖。

发版只需推送 v<版本号> 标签:GitHub Actions 会运行测试、创建 GitHub Release 并附上安装包,再通过 npm 受信任发布(不使用任何 token)上传到 npm,并附带来源证明。稳定版本发布到 npm latest;Beta / 开发预发布分别进入 beta / dev,对应 GitHub Release 标记为预发布,不覆盖稳定通道。更新器只核对 registry 提供的 SHA-512 完整性与包结构,不验证发行者签名或 npm provenance。

修改代码前请阅读 AGENTS.md;变更记录见 CHANGELOG.md。欢迎提交 Issue 和 Pull Request,修改说明文档时请同时更新中英文两份。

许可证

MIT

Comments

Loading…

Similar plugins

dsh-lantern

by Saretheya

Expose every model already configured in your local DeepSeek Harness to the LAN over OpenAI- and Anthropic-compatible endpoints, with API keys, per-key rate limits, a circuit breaker, model filters an

Models & ProvidersManifest valid

★ 0

MIT

JavaScript

Sep 20, 2026

dsh plugin --profile web add dsh-lantern

by AIcivilization

Many model sources behind one OpenAI-compatible endpoint for DeepSeek Harness (dsh) and your tools: WorkBuddy, OpenCode Zen, Codex, Kimi… 多家模型汇成一个 OpenAI 兼容地址,dsh 和其他软件都能直接用。

Terminal & ClientsModels & ProvidersManifest valid

★ 2

MIT

TypeScript

Oct 18, 2026

dsh plugin --profile web add dsh-model

by wesleyel

DeepSeek Harness plugin: serve every gpt-load model from one provider group, each model on its own wire protocol (OpenAI Chat Completions or Anthropic Messages), synced from /api/models

Manifest valid

★ 0

MIT

TypeScript

Sep 30, 2026

dsh plugin --profile web add dsh-plugin-gpt-load

by YV919

DMXAPI 模型快速配置工具,适用于 DeepSeek Harness|支持 Chat、Responses、Anthropic 三种协议及自定义服务商。

Development & InfrastructureModels & ProvidersManifest valid

★ 0

MIT

TypeScript

Sep 24, 2026

dsh plugin --profile web add dsh-dmxapi

by antonio-mastropaolo

DeepSeek Harness plugin: Sign in with Claude Pro/Max (no Anthropic API key). Also caps Anthropic request images at 2000px and slims /compact so a 1M context can still summarize.

Terminal & ClientsModels & ProvidersManifest valid

★ 4

MIT

JavaScript

Sep 16, 2026

dsh plugin --profile web add dsh-anthropic-membership

by a2580vb

DeepSeek Harness LLM adapter for OpenCode Go (opencode.ai/zen): /models discovery with cache, three wire protocols (OpenAI Responses, OpenAI-compatible Chat Completions, Anthropic Messages), tool calling, reasoning mapping, streaming, and the required x-opencode-session affinity header.

Terminal & ClientsSessions & MessagesModels & ProvidersManifest valid

★ 1

MIT

JavaScript

Oct 20, 2026

dsh plugin --profile web add dsh-llm-opencode-go