DSH-Plugins-Marketplace

129Star7Fork17Issue0Watching

DSH Web GUI 内的第三方插件与通用 Skills 市场:自动收录 GitHub 全部 dsh-plugin / agent-skills / claude-skills 标签仓库,在设置页提供浏览、一键安装、版本检测与已安装识别。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
agentai-agentscordisdeepseek-harnessdshdsh-pluginjavascriptllm

安装

$ dsh plugin --profile web add github:bradeGithub/DSH-Plugins-Marketplace

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 bradeGithub/DSH-Plugins-Marketplace:先查看仓库 https://github.com/bradeGithub/DSH-Plugins-Marketplace.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

DSH 插件市场是装在 DeepSeek Harness Web GUI 设置页里的「应用商店」:自动从 GitHub 拉取所有打了 dsh-plugin 标签的第三方插件和 agent-skills / claude-skills 通用 Skills,提供浏览、搜索、一键安装、版本检测、自动更新与已安装识别,把命令行安装流程搬到可视化页面里完成。

核心能力

  • 自动浏览 GitHub 上所有 dsh-plugin 主题的第三方插件(约 3900+),按 Star 数排序,已安装置顶
  • 自动浏览 agent-skillsclaude-skills 主题的通用 Skills(约 14000+),搜索 + 触底分页 + 一键安装到本地 Skills 目录
  • 智能识别四种仓库形态(cordis 插件 / Skill / agent 预设 / 安装脚本),按类型走对应安装路径
  • 五重判定「已安装」状态:安装清单 + 目录启发式 + 包名映射 + repository 归属校验 + 本体自识别,打开市场即自动比对
  • 版本检测与一键更新:已装版本与仓库最新版本比对,不一致时按钮变橙色「更新」,npm 发布型按 dist-tags 同源对比
  • 已装插件的环境变量可重新编辑(API Key 等),重启 DSH 生效;安装备份可导出 / 导入并支持推送至 WebDAV
  • 安装反馈闭环:装完弹窗确认「正常 / 不正常」,结果自动同步 GitHub issue(需配 Token);本插件自身也有横幅一键自更新
  • 中英双语 UI 与安装日志,跟随 DSH 语言设置自动切换;卡片支持分类 chips 筛选 + 社区收录 / 已验证 / 仅手动安装等徽章

