🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

ChatGPT 订阅接入 songoao25/dsh-chatgpt-sub

DeepSeek Harnessv0.6.3
songoao2515 天前有提交已提供中文文档扫描:含敏感能力

一个 DeepSeek Harness 插件:通过 OpenAI 登录页面连接 ChatGPT 账号,在 DSH…

46.3/100
综合分
23
GitHub 星标
1,117
npm 周下载
—/5
用户评分

数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-chatgpt-sub
npm 源 · dsh-chatgpt-sub 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · model
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-chatgpt-sub @ 0.6.3
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 07:30:07

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 59 处,展示前 35 条)
  • 发起网络请求
    lib/index.js:30
    return fetch(UPDATE_REGISTRY_URL, {
  • 读取本地文件
    lib/index.js:78
    if (!process.env.DSH_CHATGPT_DATA_DIR && existsSync(LEGACY_DATA_DIR) && !existsSync(DATA_DIR)) {
  • 写入本地文件
    lib/index.js:79
    try { renameSync(LEGACY_DATA_DIR, DATA_DIR); } catch { }
  • 读取本地文件
    lib/index.js:142
    raw = readFileSync(filePath, 'utf8')
  • 写入本地文件
    lib/index.js:167
    mkdirSync(dirname(filePath), { recursive: true, mode: 0o700 })
  • 写入本地文件
    lib/index.js:168
    writeFileSync(tmp, JSON.stringify(payload, null, 2) + '\n', { mode: 0o600 })
  • 写入本地文件
    lib/index.js:169
    chmodSync(tmp, 0o600)
  • 写入本地文件
    lib/index.js:170
    renameSync(tmp, filePath)
  • 写入本地文件
    lib/index.js:171
    chmodSync(filePath, 0o600)
  • 删除本地文件
    lib/index.js:179
    unlinkSync(filePath)
  • 读取本地文件
    lib/index.js:243
    raw = readFileSync(filePath, 'utf8')
  • 请求外部主机auth.openai.com
    lib/index.js:278
    const res = await fetch('https://auth.openai.com/oauth/token', {
  • 发起网络请求
    lib/index.js:278
    const res = await fetch('https://auth.openai.com/oauth/token', {
  • 请求外部主机auth.openai.com
    lib/index.js:498
    const res = await fetch('https://auth.openai.com/oauth/token', {
  • 发起网络请求
    lib/index.js:498
    const res = await fetch('https://auth.openai.com/oauth/token', {
  • 删除本地文件
    lib/index.js:931
    if (previousAuth === null) unlinkSync(CODEX_AUTH_FILE);
  • 发起网络请求
    lib/client.js:132
    return fetch(url, {
  • 读取本地文件
    lib/self-update.js:48
    if (lstatSync(base).isSymbolicLink()) return null
  • 读取本地文件
    lib/self-update.js:51
    if (existsSync(cursor) && lstatSync(cursor).isSymbolicLink()) return null
  • 读取本地文件
    lib/self-update.js:51
    if (existsSync(cursor) && lstatSync(cursor).isSymbolicLink()) return null
  • 读取本地文件
    lib/self-update.js:238
    try { names = readdirSync(dir) } catch { return }
  • 读取本地文件
    lib/self-update.js:244
    try { info = lstatSync(full) } catch { continue }
  • 删除本地文件递归
    lib/self-update.js:267
    rmSync(backupDir, { recursive: true, force: true })
  • 写入本地文件
    lib/self-update.js:268
    mkdirSync(backupDir, { recursive: true })
  • 读取本地文件
    lib/self-update.js:273
    if (!source || !target || !existsSync(source)) continue
  • 写入本地文件
    lib/self-update.js:274
    mkdirSync(dirname(target), { recursive: true })
  • 写入本地文件
    lib/self-update.js:275
    copyFileSync(source, target)
  • 删除本地文件递归
    lib/self-update.js:279
    rmSync(backupDir, { recursive: true, force: true })
  • 写入本地文件
    lib/self-update.js:285
    mkdirSync(dirname(target), { recursive: true })
  • 写入本地文件
    lib/self-update.js:287
    writeFileSync(temp, file.data)
  • 写入本地文件
    lib/self-update.js:288
    renameSync(temp, target)
  • 删除本地文件
    lib/self-update.js:309
    rmSync(target, { force: true })
  • 发起网络请求
    lib/self-update.js:333
    const fetchImpl = config.fetch || ((...args) => fetch(...args))
  • 删除本地文件递归
    lib/self-update.js:440
    rmSync(join(backupRoot, name), { recursive: true, force: true })
  • 读取本地文件
    lib/version.js:19
    const pkg = JSON.parse(readFileSync(PACKAGE_FILE, 'utf8'))
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:auth.openai.com

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

ChatGPT 订阅 - DeepSeek Harness 插件:用官方 OAuth 绑定 ChatGPT 账号,在 DSH 里直接聊 ChatGPT 模型,走你的 Plus/Pro 订阅额度

v0.6.32026-10-17
· 0.6.3(2026-10-17) · 问题修复 · 登录不再依赖浏览器启动,可独立完成(#59)(4576075)
v0.6.22026-10-16
· 0.6.2 (2026-10-16) · Bug Fixes · create the auth directory before saving first sign-in (#56) (4bf7e3b)
原文(未汉化)
v0.6.12026-10-14
· 0.6.1 (2026-10-14) · Bug Fixes · match the host plugin-detail contract in the settings page (#52) (9679234)
原文(未汉化)
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
ChatGPT 订阅 一个 DeepSeek Harness 插件:通过 OpenAI 登录页面连接 ChatGPT 账号,在 DSH 中使用该账号可用的 ChatGPT 模型。需要账号有 Codex 使用权限和足够的额度。插件不会拒绝免费账号,但登录成功不代表能在 DSH 中使用模型;实际可用性取决于 OpenAI 对套餐、客户端和模型的限制,见 OpenAI 当前套餐说明。 功能 在插件页登录,再选择提供商 ChatGPT 下的模型即可对话。插件自动维护登录状态,并显示账号、有效期以及「重新绑定 / 解绑」操作。可用模型取决于账号套餐和 DSH 的模型支持。 配套的底部信息栏显示可读取的额度窗口与重置时间。两个插件可以分别安装;ChatGPT 额度显示需要有效登录。 安装 推荐:在 DSH 里按包名从 npm 安装。 打开 DSH 插件 → 添加插件,填 npm 包名: dsh-chatgpt-sub DSH 会去 npm 查这个名字、用 pnpm 装好 —— 不用克隆仓库,也不跑构建。包自 2026-10-13 起在 npm 公开。
展开完整文档(README 剩余 1 节)
ChatGPT 订阅

一个 DeepSeek Harness 插件:通过 OpenAI 登录页面连接 ChatGPT 账号,在 DSH 中使用该账号可用的 ChatGPT 模型。需要账号有 Codex 使用权限和足够的额度。插件不会拒绝免费账号,但登录成功不代表能在 DSH 中使用模型;实际可用性取决于 OpenAI 对套餐、客户端和模型的限制,见 OpenAI 当前套餐说明。

功能

在插件页登录,再选择提供商 ChatGPT 下的模型即可对话。插件自动维护登录状态,并显示账号、有效期以及「重新绑定 / 解绑」操作。可用模型取决于账号套餐和 DSH 的模型支持。

配套的底部信息栏显示可读取的额度窗口与重置时间。两个插件可以分别安装;ChatGPT 额度显示需要有效登录。

安装

推荐:在 DSH 里按包名从 npm 安装。 打开 DSH 插件 → 添加插件,填 npm 包名:

dsh-chatgpt-sub

DSH 会去 npm 查这个名字、用 pnpm 装好 —— 不用克隆仓库,也不跑构建。包自 2026-10-13 起在 npm 公开。

使用命令行启动的网页端,也可以执行:

dsh plugin --profile web add dsh-chatgpt-sub

npm 连不上时,改填仓库地址兜底 —— 仓库已包含构建文件,填地址安装同样不需要构建:

https://github.com/SONGOAO25/dsh-chatgpt-sub

装完重启 DSH,只刷新页面不够。桌面客户端请使用 插件 → 添加插件;它的配置由客户端管理,不能通过命令行安装。

本地安装、Windows 说明、更新与故障排查见 docs/INSTALL.md。

设置

进入 插件 → ChatGPT 订阅,点击「绑定 ChatGPT 账号」,在浏览器中完成授权。页面显示「已连接」后,在对话的模型选择器中选择 ChatGPT 模型。如果授权页面没有打开,请允许 DSH 的弹窗。

浏览器只会在插件保存登录信息并连接到 DSH 后显示成功。失败时请返回插件页查看原因,不要分享登录文件或授权网址。

「重新绑定」重新完成账号授权;「解绑」断开该账号与本插件的连接。插件不会自动使用已有的 Codex CLI 登录。

登录信息与更新

授权和模型请求与 OpenAI 官方服务通信。登录信息保存在本机标准位置 ~/.codex/auth.json,只有文件所有者可读写,并同步到 DSH 的凭据库。绑定会更新这个共用文件,因此可能改变 Codex CLI 使用的账号。登录信息会随授权请求传给 OpenAI,不写入插件日志。

解绑和卸载保留 ~/.codex/auth.json,清除本插件的绑定和它管理的 DSH 条目。插件自动续期登录。版本与更新中,自动更新(默认)在 DSH 启动时检查 npm,校验并替换插件文件,重启后生效;手动模式只检查,安装前需要确认。更新失败会恢复旧文件,需要时可在设置中回滚。登录信息会保留。本地副本和链接安装需要更新代码并重新构建,见 docs/INSTALL.md。

卸载与回退

桌面客户端在 插件 页卸载;命令行网页端执行 dsh plugin --profile web remove dsh-chatgpt-sub,然后重启 DSH。卸载会保留 ~/.codex/auth.json(Codex CLI 自己的登录态),清除本插件的绑定和它管理的 DSH 条目。想退回上一版而不卸载:更新失败后、或新版正在等待重启时,可在版本与更新里回滚。报告问题时,不要附登录文件、凭据或真实账号信息。

语言

插件内置简体中文、繁体中文、英语、日语、韩语、西班牙语、葡萄牙语、法语、德语、意大利语、俄语、印地语和印度尼西亚语。默认跟随 DSH 的语言;也可以在本插件设置页的语言中单独选择,选择会保存在当前浏览器。墨西哥西班牙语、巴西葡萄牙语等地区变体使用对应的内置语言;不支持的语言显示英语。

开发

- 构建:npm run build
- 测试:node tests/run-all.mjs
- 贡献指南:CONTRIBUTING.md
- 安全问题:SECURITY.md

许可证

MIT © 2026 SONGOAO25
预览分享卡片长什么样 ↓songoao25/dsh-chatgpt-sub
分享 · DeepSeek Harness Hub
songoao25/dsh-chatgpt-sub

一个 DeepSeek Harness 插件:通过 OpenAI 登录页面连接 ChatGPT 账号,在 DSH…

回到顶部