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

插件市场 AwesomeHou/dsh-plugin-marketplace

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

一个 DeepSeek Harness 的永久插件,把 GitHub

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

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

自动兼容检查有告警:npm 同名包「dsh-plugin-marketplace」归属 scorp1o117/dsh-plugin-marketplace,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add AwesomeHou/dsh-plugin-marketplace
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

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

npm 同名包「dsh-plugin-marketplace」归属 scorp1o117/dsh-plugin-marketplace,装到的可能不是本插件

展开查看检查明细 ↓

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 22:41:25

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 61 处,展示前 30 条)
  • 读取本地文件
    lib/index.js:107
    if (!existsSync(file)) return null
  • 读取本地文件
    lib/index.js:109
    const txt = readFileSync(file, 'utf8')
  • 读取本地文件
    lib/index.js:153
    if (!existsSync(path)) return null
  • 读取本地文件
    lib/index.js:154
    try { return JSON.parse(readFileSync(path, 'utf8')) } catch { return null }
  • 写入本地文件
    lib/index.js:159
    writeFileSync(join(webProfileDir(), 'package.json'), JSON.stringify(manifest, null, 2) + '\n')
  • 读取本地文件
    lib/index.js:166
    if (!existsSync(path)) return null
  • 读取本地文件
    lib/index.js:167
    try { return JSON.parse(readFileSync(path, 'utf8')) } catch { return null }
  • 请求外部主机registry.npmjs.org
    lib/index.js:251
    const res = await fetch(`https://registry.npmjs.org/${name}/latest`, {
  • 发起网络请求
    lib/index.js:251
    const res = await fetch(`https://registry.npmjs.org/${name}/latest`, {
  • 请求外部主机raw.githubusercontent.com
    lib/index.js:276
    const res = await fetch(`https://raw.githubusercontent.com/${owner}/${repo}/HEAD/package.json`, {
  • 发起网络请求
    lib/index.js:276
    const res = await fetch(`https://raw.githubusercontent.com/${owner}/${repo}/HEAD/package.json`, {
  • 请求外部主机api.github.com
    lib/index.js:287
    const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/releases/latest`, {
  • 发起网络请求
    lib/index.js:287
    const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/releases/latest`, {
  • 执行外部命令固定命令
    lib/index.js:417
    const killer = spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
  • 执行外部命令来自配置/变量
    lib/index.js:533
    child = spawn(commandString, [], {
  • 请求外部主机raw.githubusercontent.com
    lib/index.js:684
    const res = await fetch(`https://raw.githubusercontent.com/${owner}/${repo}/HEAD/package.json`, {
  • 发起网络请求
    lib/index.js:684
    const res = await fetch(`https://raw.githubusercontent.com/${owner}/${repo}/HEAD/package.json`, {
  • 请求外部主机registry.npmjs.org
    lib/index.js:698
    const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(dep)}/latest`, {
  • 发起网络请求
    lib/index.js:698
    const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(dep)}/latest`, {
  • 请求外部主机registry.npmjs.org
    lib/index.js:1004
    const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`, {
  • 发起网络请求
    lib/index.js:1004
    const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`, {
  • 写入本地文件
    lib/index.js:1057
    mkdirSync(srcRoot, { recursive: true })
  • 写入本地文件
    lib/index.js:1085
    writeFileSync(join(srcDir, 'package.json'), JSON.stringify(rootPkg, null, 2) + '\n')
  • 写入本地文件
    lib/index.js:1722
    mkdirSync(dir, { recursive: true })
  • 发起网络请求
    lib/client.js:375
    fetch('/api/market/install/status?job=' + encodeURIComponent(jobId), { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:391
    fetch('/api/market/install/cancel', {
  • 发起网络请求
    lib/client.js:402
    return fetch('/api/' + method, {
  • 发起网络请求
    lib/client.js:483
    fetch('/api/market/installed', { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:491
    fetch('/api/market/update', {
  • 发起网络请求
    lib/client.js:569
    fetch('/api/market/install', {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:registry.npmjs.org、raw.githubusercontent.com、api.github.com、translate.googleapis.com、api.mymemory.translated.net

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

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

界面预览

2 张 · 点击查看大图

功能亮点

  • 同步GitHub插件仓库
  • 搜索与分页浏览
  • 一键安装插件
展开完整介绍(121 字)↓

DeepSeek Harness 插件市场——把 GitHub 的 dsh-plugin 话题(1800+ 仓库)实时同步进可搜索、分页的设置标签页,一键安装,并提供智能体工具(market_search / market_install)。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-marketplace 一个 DeepSeek Harness 的永久插件,把 GitHub dsh-plugin topic 变成插件市场——既是 设置 → 插件 里的标签页,也提供一组模型工具,让智能体自己就能搜索并安装插件。 插件市场截图插件市场截图 插件市场:搜索、浏览、一键安装、检查更新。 功能 - 全量分页 — 完整 topic 按页拉取(默认 50 / 最大 100),UI 带"加载更多"按钮。不再有"只看 50 个"的硬限制:total 反映真实的 total_count。 - 搜索 — 关键词搜索走 GitHub 自己的 q(所以是在整个 topic 里搜,而不是只在已加载的页里过滤),UI 搜索框和 market_search 工具都用它。 - 智能体工具(Host 侧通过 ctx.tools.register 注册): - market_search(q?, page?, perPage?) — 返回 topic 仓库的 JSON 列表(full name、star、语言、简介、URL)。 - market_install(spec) — 通过 dsh plugin --profile web add -w <spec> 安装到 web profile。
展开完整文档(README 剩余 1 节)
dsh-plugin-marketplace

一个 DeepSeek Harness 的永久插件,把 GitHub dsh-plugin topic 变成插件市场——既是 设置 → 插件 里的标签页,也提供一组模型工具,让智能体自己就能搜索并安装插件。

插件市场截图插件市场截图

插件市场:搜索、浏览、一键安装、检查更新。

功能

- 全量分页 — 完整 topic 按页拉取(默认 50 / 最大 100),UI 带"加载更多"按钮。不再有"只看 50 个"的硬限制:total 反映真实的 total_count。
- 搜索 — 关键词搜索走 GitHub 自己的 q(所以是在整个 topic 里搜,而不是只在已加载的页里过滤),UI 搜索框和 market_search 工具都用它。
- 智能体工具(Host 侧通过 ctx.tools.register 注册):
- market_search(q?, page?, perPage?) — 返回 topic 仓库的 JSON 列表(full name、star、语言、简介、URL)。
- market_install(spec) — 通过 dsh plugin --profile web add -w <spec> 安装到 web profile。执行前会校验 spec 是否含 shell 元字符;完成后提示需要重启 harness。
- market_installed() — 列出 web profile 已安装的第三方插件:启用状态、当前版本、最新版本与是否可更新(含市场自身的更新状态)。内置插件不在此列。
- market_update(name) — 把某个已安装插件更新到最新版本(需重启 harness 生效)。
- 安装(默认:直装,优先 npm 包) — 每个插件卡片都有 安装 按钮,点击后通过 POST /api/market/install 启动确定性的异步安装任务:host 侧 planInstall 先探测仓库形态——根 package.json 声明了 dsh.bundle/dsh.client 的根级插件走标准 dsh plugin add -w <spec>;已发布到 npm 的插件优先用 name@<latest> 装 npm 版(快、稳、免 GitHub 拉取,pnpm 把插件及运行时依赖如 ws/node-pty 一起装进 profile);未发布到 npm 的用 github spec;monorepo/workspace 根则克隆到 $DSH_HOME/marketplace-src、corepack pnpm 构建后 link: 注册(沙箱内自带 node_modules,依赖可解析)。装完做真实结果校验(进入 dsh.profile.bundles、入口文件存在、运行时依赖可解析——后一条专门防“link 缺依赖导致启动失败”的历史回归)。注意:不能用 link: 装根级插件。卡片内联渲染 App Store 式进度条(阶段 / 百分比 / 已下载 / 速度 / ETA / 实时日志),可取消。
- pnpm 兼容层(借鉴 dsh-market) — 所有安装子进程注入 CI=true(pnpm ≥10 无 TTY 时不再无限等交互提示而卡死,遇错直接报错);检测到 pnpm 大版本漂移(ERR_PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF / PUBLIC_HOIST_PATTERN_DIFF,即 modules 目录由别的 pnpm 大版本创建)会自动 pnpm install 重建 modules 目录并重试一次。失败分类 classifyPnpmFailure 覆盖:预发布 peer 解析、构建脚本拦截(IGNORED_BUILDS/GIT_DEP_PREPARE_NOT_ALLOWED)、幽灵依赖 404、发布新鲜度等待期、workspace 缺失、pnpm 缺失等,统一给可操作文案而不是裸报错。
- 安装卡住自动止损 — pnpm / git 在死网络或过慢的下载上可能零输出挂死(例如 GitHub 暂不可达时停在"正在解析依赖… 8%")。host 侧带停滞看门狗:一段时间(默认 120s,可用 DSH_MARKET_STALL_MS 覆盖)没有任何进度(无输出行、无字节增长)就杀掉进程树 → 自动直连重试一次(去掉字节统计代理)→ 若再次停滞则快速失败并提示「检查网络后重试,或改用「让智能体安装」」,不再无限转圈等到 10 分钟超时。
- 对等依赖失败识别 — 若插件声明了 @deepseek-ai/@^0.1.0-rc.6 这类预发布对等依赖,dsh plugin add 可能以 ERR_PNPM_NO_MATCHING_VERSION 退出。host 侧会识别并给出可操作的说明(而不是裸的 "exit 1"),卡片同时提供 「让智能体安装」 兜底按钮——智能体会按仓库 README / 安装脚本处理这类结构。
- workspace 缺失的友好报错 — host 侧在安装/更新前检查 web profile:package.json 或 pnpm-workspace.yaml 缺失时,market_install / /api/market/install 会返回可操作的错误信息(告诉用户如何创建 pnpm-workspace.yaml 或重新初始化 profile),而不是 pnpm 那种晦涩的 --workspace-root may only be used inside a workspace。
- agent 安装方案(兜底,专属工作区新开对话) — 直装失败时(尤其对等依赖 / 非标准结构场景),卡片上会出现 「让 agent 安装」 按钮。点击后 host 会确保一个专属安装工作区($DSH_HOME/marketplace-install,经 GET /api/market/install-workspace 暴露),client 通过 runtime 的 workspaces.create / sessions.create / sessions.open 在该工作区新开一个对话并切过去,再把固定提示词 session.prompt 发给那个会话——由 agent 读 README 并自行决定安装方式,不污染当前会话、无需手动选工作区。若 runtime 服务不可用则回退为发给当前会话。代码在 lib/client.js 的 installViaAgent。更新/停用/卸载仍走 host 接口(/api/market/update 等)。
- 更新插件(有新版本提示) — 每个已安装插件都会对照最新版本(npm registry 的 latest,或 GitHub 默认分支 package.json 的 version,GitHub 插件优先)。有新版本时在卡片上标 可更新 并给 更新 按钮(/api/market/update)。
- 区分内置 / 后安装 — dsh.profile.bundles 里来自 profile 模板的包是内置插件(随 harness 提供,不能停用 / 卸载),dependencies 里的是后安装插件。已安装标签页只展示后安装(第三方)插件,内置插件不列出(页面顶部有声明)。
- 后安装插件可停用 / 卸载 — 停用 / 启用(/api/market/set-enabled)通过把它移出 / 移回 dsh.profile.bundles 实现(依赖保留);卸载(/api/market/uninstall)通过 dsh plugin --profile web remove <name> 移除依赖并自动从 bundle 层摘除。两者都需重启 harness。
- 写 profile 的操作串行落盘(可放心同时卸载多个) — 安装 / 更新 / 卸载 / 停用 / 启用都会读改写同一份 profile package.json(以及同一份 node_modules),host 侧把它们统一排进一条 FIFO 队列(onProfileWrite)。此前同时点多个插件的 卸载,两个 dsh plugin remove 会先各自读到旧 manifest 再写回,最后一次写入把前一个插件的依赖又恢复了——所以"同时卸载几个,最后只删掉一个"。现在它们依次执行,批量卸载会全部生效;对同一个插件重复 / 重叠的卸载是幂等的无变化返回,内置插件仍被明确拒绝(内置插件不能卸载),不会被误当成"已删除"而静默放行。
- 进行中只留一个按钮 — 某个插件正在执行某个操作时,卡片上只保留它自己的那个按钮并把文案改成 更新中… / 停用中… / 启用中… / 卸载中…,其余按钮隐藏;不再出现"原按钮 + 一个通用处理中按钮"两个按钮同时转圈的情况。停用状态标记为 已停用(此前显示为"已关闭")。
- 市场自更新检查 — 插件市场(本插件)会检查自己的最新版本(从其 GitHub 仓库 package.json 读取)。有新版本时在"插件市场"和"已安装"两个标签页顶部显示横幅:vX → vY · 立即更新。
- 声明来源 — 插件市场标签页顶部声明插件清单的来源:GitHub dsh-plugin 话题(github.com/topics/dsh-plugin),通过 GitHub Search API 实时同步。
- 并入插件设置 — 注册两个 settings.plugins.tab(market 插件市场、installed 已安装),与自带的"插件配置"、"插件列表"并列。

安装

手动安装

dsh plugin --profile web add https://github.com/AwesomeHou/dsh-plugin-marketplace

安装后需重启 harness 才能生效。

让 Agent 安装

帮我安装这个插件 https://github.com/AwesomeHou/dsh-plugin-marketplace

结构

| 部件 | 文件 | 作用 |
| Bundle 清单 | package.json | 声明 dsh.bundle.patch(host 层)+ dsh.client(浏览器模块) |
| Patch 层 | cordis.patch.yml | 把插件自己的 host 行插入 Loader 树 |
| Host 半 | lib/index.js | GitHub 分页同步 + /api/market/list、/api/market/install(异步任务)、/api/market/install/status、/api/market/install/cancel、/api/market/installed、/api/market/update、/api/market/set-enabled、/api/market/uninstall + market_search/market_install/market_installed/market_update 工具 |
| Client 半 | lib/client.js | __ModuleLoader__ bundle:插件市场 / 已安装 两个设置标签页 + 搜索 + 加载更多 + 一键安装(带进度条/速度/大小/阶段/取消)+ 更新 / 停用 / 启用 / 卸载 + 市场自更新横幅。UI 文案在 MARKET_LOCALES 字典(zh/en),经 ctx.locale 解析 |

数据走 Host 半在 ctx.webServer 上注册的同源 HTTP 端点(/api/market/)——永久插件没有 harness/host.call 沙箱 RPC,所以浏览器半用 fetch。

开发

npm run check # 语法检查两个半

License

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

一个 DeepSeek Harness 的永久插件,把 GitHub

这是你的仓库?认领条目

回到顶部