把网关请求固定到指定上游服务商,避免渠道漂移
30.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add liujuntao123/dsh-clinepass-pin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 请求外部主机api.cline.bottest.mjs:74
await globalThis.fetch('https://api.cline.bot/api/v1/chat/completions', { - 发起网络请求test.mjs:74
await globalThis.fetch('https://api.cline.bot/api/v1/chat/completions', { - 请求外部主机api.cline.bottest.mjs:78
await globalThis.fetch('https://api.cline.bot/api/v1/chat/completions', { - 发起网络请求test.mjs:78
await globalThis.fetch('https://api.cline.bot/api/v1/chat/completions', { - 发起网络请求test.mjs:82
await globalThis.fetch('https://example.com/api/v1/chat/completions', { method: 'POST', body: JSON.stringify(body) })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:api.cline.bot
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在 DeepSeek Harness 中把 Cline Pass 路由固定到单一上游服务商(默认:第一方 deepseek),做法是在聊天请求体里加上 providerOptions.gateway.only。
README
由 DeepSeek 最新模型翻译生成dsh-clinepass-pin
给 DeepSeek Harness 的 cline-pass 路由硬钉一个上游服务商(默认第一方 deepseek)。
做法是在发往网关的 JSON body 里加一个字段:
"providerOptions": { "gateway": { "only": ["deepseek"] } }
配合 dsh-clinepass 使用:那个插件只观察网关真实用了谁,本插件负责让它一直是 DeepSeek。
它解决什么
api.cline.bot 是个多上游网关。对日期快照 cline-pass/deepseek-v4.1-flash-1017,它默认在十几个渠道里挑一个(deepseek、pareto、fireworks、alibaba、baseten …),同一个进程里几分钟就能从 pareto 飘到 deepseek;稳定别名 cline-pass/deepseek-v4.1-flash 甚至可能落到匿名回退网 openai-compatible-private(contributor 档:数据可能用于训练、无 ZDR)。
展开完整文档(README 剩余 1 节)
dsh-clinepass-pin
给 DeepSeek Harness 的 cline-pass 路由硬钉一个上游服务商(默认第一方 deepseek)。
做法是在发往网关的 JSON body 里加一个字段:
"providerOptions": { "gateway": { "only": ["deepseek"] } }
配合 dsh-clinepass 使用:那个插件只观察网关真实用了谁,本插件负责让它一直是 DeepSeek。
它解决什么
api.cline.bot 是个多上游网关。对日期快照 cline-pass/deepseek-v4.1-flash-1017,它默认在十几个渠道里挑一个(deepseek、pareto、fireworks、alibaba、baseten …),同一个进程里几分钟就能从 pareto 飘到 deepseek;稳定别名 cline-pass/deepseek-v4.1-flash 甚至可能落到匿名回退网 openai-compatible-private(contributor 档:数据可能用于训练、无 ZDR)。
实测(2026-10-19,同一把 key):
| 请求 | finalProvider | fallbacksAvailable |
| 不钉 | deepseek,但抓到过 pareto | 14 |
| only: ["deepseek"] | deepseek | 0 |
| only: ["__no_such_upstream__"] | — | 500 No available providers match the 'only' filter |
负控制那一行说明:1017 这条快照上网关真的执行 only。稳定别名则无视它(only 无效),所以 models 里别写别名。
为什么不走官方那条路
官方做法是 profile 里写 compat.vercelGatewayRouting.only,再把 pi-ai 的 COMPLETIONS_COMPAT_GATE.vercelGatewayRouting 从 "withhold" 改成 "offer"。在 Desktop 版上这条路是死的:
- 门禁代码在 resources/app.asar/dsh/node_modules/@deepseek-ai/dsh-llm-pi-ai/lib/index.js 里,而 asar header 对每个文件都带 SHA256 integrity,就地改字节过不了完整性校验,且每次应用更新都会被覆盖;
- 随包脚本 patch-gateway-routing.mjs 找的是 <DSH_HOME>/profiles/<profile>/node_modules/@deepseek-ai/dsh-llm-pi-ai/...,Desktop 安装里这个路径不存在(profiles/node_modules 下的那份只是指向全局 npm 安装的 junction,不是运行中 app 加载的那份)。
所以本插件改在比配置门禁更低一层的 globalThis.fetch 上 —— 正好是 dsh-clinepass 观察用的同一个缝。
安装
环境:dsh ≥ 0.2.0-rc.2、node ≥ 20。装完要重启 dsh。
方式 A:从 GitHub 装
dsh plugin --profile desktop add github:liujuntao123/dsh-clinepass-pin
它声明了 dsh.bundle.patch,所以包被追加进 profile 的 dsh.profile.bundles 后配置行随包生效,不用手写。
挂载顺序:如果同时用 dsh-clinepass,请把这行挪到 dsh-clinepass 之前。顺序决定谁在最外层:本插件先装、dsh-clinepass 后装,后者才继续 owns() 着 globalThis.fetch,状态文件里 hook 才会是 installed。反过来钉选照样生效,但 dsh-clinepass 的状态文件会写 hook: "foreign" 并告警。
方式 B:离线手装(不用 pnpm)
$prof = "$env:USERPROFILE\.dsh\profiles\desktop"
Copy-Item . "$prof\plugins\dsh-clinepass-pin" -Recurse
New-Item -ItemType Junction -Path "$prof\node_modules\dsh-clinepass-pin" -Target "$prof\plugins\dsh-clinepass-pin"
然后在 $prof\package.json 的 dsh.profile.bundles 里加一行 "dsh-clinepass-pin"(同样建议排在 dsh-clinepass 之前),重启。
配置
| 键 | 默认 | 作用 |
| upstream | https://api.cline.bot | 网关 origin;路由自己拼 /api/v1/chat/completions |
| models | ['cline-pass/deepseek-v4.1-flash-1017'] | 只有这些 model id 会被加钉 |
| only | ['deepseek'] | 允许的上游列表,必须非空(空列表会让网关 500) |
| statusFile | $DSH_HOME/dsh-clinepass-pin-status.json | 运行证据;false 关掉 |
| log | true | 宿主日志 |
改配置写在 profile 的 cordis.patch.yml 里(patch 是整行替换 config):
- id: clinepass-pin
config:
models: [cline-pass/deepseek-v4.1-flash-1017]
only: [deepseek]
行为边界
- 只处理 POST <upstream>/api/v1/chat/completions,且 body 是 JSON 字符串、model 在 models 里;其它请求原样透传。
- 只加 providerOptions.gateway.only;已存在非空 only 时不动(让 profile 侧 compat 优先)。已有的 gateway.order 会保留。
- 任何解析/形状异常都回落成原请求 —— 它不该成为一次对话失败的原因(counters.errors 可见)。
- 不缓冲流、不改 headers、不重试、不加请求。
验证
npm test # 离线,不需要网络也不需要 dsh
跑起来之后:
Get-Content "$env:USERPROFILE\.dsh\dsh-clinepass-pin-status.json"
{ "hook": "installed", "counters": { "pinned": 12, "skippedRequestShape": 0, "errors": 0 } }
pinned 在涨 = 请求确实被改写了;hook 不是 installed = 有别的插件先占了 globalThis.fetch。
代价
硬钉就是硬钉:deepseek 不可用时请求直接失败(500),不会回落到 pareto / fireworks / 匿名网。想要「优先 deepseek、挂了再回落」得用网关的 gateway.order(本插件未暴露;only 是唯一实测被 1017 执行的形状)。
卸载
从 dsh.profile.bundles 去掉 dsh-clinepass-pin → 删 node_modules\dsh-clinepass-pin junction → 删插件目录 → 重启。
dsh-clinepass-pin 把 DeepSeek Harness 里的 cline-pass 路由钉到单一上游服务商:往发出的 chat body 里加 providerOptions.gateway.only。之所以要做它,是因为文档里那条路 —— 模型级 compat.vercelGatewayRouting.only,再加上翻转 pi-ai 的 COMPLETIONS_COMPAT_GATE —— 在桌面版上用不了,那个 gate 藏在经过完整性校验的 app.asar 里。
它是 dsh-clinepass 的写入侧搭档,后者只做观察。它只碰匹配的 chat 请求里的 JSON body,从不缓冲流,从不重试,遇到任何意外都回落成未改动的请求。npm test 离线运行。
取舍: 硬钉意味着钉住的上游不可用时请求直接失败(500),而不是回落。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
liujuntao123/dsh-clinepass-pin
把网关请求固定到指定上游服务商,避免渠道漂移
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1