用订阅账户的模型对话、识图与生成图片
31.5/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kinoward/dsh-plugin-subhub该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-plugin-subhub(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 21:25:56
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 45 处,展示前 42 条)
- 写入本地文件src/index.js:371
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件src/index.js:372
appendFileSync(path, `[${new Date().toISOString()}] ${message}\n`); - 读取本地文件src/index.js:853
return JSON.parse(readFileSync(path, "utf8")); - 读取本地文件src/index.js:913
const stale = Date.now() - statSync(lockPath).mtimeMs > STALE_LOCK_MS; - 删除本地文件src/index.js:915
rmSync(lockPath, { force: true }); - 发起网络请求src/index.js:929
const response = await fetch(REFRESH_TOKEN_URL, { - 删除本地文件src/index.js:968
rmSync(lockPath, { force: true }); - 写入本地文件src/index.js:975
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件src/index.js:976
writeFileSync(path, JSON.stringify(data, void 0, 2) + "\n", { mode: 384 }); - 写入本地文件src/index.js:980
chmodSync(path, 384); - 发起网络请求src/index.js:1003
const response = await fetch(`${baseURL}/models?client_version=0.0.0`, { - 发起网络请求src/index.js:1399
const iterator = this.request(imageDispatch, watchdog.signal, baseURL, auth, () => { - 发起网络请求src/index.js:1440
return await fetch(`${baseURL}/responses`, { - 读取本地文件src/index.js:1552
return `${file}:${statSync(file).mtimeMs}`; - 删除本地文件src/index.js:1683
rmSync(target, { force: true }); - 删除本地文件src/index.js:1686
rmSync(`${target}.lock`, { force: true }); - 发起网络请求src/index.js:1734
const response = await fetch(url, { - 发起网络请求src/index.js:1790
response = await fetch(url, { headers, signal }); - 发起网络请求src/client.js:213
const response = await fetch(`${base}${path}${sep}locale=${encodeURIComponent(uiLocale)}`, { - 写入剪贴板src/client.js:282
writeClipboard(text).then((ok) => { - 发起网络请求src/device-flow.js:21
return fetch(url, { - 发起网络请求src/device-flow.js:104
const exchangeResponse = await fetch(`${ISSUER}/oauth/token`, { - 发起网络请求src/providers/github.js:106
const response = await fetch(`${baseURL}/models`, { - 发起网络请求src/providers/github.js:139
const probe = await fetch(`${baseURL}${path}`, { - 发起网络请求src/providers/xai.js:124
let response = await fetch(`${baseURL}/models-v2`, { headers }); - 发起网络请求src/providers/xai.js:126
response = await fetch(`${baseURL}/models`, { headers }); - 读取本地文件src/piai.js:132
readFileSync() { - 读取本地文件src/piai.js:135
const data = JSON.parse(readFileSync(path, "utf8")); - 写入本地文件src/piai.js:147
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件src/piai.js:148
writeFileSync(path, JSON.stringify(data, void 0, 2) + "\n", { mode: 384 }); - 写入本地文件src/piai.js:152
chmodSync(path, 384); - 读取本地文件src/piai.js:177
const stale = Date.now() - statSync(lockPath).mtimeMs > STALE_LOCK_MS; - 删除本地文件src/piai.js:179
rmSync(lockPath, { force: true }); - 删除本地文件src/piai.js:197
rmSync(lockPath, { force: true }); - 删除本地文件src/piai.js:206
rmSync(path, { force: true }); - 删除本地文件src/piai.js:209
rmSync(`${path}.lock`, { force: true }); - 读取本地文件src/piai.js:217
for (const entry of readdirSync(dir)) { - 读取本地文件src/piai.js:221
data = JSON.parse(readFileSync(join(dir, entry), "utf8")); - 读取本地文件src/piai.js:240
return `${file}:${statSync(file).mtimeMs}`; - 写入本地文件login.js:62
mkdirSync(dirname(target), { recursive: true }); - 写入本地文件login.js:63
writeFileSync(target, JSON.stringify(data, void 0, 2) + "\n", { mode: 384 }); - 写入本地文件login.js:66
chmodSync(target, 384);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/dsh-timeout给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 接入第三方订阅账户
- 浏览器授权登录
- 模型对话与识图
为 DeepSeek Harness 接入第三方订阅账户(目前支持 OpenAI / ChatGPT、xAI (Grok)、GitHub Copilot,全部通过浏览器授权登录)
README
由 DeepSeek 最新模型翻译生成Dsh Plugin Subhub
English · 中文
= 22.19" />
把第三方订阅账户接入 DeepSeek Harness,使用订阅覆盖的模型进行对话:文字对话、图片理解、图片生成与图片编辑。
目前支持 OpenAI(ChatGPT)、xAI(Grok)、GitHub Copilot 订阅——全部通过浏览器授权登录你的订阅账户。密钥类服务 DeepSeek Harness 已内置,请直接在「模型」页添加。
可用模型、使用额度和响应速度由订阅服务商及你的账户决定。服务商调整服务后,部分功能可能暂时不可用。
安装
- 已安装 DeepSeek Harness(dsh),Node.js 22.19 或更高版本。
dsh plugin --profile web add github:kinoward/dsh-plugin-subhub
dsh web
dsh web 即启动 web profile(等同 dsh --profile web)。安装完成后请重新启动 DeepSeek Harness。
展开完整文档(README 剩余 1 节)
Dsh Plugin Subhub English · 中文 = 22.19" /> 把第三方订阅账户接入 DeepSeek Harness,使用订阅覆盖的模型进行对话:文字对话、图片理解、图片生成与图片编辑。 目前支持 OpenAI(ChatGPT)、xAI(Grok)、GitHub Copilot 订阅——全部通过浏览器授权登录你的订阅账户。密钥类服务 DeepSeek Harness 已内置,请直接在「模型」页添加。 可用模型、使用额度和响应速度由订阅服务商及你的账户决定。服务商调整服务后,部分功能可能暂时不可用。 安装 - 已安装 DeepSeek Harness(dsh),Node.js 22.19 或更高版本。 dsh plugin --profile web add github:kinoward/dsh-plugin-subhub dsh web dsh web 即启动 web profile(等同 dsh --profile web)。安装完成后请重新启动 DeepSeek Harness。 快速开始 1. 登录 —— 打开 设置 → 第三方订阅,在想要接入的订阅卡片上点击「登录」(例如 OpenAI 订阅 卡片对应 ChatGPT 账号、xAI Grok 订阅 卡片对应 SuperGrok / X Premium+ 账号),在浏览器中打开授权链接并输入一次性码(码 15 分钟内有效)。完成授权后页面会自动同步,订阅随即出现在模型选择器中。 2. 选择模型 —— 点击输入框左下角的模型选择器(显示当前模型与推理等级),点「模型」,在 OpenAI 订阅 分组下选择想用的模型;需要时可在同一菜单中调整推理等级。可用模型与推理等级随账户自动同步显示。 3. 使用图片 —— 上传图片并提问、描述画面生成图片,或要求编辑图片: - 查看:“这张图片里有什么?” / “帮我提取图片中的文字。” - 生成:“生成一张雨夜霓虹街道的电影感插画。” - 编辑:先上传图片(或使用刚生成的图片),然后说 “把天空改成晚霞,其他内容保持不变。” 编辑会使用当前对话中最近的一张图片;没有图片时,请先上传一张。 图片理解、生成与编辑都需要支持图片输入的模型,模型信息中会标明(「支持图片」标签)。 账户管理 - 重新登录 / 退出登录 —— 打开 设置 → 第三方订阅:「重新登录」可更换账户;「退出登录」会删除本插件保存的登录信息。 - 更新插件 —— 再次执行安装命令,然后重新启动 DeepSeek Harness。 - 停用插件 —— 打开 设置 → 插件 → 插件列表,停用 dsh-plugin-subhub。 命令行登录(可选) 没有图形界面时,可以使用随包登录脚本完成登录。先进入所用 profile 的目录,再运行: node node_modules/dsh-plugin-subhub/login.js 脚本会打印授权链接和一次性码:在浏览器打开链接、输入码后,凭据会写入 ~/.dsh-plugin-subhub/openai-auth.json。登录完成后,打开一次 设置 → 第三方订阅,订阅即可出现在模型选择器中。随包脚本目前只覆盖 OpenAI;其他服务商请在「第三方订阅」页完成登录。 界面预览 以下为 DeepSeek Harness Web 界面内插件的浏览器窗口截图,浅色与深色主题: 设置 → 第三方订阅(未登录): 设置 → 第三方订阅(已登录): 「模型」页展开的 OpenAI 订阅(已登录): 对话中使用图片(图片理解): 对话中生成图片(文生图): 对话中编辑图片(图生图): 安全与隐私 - 未自定义保存位置时,登录信息保存在 ~/.dsh-plugin-subhub/-auth.json,每个服务商一个文件(如 OpenAI 为 openai-auth.json、xAI 为 xai-auth.json); - 插件创建或更新这些文件时,会将访问权限限制为仅当前系统用户可读写; - 插件不会读取 Codex CLI 或其他程序保存的登录信息,安装后需要在本插件中单独登录一次; - 退出登录会删除本插件当前使用的登录文件; - xAI 登录复用官方 Grok CLI 的同一套 OAuth 流程,属于社区支持路径,xAI 可能随时调整; - 不要分享登录文件、一次性码或其他账户信息,也不要把它们提交到 Git 或 Issue。 支持 - GitHub Issues —— 报告问题或提出建议,发送前请删除账户信息和其他敏感内容。 各服务名称与 Logo 均为其各自所有者的商标。 许可 MIT License
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
kinoward/dsh-plugin-subhub
用订阅账户的模型对话、识图与生成图片
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目