技术实现

  • 语言: JavaScript(ES Modules,源码以 .js 后缀分发,运行在 Node.js 上)
  • 关键依赖: 全部使用 Node 内置模块——node:child_process(git / npm / pnpm / dsh CLI 调用)、node:fs/promises(克隆缓存与配置读写)、node:crypto(会话 token + timing-safe 比较)、node:zlib(gzip 解码索引)、node:os / node:path / node:url / node:util
  • 架构模式: 单仓双面——lib/index.js 是服务端,注入 webServer 后在 /api/marketplace/* 下注册 14 个 HTTP 端点(list / skills / install / uninstall / self-update / check-update / feedback / env-edit / backup / restore 等),通过 cordis.patch.yml 的 bundle 机制挂入 web profile;lib/client.js 是浏览器 bundle(window.__ModuleLoader__.load 形态),注入 slots + locale,在「设置」里注册「DSH插件市场」分区
  • 入口文件: lib/index.js(服务端入口与 apply(ctx) 钩子)、lib/client.js(客户端 UI 与 apply(ctx) 钩子)、cordis.patch.yml(bundle 注入声明)

适用场景

DSH 用户想扩展工具集但不想在终端敲命令时使用:把 GitHub 上散落的第三方插件和通用 Skills 集中到一个可搜索、可筛选、可一键安装的页面,并自动跟踪新版本。适合经常装插件、喜欢可视化操作、需要在多台机器间同步插件列表的 DSH 用户;对只用官方几个内置工具、或偏好在 IDE 里直接编辑 cordis.patch.yml 的硬核用户帮助不大。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness未声明必须使用 web profile;本插件通过 cordis.patch.yml 注入到 webServer 服务,依赖宿主提供 webServerslotslocalewebServer.tapIndex(低版本缺失 tapIndex 时 LAN 写操作会自动 fail-closed)
Node.js未声明大量依赖 Node 内置模块(node:child_processnode:fs/promisesnode:cryptonode:zlib),建议使用 DSH 宿主要求的 Node 版本(22.19+ 或 24+)
Git / pnpm / dsh CLI来源要求install.sh / install.ps1 头部要求本机有 gitpnpm;官方安装路径走 dsh plugin --profile web install,没有 dsh CLI 时脚本会自动改用直接 clone + 注册补丁的方式
平台跨平台已在 macOS / Windows / Linux 三端测试;Windows 上 install 脚本走 PowerShell,macOS / Linux 走 bash
原生模块全部依赖 Node 内置 API,不引入任何 native module

安装方式

dsh plugin --profile web add github:bradeGithub/DSH-Plugins-Marketplace

安装完成后需重启 DSH(重新运行 dsh web)再刷新页面;如果使用 install.sh / install.ps1 脚本,安装流程会自动检测 dsh CLI 并优先走官方安装方式。

配置项

配置类型说明默认值
DSH_HOME(环境变量)路径DSH 主目录根路径,市场把克隆缓存、已安装清单、env 编辑存储都放在 $DSH_HOME/marketplace/~/.dsh
DSH_MARKETPLACE_ALLOWED_HOSTS(环境变量)逗号分隔主机名 / IP追加信任的 Host 白名单——本地回环与局域网私有网段默认放行,本变量用于把公网域名或自定义 IP 加入白名单(仅在你能确认安全时使用)未设置
GITHUB_TOKEN / GH_TOKEN(环境变量)GitHub Token索引源直连 GitHub 时附加 Bearer 头,提升未认证 60 次/小时到认证 5000 次/小时的限流;普通用户无需配置,列表走 CDN 索引本身不调用 API未设置
~/.dsh/marketplace/config.jsonlanWrite布尔值是否允许局域网客户端执行安装 / 卸载 / 反馈等写操作;设为 true 后必须同时携带页面注入的会话 token(x-dsh-marketplace-token 头);读操作不受此配置影响false(仅本机回环可写)
~/.dsh/marketplace/feedback.jsontoken字符串安装反馈同步 GitHub issue 时使用的 Personal Access Token;不填也能用,反馈会改为打开预填页面让你手动提交;填后写入本机文件未设置
反馈开关(页面右上角)UI 开关关闭后安装成功的「是否正常」弹窗不再出现,但服务端的 pending 队列保留,重新打开后恢复提示;偏好保存在浏览器 localStorage开启
语言(DSH 全局)枚举跟随 DSH 宿主「设置 → 常规 → Language」自动切换中文 / English;本插件不单独设置跟随 DSH

常见问题

Q: 装完之后 DSH 页面没变化,必须重启吗?

A: 必须重启。DSH 的 Web profile 关闭了配置热重载(HMR 禁用),cordis.patch.yml 注册条目或插件代码变更需要重新运行 dsh web 才会生效;这是宿主行为,不是本插件的限制。

Q: 列表本身会调用我的 GitHub API 配额吗?

A: 不会。列表由仓库自带 GitHub Actions 每 2 小时构建一次静态索引(registry.json),用户通过 jsDelivr CDN 读取,全程零 API 调用;只有手动点「刷新」且 CDN 与 raw.githubusercontent 两个源都不可用时才会回退搜索 API,此时未认证限流 10 次/分钟。

Q: 一个仓库能被识别成哪几种形态?

A: 共四种:cordis 插件(含 package.json,装到 web profile)、技能(含 SKILL.md,装到 ~/.dsh/skills/)、agent 预设(含 preset.yml + agent.cordis.yml,装到 ~/.dsh/.agent-presets/)、安装脚本(install.sh / install.ps1,复制后执行)。插件作者要按 STANDARD.md 写对应标记,才能被正确识别与更新。

Q: 需要 API Key 的插件会怎么处理?

A: 装到第 3 步时会扫描 README、.env 示例和 install 脚本,发现形如 API_KEY / TOKEN / SECRET / PASSWORD 的环境变量会自动暂停,弹窗请你填写或跳过;填的值只作为本次安装的环境变量传入子进程,不写入任何持久化文件(第三方安装脚本自身的行为除外)。

Q: 已装插件的 API Key 填错了怎么办?

A: 已安装卡片有「编辑」按钮,列出该插件扫描到的环境变量键名(值不回显,已配置项会标记),可补填、修改或手动添加新键;保存后写入 ~/.dsh/.env 并合并进 envs.json,重启 DSH 后生效。

Q: 为什么有的已安装插件没有「卸载」按钮?

A: 卸载依赖本市场维护的 installed.json 安装记录。只对「通过本市场安装」的插件提供卸载按钮,会一并删除安装目录、cordis.patch.yml 注册条目与安装记录;手动预装、第三方 CLI 装入或非市场渠道放进来的插件只能识别为「已安装」,需手动删除目录。

Q: 本插件市场自身怎么升级?

A: 设置页检测到新版后会出现「v旧 → v新」横幅与「立即更新」按钮;点击后服务端克隆最新仓库、校验 staging 完整性、原子替换本体目录(失败自动回滚),完成后重启 DSH 生效;与安装共用全局互斥锁,进行中重复点击会返回 409。

Q: 局域网里其他电脑能用这个市场吗?

A: 局域网可浏览(读端点对所有可信 Host 放行),但安装 / 卸载等写操作默认只允许本机回环;如需在 LAN 上执行写操作,需在 ~/.dsh/marketplace/config.json 中设置 {"lanWrite": true},并在请求里带上页面注入的会话 token(x-dsh-marketplace-token 头)。

上手难度

入门 — 单条 dsh plugin 命令安装并在设置页找到入口即可使用,绝大多数操作不需要阅读文档;如果只想用默认功能,安装完重启 DSH 就能用。要折腾 LAN 写、反馈 Token、WebDAV 备份或自托管索引源时需要进阶操作。

已知问题与限制

  • 安全模型:安装端点无用户认证,防护依赖「本地网络隔离 + CSRF 头 + Host 白名单(本机回环 / 局域网私有网段 / 环境变量追加)+ Origin 校验」,请勿将 DSH web 端口暴露到不可信网络;安装即意味着在机器上执行第三方代码(npm 依赖与安装脚本),请只安装你信任并已核验的仓库
  • 安装任务整体同步挂在单个 POST 请求上(克隆 + npm 安装 + 构建 + 材料确认多轮回环),若在 DSH 前套了短超时的反向代理(默认 60s),连接可能被切断——后端任务仍会继续执行,前端需刷新状态确认结果
  • 版本检测仅对含 package.json 的 cordis 插件生效;Skill / 预设 / 脚本类没有版本概念;作者发版不 bump version 时不会提示更新;CLI 类型(npm 发布型)按 npm dist-tags 对比,需点「检测更新」手动按钮才会实时查 npm registry
  • 插件列表默认走静态索引(CDN),仅当两个源都不可用时才回退 GitHub 搜索 API,此时未认证限流 10 次/分钟,频繁点「刷新」可能触发限流
  • Skills 索引为全量(14000+),但单仓库的 SKILL.md 探测按 Core API 额度分批补齐(CI 每 2 小时增量续跑),未探测的仓库卡片显示「未验证」徽章
  • 安装脚本类插件的「已安装」判定基于缓存目录存在性,卸载(删除缓存)后会重新显示为可安装
  • 「社区收录」徽章来自第三方 awesome 聚合页(默认 awesome-dsh-plugin/awesome-dsh-plugin),聚合页抓取失败时本轮构建不更新徽章(增量构建保留旧标,下次构建恢复),收录与否不代表本市场对插件的质量背书
  • 插件代码修改后需重启 DSH 才能生效(Web profile 的 HMR 处于禁用状态)

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/bradeGithub/DSH-Plugins-Marketplace)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录