把已付费的 AI 订阅接入 Harness 当模型路由
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/13 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add amosogra/dsh-subscription-signin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 登录订阅制模型通道
在 DeepSeek Harness 里登录 ChatGPT、Claude、Copilot 等订阅制模型通道——Harness 一直没做的登录按钮。
README
由 DeepSeek 最新模型翻译生成dsh-subscription-signin
DeepSeek Harness 一直没做的登录按钮。
把你已经在付费的 AI 订阅——ChatGPT Plus/Pro、Claude Pro/Max、GitHub Copilot 等等——当作模型路由,直接用在 DeepSeek Harness 里。新增一个 Subscriptions 设置页,并在 Settings → Models 的每张服务商卡片上加一个紧凑的扩展。
Settings → Subscriptions → ChatGPT (Codex) → [ Sign in with ChatGPT (Codex) ]
↓
github.com/login/device · code ABCD-1234 ↓ ✓ Signed in — draws on your plan
这个插件从不收集、也不存储密码。登录由厂商在自己的页面上完成;token 由 Harness 的凭据存储写入。
仓库结构
可安装的包是 dsh-subscription-signin/ 目录。
展开完整文档(README 剩余 1 节)
dsh-subscription-signin
DeepSeek Harness 一直没做的登录按钮。
把你已经在付费的 AI 订阅——ChatGPT Plus/Pro、Claude Pro/Max、GitHub Copilot 等等——当作模型路由,直接用在 DeepSeek Harness 里。新增一个 Subscriptions 设置页,并在 Settings → Models 的每张服务商卡片上加一个紧凑的扩展。
Settings → Subscriptions → ChatGPT (Codex) → [ Sign in with ChatGPT (Codex) ]
↓
github.com/login/device · code ABCD-1234 ↓ ✓ Signed in — draws on your plan
这个插件从不收集、也不存储密码。登录由厂商在自己的页面上完成;token 由 Harness 的凭据存储写入。
仓库结构
可安装的包是 dsh-subscription-signin/ 目录。 测试、许可证和文档放在它旁边,不属于包的一部分:
dsh-subscription-signin/ ← the package; this is what you install
host.js ← the Host half (tool + HTTP route)
client.js ← the Client half (settings page + provider card)
cordis.patch.yml ← the accounts, as configuration
locale/en.json ← package metadata strings
package.json
smoketest/ ← five dependency-free suites (run from the root)
docs/FINDINGS.md ← what was measured vs inferred
为什么会有这个插件
要把订阅当作模型路由来用,Harness 该有的东西都已经有了。它的 LLM 适配器为八个服务商注册了 OAuth 流程——传输能用,token 交换能用,凭据存储也能用。
它缺的是一个发起登录的入口。GUI 和命令行里都没有任何地方调用过授权接缝的 begin()。这个插件就是那个缺失的入口。
它不实现任何 OAuth。不碰 PKCE、state、设备码,也不解析 token——这些全都在 DeepSeek 提供的 @earendil-works/pi-ai 里。这个插件只负责让 Harness 发起流程,把 URL 和验证码显示给你,然后报告结果。
支持的服务商
开箱即用,全部走 Harness 自己的授权接缝:
| 服务商 | 凭据 | 登录方式 |
| ChatGPT (Codex) | llm-pi-ai/openai-codex | 设备码 |
| Claude (Pro/Max) | llm-pi-ai/anthropic | OAuth |
| GitHub Copilot | llm-pi-ai/github-copilot | 设备码 |
| xAI | llm-pi-ai/xai | 设备码 |
| Meta | llm-pi-ai/meta | 设备码 |
| OpenRouter | llm-pi-ai/openrouter | OAuth + 粘贴回退 |
| Radius | llm-pi-ai/radius | 浏览器回调 |
| Kimi For Coding | llm-pi-ai/kimi-coding | 设备码 |
如实说明。 登录流程已端到端验证通过的有 ChatGPT (Codex) 和 Claude (Pro/Max);Claude 这条路线观察到认证成功,随后被账号限流(HTTP 429,带 Anthropic 自己的 request_id——这是配额问题,不是凭证失败)。Copilot 的流程已验证,能走完。xAI、Meta、OpenRouter、Radius 和 Kimi 的凭证写入成功,但在验证时的会话里,这些路线没有处理过任何请求,所以把它们当作未测试,而不是坏了。docs/FINDINGS.md 记录了哪些是实测、哪些是推断。
安装
要求。 DeepSeek Harness 0.2.0-rc.2 或更高版本。开发和验证都基于 0.2.0-rc.2,本插件的两个接缝就是在这个版本上检查的(来自 @deepseek-ai/dsh-authorization 的 ctx.authorization,以及客户端的 slots 服务)。它用到的每个 Harness 服务都通过防御性的 ctx.get(...) 加 undefined 检查来访问,所以缺了某个服务只会降级成一条上报消息,不会崩溃——但如果 Harness 挪动了某个接缝,仍然需要匹配的插件版本。
插件以 bundle 形式安装到 Harness 的配置档里。把插件管理器指向这个目录:
install_bundle: link:/absolute/path/to/dsh-subscription-signin
或者,如果你把它作为包发布/使用,就按名字安装,再加进配置档的 bundle 列表:
// $DSH_PROFILE_DIR/package.json
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-subscription-signin"] } }
然后重启一次 DSH。 这一点很重要,原因见故障排查——客户端那一半在启动时被组装进浏览器的 boot graph,所以刚安装的 bundle 在进程重启前没有页面。
使用
在 GUI 里:Settings → Subscriptions,选一个账号,按 Sign in。
给智能体或无头 harness 用时,同一套实现暴露为一个工具,动作有 status、start、poll、cancel、signout、submitCode 和 diagnostics。先读 status;start 返回 URL,如果是设备授权,还返回你在厂商页面上输入的 code。
安全
这一节是信任插件的理由,所以写得具体,而不是空口安慰。
它永远看不到密钥。 不读取、不写入、不记录、不转发任何密码、token、API key 或 refresh token。token 由 Harness 的凭证接缝(ctx.authorization / ctx.credentials)生成和存储,不是这段代码。自己审计吧——只有两个文件:
- host.js —— 零 import。不访问文件系统,不发网络请求,不起子进程。它只向凭证存储询问某条记录是否存在,并且能在显式 signout 且 confirm: true 时删除一条;它从不读取 token 值。唯一一处 process.env 写入是文档里写明的按账号 env 字段(用于让某个服务商从环境变量里选端点的那种情况,可以按账号配置),尝试结束后会恢复。
- client.js —— 只依赖 react,由页面提供。它唯一的 fetch 调用发往本地 Harness 上插件自己的 /plugins/subscription-signin 路由。凭据不会渲染出任何内容。
唯一承载网络的路由受信任门控。 面板通过一条 HTTP 路由访问 Host 半边,该路由继承 Harness 自身的检查(connection.requestRejection:Host/Origin 校验与浏览器认证)。除此之外,每个变更调用都必须是 JSON POST,这会强制触发 CORS 预检并阻断基于表单的 CSRF;请求体上限 64 KiB;响应为 no-store + nosniff。
未获厂商认可 —— 请读这一段。 对于 ChatGPT 套餐用量,Harness 指向 ChatGPT/Codex 后端(chatgpt.com/backend-api/codex),而 OpenAI 的开发者文档明确要求第三方应用不要将其用于套餐用量。本插件只是把 Harness 已有的行为暴露出来;它不引入该行为,也无法改变它。 第三方应用获认可的路径是 Sign in with ChatGPT,Harness 并未实现。在厂商预期客户端之外使用订阅,可能与该厂商的条款冲突,厂商也可能对此类流量限速或封禁。你是用自己的账号在做这个选择。不要用它转售访问权限,也不要用它去获取不属于你的凭据。
本仓库不含任何凭据。 如果你在这里发现了凭据,那是 bug —— 请开 issue。仓库在首次提交前已扫描 token、私钥、家目录路径和邮箱地址。docs/FINDINGS.md 确实引用了 Harness 中确切的包版本和源码符号,这是有意为之:关于某个具体构建的说法,只有指明构建才有用。
配置
账号是配置出来的,不是硬编码的。它们位于本包自己的 cordis.patch.yml,配置档可以覆盖该行。
| 字段 | 含义 |
| accounts[].key | 接缝已有流程的凭据键,例如 llm-pi-ai/anthropic |
| accounts[].label | 显示名称 |
| accounts[].loginMethod | 当服务商提供多种方式时固定一种(oauth、device_code、browser、api-key) |
| accounts[].env | 流程的环境变量覆盖,例如 Kimi 的区域 OAuth 主机 |
| accounts[].textAnswer | 对流程抛出的阻塞式自由文本问题的回答(留空往往是正确答案) |
| timeoutSeconds | 尝试超时,默认 900 |
| allowSignOut | 设为 false 可完全移除退出登录控件 |
添加服务商只需一行 —— 前提是 Harness 已为其凭据键注册了流程。用工具的 status 动作或在面板中列出它们;没有流程的键会报告 No sign-in flow registered,而不是静默失败。
Kimi For Coding 比较微妙。Kimi Code 就是 OAuth —— 一个 RFC 8628 设备授权没问题,但它的登录页面分区域:auth.kimi.com 是大陆服务(手机号或微信),会把国际用户引导到 .ai。主机名可以通过环境变量选择,所以账户配置里直接写明:
- key: llm-pi-ai/kimi-coding
env:
KIMI_CODE_OAUTH_HOST: https://auth.kimi.ai
.ai 主机已经验证过:它能响应设备授权端点,也能提供海外登录页面(Google、邮箱、国际手机号、SSO),而不是大陆页面。token 交换本身尚未验证。
故障排查
安装后设置里看不到 Subscriptions 页面。 重启 DSH。这不是重装能修好的 bug,原因值得了解:dsh-client-modules 会按加载器来源键缓存包的 dsh.client 声明,连否定结果也一起缓存,「直到重启」。如果这个 bundle 曾经在它的 manifest 声明 dsh.client 之前被解析过,那个 null 就会在整个进程生命周期内被缓存,bundle 永远进不了启动图,这个区块既无法渲染也无法报错——它干脆不存在。重装会复用同一个加载器名,查的还是那个被污染的键。只有重启才能清掉。diagnostics 动作会报告 bundleInGraph、composedPackages 和 clientPath,靠它们可以区分是 bundle 缺失还是组件抛错。
某个服务商提示「No sign-in flow registered」。 注册该流程的 Harness LLM 插件没有挂载,或者凭证键拼错了。键的格式是 llm-pi-ai/<provider>。
选中固定路由里的模型时失败。 固定 models: 只是限定路由范围,不会检查你的订阅。在目录路由上,路由自己的列表说了算,所以你的套餐不包含的模型照样会被列出,只有请求时才失败。未固定的路由会自我修正,因为服务商按请求校验权限。
一个尝试会阻塞另一个。 每个凭证键同一时间只能有一个尝试,与接缝保持一致。切换账户前先取消。
测试
五个无依赖测试套件用打桩的 Harness 服务驱动前后两半——不联网、不碰凭证存储、不触碰真实安装。从仓库根目录运行:
node smoketest/render.mjs # renders every UI branch in Node
node smoketest/accounts.mjs # the shipped account list + multi-account paths
node smoketest/run.mjs # tool and shared-service paths
node smoketest/http.mjs # the route: 15 assertions incl. the trust gate
node smoketest/bundles.mjs # is the client half actually in the boot graph?
render 之所以存在,是因为组件在渲染时抛错会悄无声息地让整个槽位变空白——这是发现这种失败最省事的办法。bundles 之所以存在,是因为客户端 bundle 缺失同样悄无声息,而从用户角度看两者一模一样。每个套件都直接导入包的真实模块,所以任何套件都不可能对着过期副本通过。
CI 会在每次 push 和 pull request 时,用 Node 20、22 和 24 跑全部五项检查,另外还会检查 manifest 是否仍然声明了 web 客户端那一半,且它的导出能解析到真实文件——也就是 docs/FINDINGS.md 里描述的那种失败模式。注意这个工作流不做什么:没有 npm install。 这个包零依赖,测试也不导入标准库以外的任何东西。哪天这一点不再成立,CI 就会失败,这正是我们想要的信号。
贡献
- 发现了安全问题? 请私下报告——见 SECURITY.md。那个文件也说明了什么在范围内,这一点在这里很重要:下面那条非官方后端的注意事项是有意为之、且已记录在案的取舍,不是漏洞。
- 某个页面缺失,或者登录失败? 开一个 bug report。请附上 diagnostics 的输出(其中不含任何机密),并说明你遇到的是两种静默失败模式中的哪一种——页面缺失和页面抛错看起来一模一样,但成因不同。
- 某个服务商的流程不对或缺失? 那是 Harness 上游的问题,不是这个插件——它不实现任何 OAuth。插件侧也许仍能绕过,所以还是请开 issue。
- 本项目遵循 Contributor Covenant。
- 内部规则见 CONTRIBUTING.md——不加新依赖、绝不读取机密、守住信任门。
许可证
MIT——见 LICENSE。
与 DeepSeek、OpenAI、Anthropic、GitHub、xAI、Meta、Moonshot 或此处提及的任何其他厂商均无关联,也未获其背书或赞助。产品名称仅用于标识所连接的订阅。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
amosogra/dsh-subscription-signin
把已付费的 AI 订阅接入 Harness 当模型路由
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 553已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。