[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94930":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":15,"starSnapshotCount":15,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},94930,"DSH-Plugins-Marketplace","bradeGithub\u002FDSH-Plugins-Marketplace","bradeGithub","DSH插件市场 \u002F DSH Plugin Marketplace: 在 DeepSeek Harness Web GUI 中一键浏览、安装与更新 GitHub topic:dsh-plugin 的全部插件 | browse, install & update all GitHub dsh-plugin plugins in the DSH Web GUI",null,"JavaScript",123,7,110,12,0,9,48.11,"MIT License",false,"main",true,[23,24,25,26,27,28,29,30,31,32,33,34],"agent","ai-agents","cordis","deepseek-harness","dsh","dsh-plugin","javascript","llm","marketplace","nodejs","plugin","plugin-marketplace","2026-08-24 04:01:22","# DSH插件市场（dsh-plugin-marketplace）\n\n🌐 **语言 \u002F Language:** **中文** | [English](README.en.md)\n\n一个为 [DeepSeek Harness](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002Fdeepseek-harness)（DSH）打造的插件市场插件：自动嗅探 GitHub 生态全部插件，在 DSH Web GUI 设置页中以卡片列表展示，支持**一键安装 \u002F 版本检测 \u002F 自动更新 \u002F 已安装识别**，全程无需命令行。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeepSeek%20Harness-生态插件-4D6BFE?logo=deepseek&logoColor=white\" alt=\"DeepSeek Harness\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FbradeGithub\u002FDSH-Plugins-Marketplace?logo=github\" alt=\"GitHub Stars\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FbradeGithub\u002FDSH-Plugins-Marketplace\" alt=\"License\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FbradeGithub\u002FDSH-Plugins-Marketplace\u002Fregistry.yml?label=registry%20CI\" alt=\"Registry CI\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FbradeGithub\u002FDSH-Plugins-Marketplace\" alt=\"Last Commit\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F类型-客户端%2B服务端插件-blue\" alt=\"类型\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F平台-Web%20GUI-lightgrey\" alt=\"平台\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fi18n-中文%20%7C%20English-important\" alt=\"i18n\">\n\u003C\u002Fp>\n\n---\n\n\u003C!-- TOC -->\n- [✨ 核心优势](#核心优势)\n- [⚡ 一键安装（复制即用）](#一键安装复制即用)\n- [🚀 使用方法](#使用方法)\n- [✨ 功能特性](#功能特性)\n- [📦 手动安装](#手动安装)\n- [🔧 工作原理](#工作原理)\n  - [数据源（registry 优先，搜索 API 兜底）](#数据源registry-优先搜索-api-兜底)\n  - [安装流程（5 步）](#安装流程5-步)\n  - [版本检测逻辑](#版本检测逻辑)\n  - [已安装判定（五重，打开市场即自动比对）](#已安装判定五重打开市场即自动比对)\n- [📁 文件结构](#文件结构)\n- [📡 HTTP 接口](#http-接口)\n- [⚠️ 安全说明](#安全说明)\n- [⚖️ 免责声明](#免责声明)\n- [🧱 已知限制](#已知限制)\n- [🌱 第三方生态](#第三方生态)\n- [🛠️ 开发与维护](#开发与维护)\n- [📝 更新日志](#更新日志)\n- [📄 许可](#许可)\n\u003C!-- \u002FTOC -->\n\n---\n\n## ✨ 核心优势\n\n\u003Cp align=\"center\">\n  \u003Cb>3900+\u003C\u002Fb> DSH 插件 &nbsp;·&nbsp; \u003Cb>14000+\u003C\u002Fb> 通用 Skills &nbsp;·&nbsp; \u003Cb>2 小时\u003C\u002Fb> 自动收录新插件 &nbsp;·&nbsp; \u003Cb>0\u003C\u002Fb> API 限流\n\u003C\u002Fp>\n\n| | 优势 | 说明 |\n|---|---|---|\n| 🔍 | **插件全** | 自动嗅探 GitHub `dsh-plugin` topic 的**全部**仓库（当前 **3900+**），另有 **14000+** 通用 Skills（`agent-skills` ∪ `claude-skills`）独立栏目 |\n| 🤖 | **自动收录，零申请** | CI 每 2 小时增量扫描 topic，作者打上 `dsh-plugin` 标签后**最迟 2 小时自动进市场**——无需提 issue、无需人工审核 |\n| ⚡ | **秒开，零限流** | 列表走静态索引（jsDelivr CDN 分发）——几千个插件秒开，终端用户**零 GitHub API 调用、零限流** |\n| 🎯 | **智能类型识别** | 自动识别并安装 4 种类型：cordis 插件 \u002F 技能（SKILL.md）\u002F agent 预设 \u002F 安装脚本——源码型插件自动弹构建确认，需要 API Key 时自动暂停索取材料 |\n| 🔄 | **版本检测与一键更新** | 已装版本 vs 仓库最新版本自动对比，不一致时按钮变「更新」，一键覆盖升级；npm 发布型插件按 npm dist-tags 对比（同源不误报） |\n| 🔒 | **安全护栏** | 第三方脚本执行前弹风险确认；安装材料只作环境变量传入不落盘；环境变量最小化隔离；Host 白名单 + CSRF 头防跨站伪造 |\n| 🏷️ | **分类 + 社区徽章** | 构建期自动分类（12 类筛选 chips）；awesome 聚合页收录的仓库打「社区收录」蓝色徽章 |\n| 🌍 | **中英双语** | 界面与安装日志跟随 DSH 语言设置自动切换 |\n\n> **给插件作者的规范**：[STANDARD.md](STANDARD.md)——每种插件形态应该怎么写才能被市场正确收录、正确安装、正确更新（含类型判定规则与常见反模式）。\n\n---\n\n## ⚡ 一键安装（复制即用）\n\n**方式一（推荐）：官方 dsh CLI**——由 Harness 官方安装机制完成安装与注册（需要 `dsh` CLI 与 `pnpm`，`dsh web` 用户通常已具备）：\n\n```bash\ndsh plugin --profile web install bradeGithub\u002FDSH-Plugins-Marketplace\n```\n\n卸载 \u002F 更新同样走官方命令：\n\n```bash\ndsh plugin --profile web remove bradeGithub\u002FDSH-Plugins-Marketplace\ndsh plugin --profile web install bradeGithub\u002FDSH-Plugins-Marketplace   # 重装即更新\n```\n\n**方式二：安装脚本**（没有 dsh CLI 的环境；脚本检测到 dsh CLI 时会自动改用官方方式）：\n\n| 平台 | 命令 |\n|---|---|\n| Windows (PowerShell) | `irm https:\u002F\u002Fraw.githubusercontent.com\u002FbradeGithub\u002FDSH-Plugins-Marketplace\u002Fmain\u002Finstall.ps1 \\| iex` |\n| macOS \u002F Linux | `curl -sL https:\u002F\u002Fraw.githubusercontent.com\u002FbradeGithub\u002FDSH-Plugins-Marketplace\u002Fmain\u002Finstall.sh \\| bash` |\n\n**喂给 AI 的一句话**（AI 具备命令执行能力即可，无需解释）：\n\n> 安装 DSH 插件市场插件（dsh-plugin-marketplace）：运行 `dsh plugin --profile web install bradeGithub\u002FDSH-Plugins-Marketplace`；若没有 dsh CLI，则克隆 https:\u002F\u002Fgithub.com\u002FbradeGithub\u002FDSH-Plugins-Marketplace 到 ~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fnode_modules\u002Fdsh-plugin-marketplace，在 ~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml 中注册（id: plugin-marketplace，name: dsh-plugin-marketplace）。完成后重启 dsh web。\n\n> ⚠️ 安装脚本方式会从本仓库下载并执行脚本（复制插件本体 + 注册 `cordis.patch.yml`），属于「信任即执行」；建议先下载脚本**肉眼检查一遍**再执行（`irm \u003Curl> | iex` \u002F `curl \u003Curl> | bash` 是公认的远程代码执行模式）。官方 CLI 方式由 Harness 自身完成安装，无需执行第三方脚本。\n> 安装完成后需**重启 DSH**（重新运行 `dsh web`）再刷新页面。\n\n---\n\n## 🚀 使用方法\n\n1. 重启 DSH 后打开 Web GUI，进入 **设置 → DSH插件市场**\n2. 页面自动加载全部插件（已安装置顶，其余按 Star 排序），也可点击「刷新」强制重新拉取\n3. 使用搜索框按名字过滤插件；分类 chips 按栏目筛选\n4. 点击插件卡片上的按钮：\n   - **安装** → 开始安装，日志实时滚动\n   - 需要材料时 → 页面弹出输入框，提供 API Key 等后点「提交材料并继续安装」\n   - **更新** → 检测到新版本时覆盖升级\n   - **已安装**（灰色）→ 无需操作\n5. 切换到 **通用 Skills** tab 浏览 14000+ 技能，支持搜索 \u002F 触底分页 \u002F 一键安装\n\n---\n\n## ✨ 功能特性\n\n- **全量拉取**：插件列表优先从**静态索引**（`registry.json`，jsDelivr CDN 分发，GitHub Actions 每 2 小时自动生成）加载——零 API 调用、零限流，几千个插件也能秒开；索引不可用时自动回退 GitHub 搜索 API 分页拉取（缓存 10 分钟）。列表排序：**已安装的插件置顶**，其余按 Star 数从高到低\n- **一键安装**：每个插件卡片带「安装」按钮，点击后自动完成：克隆仓库 → 识别类型 → 扫描所需环境变量 → 执行安装\n- **自带一键安装**：本仓库内置 `install.ps1` \u002F `install.sh`，一行命令即可安装，也可把上面的一句话直接交给 AI 执行\n- **智能类型识别**：自动区分并安装以下类型的仓库：\n  - `skill`（含 `SKILL.md`）→ 安装到 `~\u002F.dsh\u002Fskills\u002F`\n  - agent 预设（含 `preset.yml` + `agent.cordis.yml`）→ 安装到 `~\u002F.dsh\u002F.agent-presets\u002F`\n  - cordis 插件（含 `package.json`）→ 安装依赖并注册到 web profile\n  - 安装脚本（`install.sh` \u002F `install.ps1`）→ 执行脚本\n- **用户材料介入**：当插件需要 `API_KEY` \u002F `TOKEN` \u002F `SECRET` 等环境变量时，**安装自动暂停**，在页面内弹窗请你提供材料（或跳过），不会盲装\n- **脚本执行确认**：检测到第三方安装脚本（`install.sh` \u002F `install.ps1`）或 npm 生命周期脚本（`prepare` \u002F `install` \u002F `postinstall` 等）时，先弹窗征求你的确认——拒绝即取消安装并**清理全部痕迹**\n- **已安装识别**：五重判定——安装清单（`installed.json`）+ 目录启发式探测 + 包名映射扫描 + 本体 `repository` 自识别 + 缓存克隆预读，已安装的插件按钮变为不可点击的灰色「已安装」\n- **中英双语**：界面与安装日志跟随 DSH 的语言设置自动切换 中文 \u002F English（设置 → 常规 → Language）\n- **版本检测与更新**：cordis 插件自动对比已装版本与仓库最新版本（从本地缓存读取，零额外网络请求），不一致时按钮变为「更新」，点击即可覆盖升级\n- **搜索**：按插件名 \u002F 仓库全名 \u002F 标签实时过滤\n- **插件分类**：构建时按简介\u002F标签自动分类（12 类：视觉多模态 \u002F 文档办公 \u002F 记忆知识 \u002F 模型用量 \u002F 通知通讯 \u002F 开发编码 \u002F 对话会话 \u002F 界面美化 \u002F Agent 自动化 \u002F 通用工具 \u002F 聚合资源 \u002F 其他），前端分类 chips 筛选 + 卡片分类徽章\n- **社区收录徽章**：构建期抓取 awesome 聚合页（[awesome-dsh-plugin](https:\u002F\u002Fgithub.com\u002Fawesome-dsh-plugin\u002Fawesome-dsh-plugin)，社区人工筛选）收录的仓库，自动打「社区收录」蓝色徽章（悬停可见来源说明）——快速识别社区认可的插件（聚合页收录 ≠ 本市场背书）\n- **通用 Skills 栏目**：设置页 tab 切换到「通用 Skills」——浏览 CI 构建的全量 skills 索引（`agent-skills` ∪ `claude-skills`，14000+ 仓库），支持搜索 \u002F 分页触底加载 \u002F 一键安装到 `~\u002F.dsh\u002Fskills\u002F` \u002F 已安装识别；含安装脚本的仓库带 🛡 标识，探测未知的仓库带「未验证」弱提示\n- **刷新反馈**：点「刷新」强制重新拉取，并以弹窗提示「刷新成功 \u002F 刷新失败」\n- **Github原链**：每个卡片提供跳转到原仓库的链接（新标签页打开）\n- **深浅色适配**：全部使用 DSH 主题令牌（`--dsw-alias-*`），自动适配深色 \u002F 浅色模式\n- **排除本体**：硬编码排除 `deepseek-harness`（DSH 自身仓库，不属于插件）\n\n---\n\n## 📦 手动安装\n\n> 💡 不想手动操作？用上面的 [⚡ 一键安装](#-一键安装复制即用)（一条命令或一句话交给 AI）。\n\n本插件位于 `~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fnode_modules\u002Fdsh-plugin-marketplace\u002F`，并通过 `~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml` 注册：\n\n```yaml\n- insert:\n    - id: dsh-plugin-marketplace\n      name: dsh-plugin-marketplace\n```\n\n> ⚠️ **重启生效**：DSH 的 Web profile 关闭了配置热重载（`hmr` 被禁用），修改插件代码或注册条目后需要**重启 DSH**（重新运行 `dsh web` 或 `start-dsh.bat`）再刷新页面。\n\n---\n\n## 🔧 工作原理\n\n### 数据源（registry 优先，搜索 API 兜底）\n\n```\nGitHub Actions（每 2 小时，仓库自带 token）\n   └─ scripts\u002Fbuild-registry.mjs：分页拉取 topic:dsh-plugin，增量合并，去重\u002F排除本体\n        └─ 提交 registry.json 回 main（全量 3900+ 个插件，按 Star 排序）\n             └─ 插件读取：jsDelivr CDN（国内快）→ raw.githubusercontent（兜底）\n                  └─ 全部失败才回退 GitHub 搜索 API（分页翻到底，缓存 10 分钟）\n```\n\n- 索引由 CI 生成，**终端用户零 API 调用、零限流**；新插件最迟两小时内进入索引\n- 索引内容只含仓库元数据（名称\u002F描述\u002FStar\u002F更新时间\u002F标签\u002F许可），安装仍然直连 `github.com` 克隆\n\n### 安装流程（5 步）\n\n```\n[1\u002F5] git clone 仓库到 ~\u002F.dsh\u002Fmarketplace\u002Fcache\u002F\u003Cowner>__\u003Cname>\u002F\n[2\u002F5] 识别类型（SKILL.md \u002F agent 预设 \u002F 安装脚本 \u002F package.json）\n[3\u002F5] 扫描 README \u002F install 脚本 \u002F .env 示例中的环境变量（API_KEY 等）\n      └─ 发现需要 → 暂停安装，等待用户提供材料（可跳过）\n[4\u002F5] 执行安装（复制 skill \u002F 预设 \u002F 插件包，或运行安装脚本）\n      └─ 脚本类 → 先征求用户确认（第三方代码风险提示）\n[5\u002F5] 写入安装清单（installed.json）并返回结果\n```\n\n### 版本检测逻辑\n\n| 数据 | 来源 |\n|---|---|\n| 已装版本 | `installed.json` 记录；历史安装无记录时读取安装目录 `package.json` |\n| 最新版本 | 优先 registry 索引的 `version` 字段（CI 每 2 小时刷新）；索引缺失时回退市场缓存克隆目录的 `package.json`；npm 发布型插件（cli）按 npm dist-tags 的 `npm_version` 同源对比 |\n\n两者都存在且不一致 → 卡片显示「更新」按钮 + `已装 vX → vY` 提示。\n（仅对含 `package.json` 的 cordis 插件生效；skill \u002F 预设 \u002F 脚本类无版本概念。）\n\n### 已安装判定（五重，打开市场即自动比对）\n\n1. `~\u002F.dsh\u002Fmarketplace\u002Finstalled.json` 安装清单（本插件安装的）\n2. 目录启发式探测：`~\u002F.dsh\u002Fskills\u002F\u003C名>`、`~\u002F.dsh\u002F.agent-presets\u002F\u003C名>`、市场缓存克隆\n3. 包名映射：扫描已安装目录的 `package.json` 名称（含 scoped 包 `@scope\u002Fname`），与仓库名 \u002F 原始仓库名 \u002F 索引包名（`pkg_name`）比对——仓库名与包名不一致（如 `DSH-Plugins-Marketplace` → `dsh-plugin-marketplace`）也能识别，并正确读出已装版本\n4. **repository 归属校验（双向）**：已装包 `package.json` 的 `repository` 字段必须与目标仓库一致——既防「同名不同仓库」误判，也支持反向查找（先装插件后装市场时，scoped 包 \u002F 包名差异大的插件也能正确标为已安装）\n5. 本体识别：仓库命中本插件自身 `package.json` 的 `repository` 字段即视为已安装\n\n> **官方插件自动排除**：DSH 自带的官方插件（`@deepseek-ai\u002F*`，运行时自动枚举 + 内置兜底清单）永远不会被当成「用户安装的市场插件」，也不会被误标为已安装。\n\n---\n\n## 📁 文件结构\n\n```\n~\u002F.dsh\u002F\n├── profiles\u002Fweb\u002F\n│   ├── node_modules\u002Fdsh-plugin-marketplace\u002F   ← 本插件本体\n│   │   ├── package.json        （dsh.client 声明 + exports）\n│   │   └── lib\u002F\n│   │       ├── index.js        （服务端：GitHub 拉取 \u002F 安装管线 \u002F 版本检测）\n│   │       └── client.js       （客户端：市场页面 UI）\n│   └── cordis.patch.yml        （插件注册条目）\n└── marketplace\u002F\n    ├── cache\u002F\u003Cowner>__\u003Cname>\u002F  （克隆缓存，安装与版本对比的数据源）\n    └── installed.json          （已安装清单：type \u002F name \u002F location \u002F version \u002F installedAt）\n```\n\n---\n\n## 📡 HTTP 接口\n\n| 接口 | 方法 | 说明 |\n|---|---|---|\n| `\u002Fapi\u002Fmarketplace\u002Flist` | GET | 插件列表（按 Star 降序，含 `installed` \u002F `installedVersion` \u002F `latestVersion` \u002F `updateAvailable`、`source` 数据源、`dropped` 同名隐藏数）；`?refresh=1` 强制重新拉取 |\n| `\u002Fapi\u002Fmarketplace\u002Fskills` | GET | 通用 Skills 列表（`skills.json` 索引，过滤 `has_skill !== false`，含 `installed` \u002F `installedAt`）；`?refresh=1` 强制重新拉取 |\n| `\u002Fapi\u002Fmarketplace\u002Finstall` | POST | 安装 \u002F 更新，body：`{ \"repo\": \"owner\u002Fname\", \"answers\": { \"ENV_NAME\": \"值\" } }`；返回 `done` \u002F `awaiting-input` \u002F `aborted` \u002F `failed` \u002F `manual` 状态 + 逐步日志 |\n| `\u002Fapi\u002Fmarketplace\u002Funinstall` | POST | 卸载，body：`{ \"repo\": \"owner\u002Fname\" }`；删除安装目录 \u002F 包目录 + `cordis.patch.yml` 注册条目 + 安装记录；返回 `done`（含 `removed` 计数与日志） |\n| `\u002Fapi\u002Fmarketplace\u002Fself-update` | GET | 市场本体自更新检测（`{ installedVersion, latestVersion, updateAvailable, checkedAt }`） |\n| `\u002Fapi\u002Fmarketplace\u002Fself-update` | POST | 执行市场本体更新（官方 CLI 安装 + 装后版本校验）；返回 `no-update` \u002F `done` \u002F `failed` |\n| `\u002Fapi\u002Fmarketplace\u002Fcheck-update` | POST | npm 型 cli 插件手动版本检测（body `{ repo }`；查 npm registry，npmmirror 优先）；返回 `done` + `updateAvailable` \u002F `latestVersion` |\n| `\u002Fapi\u002Fmarketplace\u002Ffeedback` | POST | 提交安装反馈（body `{ repo, ok, note }`）→ 移除队列并同步创建 GitHub issue；返回 `done`（含 `issueUrl` \u002F `manualUrl`） |\n| `\u002Fapi\u002Fmarketplace\u002Ffeedback\u002Fpending` | GET | 待确认反馈队列（`{ pending: [...] }`） |\n| `\u002Fapi\u002Fmarketplace\u002Ffeedback\u002Ftoken` | GET \u002F POST | 读 \u002F 写 GitHub token 配置（写为 `{ token }`，空串清除；返回 `hasToken`） |\n| `\u002Fapi\u002Fmarketplace\u002Fenv-keys` | GET | 已安装插件的可配置环境变量键名（值不回显）；`?repo=` 查询 |\n| `\u002Fapi\u002Fmarketplace\u002Fenv-edit` | POST | 写入插件环境变量（body `{ repo, values }`，落盘 `~\u002F.dsh\u002F.env` + `envs.json`）；返回 `done` + `applied` |\n| `\u002Fapi\u002Fmarketplace\u002Fbackup` | GET | 导出安装记录备份（`{ backup: { repos: [...] } }`） |\n| `\u002Fapi\u002Fmarketplace\u002Frestore\u002Fdiff` | POST | 给定备份计算恢复差异（body `{ backup }`；返回 `missing` \u002F `already`） |\n| `\u002Fapi\u002Fmarketplace\u002Fbackup\u002Fwebdav` | POST | 备份推送到 WebDAV（body `{ url, username?, password? }`） |\n| `\u002Fapi\u002Fmarketplace\u002Frestore\u002Fwebdav` | POST | 从 WebDAV 拉取备份并返回恢复差异 |\n| `\u002Fapi\u002Fmarketplace\u002Flogs` | GET | 导出脱敏安装日志（`{ text, count }`） |\n\n> 说明：\n> - 卸载依赖 `installed.json` 安装记录——**通过本市场安装**的插件可完整卸载；手动（非市场）预装的插件仅能被识别为「已安装」，不提供卸载按钮。\n> - 所有写操作（install \u002F uninstall \u002F self-update POST \u002F feedback \u002F feedback-token POST \u002F env-edit \u002F webdav 推拉）鉴权一致：回环请求直接放行，LAN 请求需 `lanWrite: true` 配置 + 会话 token（`x-dsh-marketplace-token` 头）。\n\n---\n\n## ⚠️ 安全说明\n\n- 安装即信任该仓库：安装脚本（`install.sh` \u002F `install.ps1`）会在你的机器上**执行任意代码**，市场会在执行前弹出确认\n- 你提供的 API Key 等材料只作为**本次安装的环境变量**传入，不会写入任何持久化文件（安装脚本自身的行为除外）\n- 第三方安装脚本运行时只获得**最小化环境变量**（基础系统变量 + 你提交的材料）；npm 依赖安装会剔除全部密钥类变量——`process.env` 不会全量外泄给插件代码\n- 安装端点仅接受可信来源：请求必须携带 `X-DSH-Marketplace` 头，且 Host 在**白名单**内（本机回环 \u002F 局域网私有网段 \u002F 环境变量 `DSH_MARKETPLACE_ALLOWED_HOSTS` 显式追加），防跨站伪造与 DNS rebinding\n- 插件包会被复制到 web profile 并注册到 `cordis.patch.yml`——这意味着它会随 DSH 启动加载，请只安装你信任的仓库\n\n---\n\n## ⚖️ 免责声明\n\n- 本插件市场仅提供**发现与安装的便利**：市场中的所有插件均来自第三方 GitHub 仓库，由各仓库作者独立开发与维护，**与 DeepSeek Harness 及本插件市场没有任何关联**\n- 插件市场**不对任何插件的质量、可靠性、安全性、可用性作任何明示或默示担保**——包括但不限于代码质量、许可证合规性、数据隐私、恶意行为、兼容性等\n- 索引中出现某个插件**不构成任何推荐或背书**；安装即代表你已自行评估并接受相应风险，建议安装前阅读仓库源码与 README\n- 本插件市场按「现状」（AS-IS）提供。因安装或使用任何第三方插件造成的任何直接或间接损失（包括数据丢失、系统损坏、隐私泄露等），**插件市场及其开发者不承担任何责任**\n\n---\n\n## 🧱 已知限制\n\n- **安全模型**：安装端点无用户认证，防护依赖「本地网络隔离 + CSRF 头 + Host 白名单（本机\u002F局域网\u002F可配置）+ Origin 校验」——请勿将 DSH web 端口暴露到不可信网络；安装即意味着在机器上执行第三方代码（npm 依赖与安装脚本），请只安装你信任并已核验的仓库\n- 安装任务整体同步挂在单个 POST 请求上（克隆 + npm 安装 + 构建 + 材料确认多轮回环），若在 DSH 前套了短超时的反向代理（默认 60s），连接可能被切断——后端任务仍会继续执行，前端需刷新状态确认结果\n- 版本检测仅对含 `package.json` 的插件生效；skill \u002F 预设 \u002F 脚本类无版本概念；作者发版不 bump version 时不会提示更新\n- 插件列表默认走静态索引（CDN）；仅当索引的两个源都不可用时才回退 GitHub 搜索 API，此时未认证限流 **10 次\u002F分钟**，频繁点「刷新」可能触发限流（会提示刷新失败，稍等再试）\n- **Skills 索引范围**：v1.3 起为**全量索引**——通过 Search API「stars 分段 + 时间窗口二分」突破单 query 1000 条上限，收录 `agent-skills` ∪ `claude-skills` 全部仓库（当前 14000+）；`has_skill` 探测按 Core API 额度分批补齐（CI 每 2 小时增量续跑，未探测的仓库显示「未验证」）\n- **索引更新节奏**：两个索引均为 CI 每 2 小时增量拉取（最近 3 天 pushed 的仓库，新仓库\u002Fstar\u002F更新时间即时捕获）并与旧索引合并，每天 04:00 UTC 全量重建刷新 star 数\n- 安装脚本类插件的「已安装」判定基于缓存目录存在性，卸载（删除缓存）后会重新显示为可安装\n- 「社区收录」徽章来自第三方 awesome 聚合页（默认 [awesome-dsh-plugin](https:\u002F\u002Fgithub.com\u002Fawesome-dsh-plugin\u002Fawesome-dsh-plugin)），聚合页抓取失败时本轮构建不更新徽章（增量构建保留旧标，下次构建恢复）；收录与否不代表本市场对插件的质量背书\n- 安装脚本的临时目录 \u002F 供应链校验说明见 `install.sh` 头部注释（tarball 无签名校验是 curl|bash 模式的固有限制）\n- 插件代码修改后需**重启 DSH** 才能生效（Web profile 的 HMR 处于禁用状态）\n\n---\n\n## 🌱 第三方生态\n\n[Harness Desktop](https:\u002F\u002Fgithub.com\u002Fbaiyuscc13724-max\u002Fdeepseek-harness-desktop) 是第三方社区维护的 Windows 桌面版，稳定版已内置本插件市场。用户可以在 **设置 → DSH插件市场** 中直接查看、安装和更新社区插件，无需使用命令行。\n\n此条目由 Harness Desktop 作者提交；该作者同时维护桌面端使用的 DSH-Plugins-Marketplace 分支。Harness Desktop 与本仓库及 DeepSeek 官方均无官方关联。\n\n另外，[awesome-dsh-plugin](https:\u002F\u002Fgithub.com\u002Fawesome-dsh-plugin\u002Fawesome-dsh-plugin) 是社区维护的 DSH 插件精选聚合页，本市场的「社区收录」徽章来源于它；市场本身也已向该列表提交收录（互链 PR），两个生态入口互相引用。\n\n---\n\n## 🙏 致谢\n\n**代码贡献者**：\n\n- [lgnorant-lu](https:\u002F\u002Fgithub.com\u002Flgnorant-lu)——写端点鉴权（回环 socket 判定）、安全健壮性修复（PR #63 十二处）、机械化测试体系（PR #66：突变\u002F性质\u002Fi18n）、SkillsTab 修复等大量核心贡献\n- [baiyuscc13724-max](https:\u002F\u002Fgithub.com\u002Fbaiyuscc13724-max)——Harness Desktop 内置市场集成与安装流程简化（#1\u002F#2）\n- any \u002F bubble \u002F tatakaria——早期贡献\n\n**生态协作者**（discussion #2269 识别\u002F验证\u002F合规三层对齐）：\n\n- [qing3a](https:\u002F\u002Fgithub.com\u002Fqing3a)（dsh-plugin-verify）——验证层字段契约与开放数据层，驱动「✓ 已验证」徽章\n- [wwumit](https:\u002F\u002Fgithub.com\u002Fwwumit)（skills-catalog \u002F skill-compliance）——披露层字段契约、catalog 开放数据层与自测规则集，驱动「披露 ✓」徽章\n- [ylwl1997](https:\u002F\u002Fgithub.com\u002Fylwl1997)（dshbase）——目录收录门槛互认\n- awesome-dsh-plugin 维护者——互链收录（PR #994）与验证字段 RFC（#1176）讨论\n\n**所有反馈者**：通过市场自动反馈、issue 报告问题的每一位用户——你们的问题报告直接驱动了 v1.5.x 的修复节奏。\n\n想参与贡献？见 [CONTRIBUTING.md](CONTRIBUTING.md) 与 [STANDARD.md §7 自测清单](STANDARD.md)。\n\n---\n\n## 🛠️ 开发与维护\n\n- 修改服务端逻辑：编辑 `lib\u002Findex.js`（语法检查：`node --check`）\n- 修改页面 UI：编辑 `lib\u002Fclient.js`（浏览器 bundle，`window.__ModuleLoader__.load` 格式，`require` 可解析 DSH 平台模块）\n- 修改后重启 DSH 生效；客户端 bundle 的版本号（rev）按内容哈希生成，重启后浏览器自动拉取新版本\n- **插件作者请看 [STANDARD.md](STANDARD.md)**（[English](STANDARD.en.md)）：市场识别层开发规范——每种插件（cordis 插件 \u002F 技能 \u002F agent 预设 \u002F 脚本型）应该怎么写才能被市场正确收录、正确安装、正确更新，含类型判定规则与常见反模式。\n\n---\n\n## 📝 更新日志\n\n版本迭代记录见 [CHANGELOG.md](CHANGELOG.md)（v1.0.0 之前为 beta 系列）。\n\n---\n\n## 📄 许可\n\nMIT\n","DSH插件市场是一个为DeepSeek Harness（DSH）Web GUI设计的插件管理工具，支持在图形界面中一键浏览、安装、版本检测与自动更新所有GitHub上标注dsh-plugin topic的插件。其核心功能包括：基于jsDelivr CDN的静态索引实现毫秒级加载、每2小时自动扫描新增插件、五重已安装判定机制、智能识别cordis\u002Fagent技能\u002F预设\u002F脚本四类插件形态，并内置安全沙箱与环境变量隔离。适用于DSH用户快速扩展AI代理能力，尤其适合非命令行用户、插件集成测试者及企业本地化部署场景。",2,"2026-08-18 02:30:10","CREATED_QUERY"]