dsh-qoder-connect:在 DeepSeek Harness 中复用 Qoder CN 桌面版登录与模型

前言

在 DeepSeek Harness(DSH)里接第三方模型,常见做法是单独配 API Key、走 OAuth,或维护一套与桌面客户端无关的凭据。若你已经在本机用 Qoder 国内版桌面 App 登录过,更省事的路径是直接复用客户端保存在本地的登录态,让 DSH 模型选择器里出现独立的「Qoder」分组,而不必再跑一遍授权流程。

下面介绍社区插件 dsh-qoder-connect(维护者 marsma-101),它面向「模型推理」场景:解密 Qoder CN 客户端的 Chromium OSCrypt 本地凭据,按 COSY 方案签名请求,并向 DSH 注册 qoder 模型组。插件当前版本 0.1.0,许可证 MIT;GitHub 星标为 0(以仓库公开信息为准)。

这是什么

dsh-qoder-connect 是一条「桌面 App → DSH」的桥接插件:读取 %APPDATA% 下 Qoder CN 的数据目录,解出 auth.v1.dat 中的令牌,经 gateway.qoder.com.cn 的 agent_chat_generation SSE 与上游对话,再通过 loopback OpenAI 兼容入口和 ctx.llm.registerAdapter 把模型挂进 DSH。全程零交互,README 明确说明 No OAuth interaction needed。

签名实现参照 MIT 许可的 qoder2api 公开方案移植。项目声明仅供个人学习与研究,与 Qoder、阿里云、DeepSeek 无关联,使用前请自行阅读仓库免责声明与服务条款。

核心功能

零交互登录与凭据跟随

插件会自动扫描 %APPDATA% 下所有 com.qodercn.app.* 数据目录(stable、beta、dev 等渠道)。对每个候选用 Chromium OSCrypt(DPAPI 保护的 AES-256-GCM)解密 auth.v1.dat:

  • 首次运行会通过 PowerShell 一次性导出各渠道密钥到 <DSH_HOME>\.qoder-connect\oscrypt-<渠道>.key(例如 oscrypt-stable.key);旧版单文件 oscrypt.key 会被复制为 stable 缓存,原文件保留。
  • 之后由 Node 纯本地解密。多个目录都有凭据时 stable 优先,其余按目录 mtime 新者优先。
  • 解密失败会作废缓存并重新导出一次;桌面 App 刷新令牌后,插件按文件 mtime 跟随,签名会话在令牌轮换后自动重建。

一个凭据都解不出时,错误信息会提示:先确认 Qoder 桌面程序已启动并登录过(扫描模型列表与路径期间需保持程序处于启动状态),首次使用需先在 Qoder 里完成一次登录。

显式指定数据目录

设置卡字段 dataDir,或环境变量 QODER_DATA_DIR,可直接指定 Qoder 数据目录,甚至指向 auth.v1.dat 文件。显式路径优先于自动扫描;若显式路径解不开,会自动回落到扫描。

动态模型目录与标注

插件会完整拉取上游模型目录(assistant 分组,不过滤),约 10 分钟 自动刷新。模型名后按 WorkBuddy 样式标注积分倍率(如 · x0.5,免费模型标 · 免费)。上游 enable 与账号余额联动,不代表模型本身不可用,因此 不会 据此隐藏模型。

工具调用与推理

  • 上游返回的 tool_calls 原样并入 OpenAI 兼容响应(流式 delta 与非流式 message 均支持)。
  • 按模型的 is_reasoning 标记决定是否透传思考强度。

工作原理概览

  1. 凭据:扫描候选目录 → 用各渠道密钥缓存解 auth.v1.dat(v10 + nonce + cipher + tag)→ 取得有效 dt- 令牌后用于后续请求。
  2. COSY 签名:设备指纹派生 → RSA(PKCS1) 加密临时密钥 → AES-CBC 加密身份载荷 → 对 payload、密钥、日期、body、path 等做 md5 签名;请求体使用自定义字母表 base64 变体编码。
  3. 协议翻译:聊天走 SSE;上游帧为 {headers, body, statusCodeValue} 信封,兼容 body 为字符串、对象或字面量 "null"。用户消息用 contents 数组重建;developer 角色折叠为 system。
  4. 注册:本地 OpenAI 兼容小门 + DSH 内注册 qoder provider,模型选择器出现 Qoder 分组。

安装与启用

已抓取资料与 GitHub README 未给出 形如 dsh plugin add … 的固定一行安装命令;请勿凭仓库名自行拼接。建议在 DSH 生态的社区目录 SkillHub 中查找并安装该插件:

package.json 中声明插件通过 cordis.patch.yml 作为 bundle patch 接入 DSH(dsh.bundle.patch 指向该文件)。安装前请阅读仓库源码与 MIT 许可证,确认你愿意在本机以 当前 DSH 进程权限 运行解密与签名逻辑(会接触桌面客户端本地登录数据)。

典型用法(可复现前提)

下列步骤来自 README 描述的使用前提,而非虚构案例:

  1. 在本机安装并启动 Qoder CN 国内版 桌面程序,至少完成一次登录(换电脑或换渠道后,该渠道的客户端也需在本机登录过一次,否则密钥导不出)。
  2. 在 DSH 中安装并启用 dsh-qoder-connect(安装入口以 SkillHub 目录页为准)。
  3. 保持 Qoder 桌面程序处于已启动状态,尤其在插件首次扫描模型列表与路径时。
  4. 在 DSH 模型选择器中选择 Qoder 分组下的模型发起对话;若自动扫描找不到数据,可在插件设置中填写 dataDir,或设置环境变量 QODER_DATA_DIR 指向数据目录或 auth.v1.dat。

插件通过 DSH 暴露的 OpenAI 兼容接口调用,具体对话方式与同机其他已注册 provider 一致,无需额外 OAuth 页面。

适用场景与注意事项

适合谁:已在使用 Qoder CN 桌面版、希望在 DSH 统一编排里直接选用 Qoder 模型目录(含工具调用、部分推理模型)的开发者;接受「依赖客户端私有接口、需随上游变更维护」的研究型用法。

环境与限制(README 已知限制):

  • 仅支持国内版(CN)。
  • 请求体基于抓包模板 baseprompt.json,上游结构变化时需更新插件。
  • 依赖 Qoder 客户端私有接口,客户端大版本更新后可能需要调整。

安全与合规:

  • 插件会解密本机 Qoder 登录凭据并代签请求,安装前务必审阅 GitHub 源码;仅建议驱动 你自己的 Qoder 账号在本机调用。
  • 免责声明指出:因使用产生的账号限制、额度清空、服务中断等后果由使用者自行承担;请勿用于商业用途。

结尾

dsh-qoder-connect 把「已在 Qoder 桌面版登录」变成 DSH 里即开即用的 Qoder 模型组:本地 OSCrypt 解密、COSY 签名、动态模型列表与 tool_calls 透传,避免重复 OAuth。DeepSeek Harness 社区采用「一切皆插件」的扩展方式;SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