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

插件工坊 yyyyukari/dsh-plugin-workshop

DeepSeek Harness
yyyyukari77 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness(DSH)Web UI 的 Steam 创意工坊式插件浏览器——零服务器:GitHub 驱动搜索、趋势窗口、中文搜索与双语翻译、插件签名过滤,还有智能一键安装/更新/卸载,附带已装插件管理器。

40.6/100
综合分
24
GitHub 星标
—
npm 周下载
—/5
用户评分

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

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yyyyukari/dsh-plugin-workshop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✗npm 包@dsh-external/dsh-plugin-workshop(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

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

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

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 61 处,展示前 35 条)
  • 执行外部命令固定命令
    lib/index.js:65
    const r = spawnSync('git', ['--version'], { encoding: 'utf8', timeout: 10000, windowsHide: true })
  • 执行外部命令来自配置/变量
    lib/index.js:77
    return spawnSync(cmd, args, { encoding: 'utf8', timeout: timeoutMs || 180000, windowsHide: true })
  • 读取本地文件
    lib/index.js:83
    return JSON.parse(readFileSync(join(profileDir(), 'package.json'), 'utf8'))
  • 读取本地文件
    lib/index.js:139
    dirs = readdirSync(presetsDir(), { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name)
  • 读取本地文件
    lib/index.js:156
    hasLocal: !!(info && info.fromLink && existsSync(join(presetsDir(), info.repo))),
  • 读取本地文件
    lib/index.js:176
    return JSON.parse(readFileSync(join(profileDir(), 'node_modules', pkgName, 'package.json'), 'utf8'))
  • 读取本地文件
    lib/index.js:191
    const lines = readFileSync(patchPath(), 'utf8').split(/ ? /)
  • 读取本地文件
    lib/index.js:209
    if (!existsSync(p)) return true
  • 写入本地文件
    lib/index.js:237
    writeFileSync(p, out, 'utf8')
  • 写入本地文件
    lib/index.js:240
    writeFileSync(p, lines.join('\n'), 'utf8')
  • 写入本地文件
    lib/index.js:263
    writeFileSync(p, text, 'utf8')
  • 删除本地文件递归
    lib/index.js:349
    if (st.isSymbolicLink() || st.isDirectory()) rmSync(entry, { recursive: true, force: true })
  • 写入本地文件
    lib/index.js:391
    writeFileSync(file, lines.join('\r\n'), 'utf8')
  • 执行外部命令固定命令
    lib/index.js:392
    const child = spawn('cmd', ['/c', file], { detached: true, stdio: 'ignore', windowsHide: true })
  • 写入本地文件
    lib/index.js:414
    try { writeFileSync(file, id, 'utf8') } catch (e) { }
  • 写入本地文件
    lib/index.js:439
    writeFileSync('C:/Users/Administrator/workshop-host-probe.txt', 'apply ran: ' + new Date().toISOString())
  • 删除本地文件递归
    lib/index.js:502
    rmSync(cloneDir, { recursive: true, force: true })
  • 删除本地文件递归
    lib/index.js:534
    rmSync(tmp, { recursive: true, force: true })
  • 删除本地文件递归
    lib/index.js:579
    rmSync(tmp, { recursive: true, force: true })
  • 删除本地文件递归
    lib/index.js:585
    rmSync(tmp, { recursive: true, force: true })
  • 删除本地文件递归
    lib/index.js:589
    if (existsSync(target)) rmSync(target, { recursive: true, force: true })
  • 发起网络请求
    lib/client.js:44
    const r = await window.fetch(path, { headers: { 'X-DSH-Workshop': '1' } })
  • 发起网络请求
    lib/client.js:60
    const res = await window.fetch(url, { headers: headers })
  • 发起网络请求
    lib/client.js:70
    const r = await window.fetch(url, { signal: AbortSignal.timeout(10000) })
  • 请求外部主机translate.googleapis.com
    lib/client.js:191
    return window.fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dt=t&q=' + encodeURIComponent(t), { signal: Abort
  • 发起网络请求
    lib/client.js:191
    return window.fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dt=t&q=' + encodeURIComponent(t), { signal: Abort
  • 写入剪贴板
    lib/client.js:581
    try { if (window.navigator && window.navigator.clipboard) window.navigator.clipboard.writeText(line) } catch (e) {}
  • 发起网络请求
    lib/client.js:806
    window.fetch(statsUrl.replace(/ +$/, '') + '/stats?repos=' + encodeURIComponent(names), { signal: AbortSignal.timeout(6000) })
  • 发起网络请求
    src/client/index.js:42
    const r = await window.fetch(path, { headers: { 'X-DSH-Workshop': '1' } })
  • 发起网络请求
    src/client/index.js:58
    const res = await window.fetch(url, { headers: headers })
  • 发起网络请求
    src/client/index.js:68
    const r = await window.fetch(url, { signal: AbortSignal.timeout(10000) })
  • 请求外部主机translate.googleapis.com
    src/client/index.js:189
    return window.fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dt=t&q=' + encodeURIComponent(t), { signal: Abort
  • 发起网络请求
    src/client/index.js:189
    return window.fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=zh-CN&dt=t&q=' + encodeURIComponent(t), { signal: Abort
  • 写入剪贴板
    src/client/index.js:579
    try { if (window.navigator && window.navigator.clipboard) window.navigator.clipboard.writeText(line) } catch (e) {}
  • 发起网络请求
    src/client/index.js:804
    window.fetch(statsUrl.replace(/ +$/, '') + '/stats?repos=' + encodeURIComponent(names), { signal: AbortSignal.timeout(6000) })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:translate.googleapis.com

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

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

功能亮点

  • GitHub驱动插件搜索
  • 趋势窗口浏览
  • 插件签名过滤

README

由 DeepSeek 最新模型翻译生成
🧩 DSH 插件工坊(dsh-plugin-workshop) DeepSeek Harness(DSH)的创意工坊式插件浏览器——零服务器、单包开箱即用,内置在 DSH Web UI 侧栏「新会话」按钮正下方。 与 DSH_Creative_Workshop 的中心化市场平台路线不同,本项目走零基础设施路线:目录、搜索、热度、发布时间全部由 GitHub 免费提供,不部署任何控制平面或账号系统,装进 profile 即用。 ✨ 特性 - 侧栏常驻入口:官方「新会话」按钮正下方,同款样式(DOM 克隆官方按钮,宽/窄侧栏自适应),刷新、重启都不丢 - 搜索与排序:关键词搜索(支持中文,自动映射英文)、★最热 / ⏰最新、飙升榜时间窗口(近 7/30/90 天新建 + 热度排序,Steam Trending 近似) - 默认只搜 DSH 插件:默认「插件话题」(topic:dsh-plugin);搜索结果自动排除官方 harness 等核心仓库(查询级 -repo: 过滤,不再占据榜首);全站模式自带插件特征验证(检查 package.json 的 dsh 字段 / cordis.yml 等,走 raw CDN 不耗 API 额度),默认过滤无关仓库
展开完整文档(README 剩余 1 节)
🧩 DSH 插件工坊(dsh-plugin-workshop)

DeepSeek Harness(DSH)的创意工坊式插件浏览器——零服务器、单包开箱即用,内置在 DSH Web UI 侧栏「新会话」按钮正下方。

与 DSH_Creative_Workshop 的中心化市场平台路线不同,本项目走零基础设施路线:目录、搜索、热度、发布时间全部由 GitHub 免费提供,不部署任何控制平面或账号系统,装进 profile 即用。

✨ 特性

- 侧栏常驻入口:官方「新会话」按钮正下方,同款样式(DOM 克隆官方按钮,宽/窄侧栏自适应),刷新、重启都不丢
- 搜索与排序:关键词搜索(支持中文,自动映射英文)、★最热 / ⏰最新、飙升榜时间窗口(近 7/30/90 天新建 + 热度排序,Steam Trending 近似)
- 默认只搜 DSH 插件:默认「插件话题」(topic:dsh-plugin);搜索结果自动排除官方 harness 等核心仓库(查询级 -repo: 过滤,不再占据榜首);全站模式自带插件特征验证(检查 package.json 的 dsh 字段 / cordis.yml 等,走 raw CDN 不耗 API 额度),默认过滤无关仓库
- 已安装管理:工具栏「📦 已安装」视图——合并 profile 依赖/激活行/本地预设展示本机插件(类型、激活状态、安装来源),一键更新(pnpm update / git pull)与卸载
- 双语体验:描述一键切换原文/中文机翻,README 可整篇翻译(Google 翻译接口,自动缓存)
- 智能一键安装/卸载(预检分级):详情页自动预检仓库结构,给出「可直接安装 / 有风险 / 建议手动」三级评级——标准 bundle/nested/preset 一键安装照旧;特殊结构(多包 monorepo、非插件仓库、带构建脚本等)自动降级为作者给出的安装方式(从 README 提取安装命令,可复制,绝不自动执行)。卸载按安装方式逆向清理(pnpm remove 失败则不动文件、不留失效链接;成功后自动重启 dsh web 刷新插件表);缺 git 时界面明确提示
- 详情页:星数/fork/语言/许可证/创建时间、README 轻量渲染、手动安装命令、GitHub 直达
- 额度透明:实时显示 GitHub 搜索剩余额度与恢复倒计时;可选填 GitHub Token(30 次/分,仅存本机浏览器)
- 零服务器:数据全部来自 GitHub 搜索 API(浏览器直连,CORS)+ raw.githubusercontent.com(特征验证与 README);可选接入统计服务后解锁「社区装机徽章 + 真·飙升榜」(见 remote/README.md,不部署零影响)

📦 安装

以 web profile 为例:

一条命令即可:本包在 package.json 声明了 dsh.bundle.patch,
dsh plugin add 会自动把它加入 profile 的 dsh.profile.bundles,
启动时其 cordis.patch.yml 作为 bundle 补丁层自动激活,无需手改配置。
dsh plugin --profile web add "github:yyyyukari/dsh-plugin-workshop"

重启 dsh web 并刷新浏览器

手动接入旧流程:把本包加进 profile dependencies,并在 $DSH_HOME/profiles/web/cordis.patch.yml 添加:
- insert:
- id: plugin-workshop
name: '@dsh-external/dsh-plugin-workshop'

激活后侧栏「新会话」下方出现「🧩 插件工坊」,点击打开浮层;设置 → 插件 区也有「插件工坊」标签页。

🧭 使用

| 需求 | 操作 |
| 找 DSH 插件 | 默认即「插件话题」列表(topic:dsh-plugin 收录的仓库) |
| 看飙升榜 | 时间下拉选 近7天/近30天/近90天飙升 + ★最热 |
| 中文搜索 | 直接输入「天气」「翻译」等中文词,自动映射英文关键词 |
| 看中文描述 | 工具栏「描述中文」;详情页「翻译 README」 |
| 安装/更新/卸载插件 | 详情页「一键安装(订阅)/ 更新到最新 / 卸载」,按仓库类型自动选择安装路径(需要本机 git,缺失时会提示) |
| 提高搜索额度 | 工具栏 ⚙ → 填入 GitHub Personal Access Token |

🏗️ 架构

- 宿主侧(lib/index.js):在 webServer 服务上注册同源 HTTP 路由 /dsh-plugin-workshop/api/{status,install,update,uninstall};智能安装(bundle/preset 类型检测)与逆向卸载(严格输入校验 + 自定义头 CSRF 防护)
- 浏览器侧(lib/client.js):React + 平台种子模块;DOM 克隆官方按钮 + MutationObserver 自愈;shell.overlay 与 settings.plugins.tab 双挂载
- 数据流:GitHub 搜索 API(匿名 10 次/分)→ 特征验证与 README(raw CDN,无额度)→ 机翻(Google gtx)
- 安全:不执行任何第三方代码;Token 仅存 localStorage

🗺️ Roadmap

- [x] v1.1 一键安装/更新(宿主 API:git 探测、clone/pull 到 .agent-presets,缺失时界面提示)
- [x] v1.2 智能安装/卸载:bundle 型走官方 dsh plugin add + 激活行,preset 型走 .agent-presets,卸载逆向清理(实测通过)
- [x] v1.3 遵循 DSH bundle 规范:package.json 声明 dsh.bundle.patch(dsh plugin add 一条命令自动激活);智能安装兼容三种仓库形态(bundle / nested / preset)
- [x] v1.4 「已安装」管理视图(更新/卸载、类型与激活状态);搜索结果排除官方核心仓库;卸载安全化(失败不改动、自动重启刷新)
- [x] v1.5 可选统计服务(Phase A):匿名装机埋点 + 社区装机徽章 + 真·飙升榜(Cloudflare Worker 参考实现见 remote/,未部署时零影响)
- [x] 社区索引收录:✅ 三大列表全部收录——awesome-dsh-plugin(UI Enhancements 分类)/ awesome-deepseek-harness / awesome-dsh-plugins

📄 License

MIT
预览分享卡片长什么样 ↓yyyyukari/dsh-plugin-workshop
分享 · DeepSeek Harness Hub
yyyyukari/dsh-plugin-workshop

DeepSeek Harness(DSH)Web UI 的 Steam 创意工坊式插件浏览器——零服务器:GitHub 驱动搜索、趋势窗口、中文搜索与双语翻译、插件签名过滤,还有智能一键安装/更新/卸载,附带已装插件管理器。

回到顶部