把外部 DSH 插件市场 (dshmk.com) 原生接入 DSH Web:搜索、安装、更新、移除插件,并提供对话内 Agent 工具。
- 语言
- TypeScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:ZASENJC/dsh-plugins-store/packages/dsh-plugin-store在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 ZASENJC/dsh-plugins-store/packages/dsh-plugin-store:先查看仓库 https://github.com/ZASENJC/dsh-plugins-store.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
把 dshmk.com 这个第三方 DSH 插件收录站接入 DeepSeek Harness Web,让你在对话框里就能搜索、查看、安装、更新和卸载 DSH 插件,而不用切到浏览器。
核心能力
- 在对话框输入
/store弹出插件市场,或在「设置 → 插件 → 插件市场」长期浏览 - 从 dshmk.com 拉取实时目录,按分类、项目类型、验证状态、关键字筛选和排序
- 在项目卡片一键安装到当前 Web profile,安装命令由 API 提供并经过合法性校验
- 对话中通过
store_search、store_install、store_remove等 6 个工具让 Agent 直接调用市场 - 通过「设置」面板浏览已安装插件、检测可更新版本并执行更新或移除
- 安装失败时把脱敏错误信息发给新建的 AGENT 会话协助排查
技术实现
- 语言: JavaScript (ESM, esbuild 打包)
- 关键依赖:
@deepseek-ai/dsh-native-command(宿主 CLI 调用桥)、@deepseek-ai/dsh-client-ui-*系列(侧边栏/对话框/设置面板 UI 插槽)、react(JSX 运行时)、pnpm(卸载时调用) - 架构模式: 双端插件——
src/index.js在 host 侧注册命令/store、Web API 路由/api/dsh-plugins-store/*、6 个 Agent 工具和内置 Skill;src/client.jsx在浏览器侧向 DSH Web 注入「shell.overlay」对话框和「settings.plugins.tab」设置页;通过 cordisinsert把自己声明为plugin-storebundle - 入口文件:
src/index.js(host) /src/client.jsx(browser),由build.mjs分别打包成 ESM 和 CJS
适用场景
已经在用 DSH Web 写代码或做对话,希望快速发现和试装第三方插件、又不想离开 Web 界面手动复制 dsh plugin add 命令的人。同时也适合让 Agent 在对话中直接搜索、推荐甚至安装 DSH 插件的场景,比如「帮我装个 DSH 的 XXX 插件」。注意:收录不代表官方审查,请自行判断来源可信度。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | >= 0.1.0-rc.6 | peerDependencies 要求 @deepseek-ai/dsh-native-command ^0.1.0-rc.6 |
| Node.js | >= 22 | engines.node: ">=22" |
| 平台 | 跨平台 (macOS / Windows / Linux) | 卸载逻辑根据 process.platform 区分 win32 与 *nix 命令;目录 API 仅走 HTTPS |
| 原生模块 | 无 | 不依赖任何 native binding |
安装方式
dsh plugin --profile web add github:ZASENJC/dsh-plugins-store/packages/dsh-plugin-store
配置项
本插件无需额外配置。默认目录源 https://api.dshmk.com/(src/catalog.js:3-5),未暴露用户可改的配置项;刷新按钮会带 cache: 'no-store' 强制绕过浏览器缓存(src/components.jsx:421, 477)。
常见问题
Q: 怎么打开插件市场?
A: 三种入口:在对话输入 /store 打开弹窗;在「设置 → 插件」找到「插件市场」长期浏览;或在 dshmk.com 详情页点击「在本机打开」按钮跳转过来(URL 带 #dsh-plugin-id=<id>,本插件会自动打开安装对话框)。
Q: 安装/更新/移除后需要重启吗?
A: 需要。所有变更路径都返回 needsRestart: true(src/installer.js:190、src/plugin-manager.js:246),实际只在重启 DSH Web 后生效。
Q: 安装失败时怎么办?
A: 弹窗会显示脱敏错误信息并提供「交给 AGENT 分析」按钮——会自动新建一个 DSH 会话,把仓库名、安装命令、脱敏后的错误信息发过去让 AGENT 排查(src/agent-analysis.js:75-94)。
Q: 哪些项目支持一键安装?
A: 只支持 plugin、skill、collection、channel 四种项目类型(src/catalog.js:32),其他类型(application、directory、infrastructure 等)仅展示详情不提供安装按钮。
Q: 怎么从网页市场直接装到本机?
A: 在 dshmk.com 详情页点「在本机打开」会带 #dsh-plugin-id=<id> 跳转到 DSH Web;src/deep-link.js 解析参数后自动打开该项目的安装对话框,复用同一套风险确认流程。
Q: 安装命令会被严格校验吗?
A: 会。src/installer.js:6-43 只接受形如 dsh plugin --profile web add <spec> 的五段式参数;GitHub 来源在已验证状态下会被 pin 到具体 40 位 SHA(src/catalog.js:91-94);跨仓库、shell 管道、重定向、多命令都会拒绝进入一键安装链路。
Q: 这个插件和 DSH 官方插件市场是同一回事吗?
A: 不是。DSH 本身没有官方市场,本插件是访问 dshmk.com 这个第三方收录站的客户端。README 明确写道:「目录收录不是安全审查」,安装前请自行审阅仓库来源和代码。
Q: 怎么卸载这个插件本身?
A: 用 dsh plugin --profile web remove dsh-plugins-store,或在设置面板的已安装列表里点移除按钮。
上手难度
入门 — 输入一行安装命令、/store 即可使用,所有功能都有 UI 引导,没有需要手动编辑的配置项。
已知问题与限制
- 必须重启生效:所有安装/更新/移除操作完成后,必须重启 DSH Web 才能使变更生效(src/installer.js:190、src/plugin-manager.js:246)
- 目录强依赖网络:所有内容来自
https://api.dshmk.com/,离线或该域名不可达时市场为空;刷新失败会保留上次成功载入的数据并标记「目录刷新失败」 - 不支持 disable:Skill 中明确说明商店目前没有
store_disable工具或独立的禁用 API,如需禁用插件请走 DSH 自身的插件开关(skills/search-dsh-store/SKILL.md:18) - GitHub 安装要求 SHA 固定:当仓库处于已验证状态时,安装命令必须 pin 到具体的 40 位 SHA,否则会被拒(src/catalog.js:91-94)
- 卸载逻辑分平台:Windows 走
dsh plugin remove,*nix 走pnpm --dir <profileDir> remove(src/plugin-manager.js:107-115);依赖本地pnpm可执行 - AGENT 失败分析依赖宿主能力:发送失败信息给 AGENT 需要
sessions.create或workspaces.startSession接口存在,否则会抛「当前 DSH 未提供新建会话能力」(src/agent-analysis.js:62)
DSH 插件市场面向 DeepSeek Harness 生态,自动收录同时带有 dsh-plugin 与 deepseek-harness Topic 的公开项目,提供目录检索、排行榜与 公开 API。配套的 DSH Web 插件可独立安装并接入 /store 和 Agent 会话;验证结果来自固定源码 SHA 的结构检查与 Linux 隔离沙箱。
访问 DSH 插件市场(DeepSeek Harness 插件目录)
功能
- 自动收录同时带有
dsh-plugin与deepseek-harnessTopic 的公开仓库,并排除归档仓库、Fork 和宿主应用 - 提供独立的 目录、已验证和 排行榜页面,支持搜索、分类、筛选和排序
- 排行榜支持 24 小时 Star 增速、最多 Star、最新发布和最近更新;项目详情展示分类依据、同标签项目和验证进度
- 每 30 分钟自动同步 GitHub 仓库数据
- 配套 DSH Web 插件支持通过
/store、设置页和 Agent 会话浏览市场,并在用户明确请求和确认后安装、更新或移除 Web profile 插件
安装 DSH Web 插件
以下命令安装市场自身的 DSH Web 插件:
dsh plugin --profile web add npm:dsh-plugins-store
安装完成后重启 DSH Web 并刷新浏览器。源码安装、本地构建、卸载、市场工具及 search-dsh-store skill 的完整说明见 packages/dsh-plugins-store/README.md。
项目截图
展开查看项目截图





收录与验证
项目分类优先使用仓库公开的 GitHub Topics,并与站内词典和词根规则比对。标签不足时,项目会保留为“其他”或“待识别”,不会根据名称强行推断。
收录仅表示仓库同时出现在 dsh-plugin 与 deepseek-harness Topic,且未被识别为归档仓库、Fork 或宿主应用,不代表项目已经通过安装、兼容性、安全性或质量验证。目录同步模块只读取公开仓库元数据,不执行第三方代码;可选 DSH Web 插件只会在用户阅读风险提示并明确确认后发起安装。
独立验证流程先对固定 SHA 做源码特征分类,再只对分类后的待验证目录进入一次性 Linux 沙箱。沙箱无商店密钥、非 root、资源受限,安装、激活、入口导入和 apply 调用均在隔离环境中完成;失败结果带错误码进入人工复核,不会进入源码排除名单。只有绑定当前仓库 ID、SHA、DSH 版本、平台和验证器版本的通过结果才显示“已验证”;该标记不等于完整安全审计或官方背书。
商店 API
商店提供公开、只读的完整目录接口:
GET https://api.dshmk.com/
- 无需鉴权,不接收查询参数。
- 返回整个目录,不提供服务端搜索、筛选或分页;调用方应在本地处理。
- 目录约每 30 分钟刷新一次。请使用
schemaVersion判断响应是否兼容,不要依赖仓库数组顺序。 - 生产响应允许跨域读取,浏览器插件可直接请求;命令行、Node.js 或其他服务端同样可直接调用。
使用示例
使用 curl 获取目录并读取基础信息:
curl --fail --silent --show-error \
--header 'Accept: application/json' \
https://api.dshmk.com/ \
| jq '{schemaVersion, generatedAt, stats}'
在 Node.js 22+ 中筛选当前已验证的插件:
const response = await fetch('https://api.dshmk.com/', {
headers: { Accept: 'application/json' },
})
if (!response.ok) {
throw new Error(`目录请求失败:HTTP ${response.status}`)
}
const catalog = await response.json()
if (catalog.schemaVersion !== 1 || !Array.isArray(catalog.repositories)) {
throw new Error('不兼容的目录响应')
}
const verifiedPlugins = catalog.repositories.filter((repository) =>
repository.projectType === 'plugin'
&& repository.validation?.overall === 'verified',
)
响应字段
| 字段 | 说明 |
|---|---|
schemaVersion | 目录数据结构版本,当前为 1 |
generatedAt | 本次目录生成时间,ISO 8601 格式 |
source | 收录来源,目前为 GitHub dsh-plugin 与 deepseek-harness Topic 交集 |
stats | 收录数量及分类、项目类型、验证状态统计 |
repositories | 仓库列表 |
repositories[].repositoryId | GitHub 数字仓库 ID,作为稳定身份标识 |
repositories[].fullName | GitHub 仓库全名,如 owner/repository |
repositories[].projectType | 项目类型,如 plugin、skill、collection 或 unknown |
repositories[].category / categories | 主分类及全部匹配分类 |
repositories[].validation | 当前验证状态、绑定的源码 SHA、DSH 版本、平台及各阶段证据 |
repositories[].install | README 安装证据以及解析后的候选;没有可靠安装证据时省略 |
repositories[].install.candidate.action | 结构化安装动作,当前固定为 add |
repositories[].install.candidate.specifier | 与 profile 无关的机器安装标识;已验证 GitHub 候选会固定到验证 SHA |
repositories[].install.candidate.executable | 当前目录策略是否允许进入一键安装确认流程,不代表安全保证 |
判断当前验证状态时,只应使用 repositories[].validation.overall === "verified"。status.verification、历史验证链接或曾经通过的记录不能替代当前结果。
安装消费者应读取 action 与 specifier,再由本地 DSH 环境选择 profile 并执行结构化参数。例如 DSH Desktop 应使用 desktopProfiles.current 作为 profile 真值,并把 ['add', candidate.specifier] 交给 desktopPnpm.runPlugin()。command 与 args 为普通 DSH 展示和旧消费者保留,其中可能包含 web profile;不要把 command 当作 shell 文本直接执行。确认、来源校验、超时、取消和执行结果均由消费者负责,目录 API 不接收或推断用户的本地 profile。
自动化架构
自动化主链只有三步:源码分类、增量验证、目录同步与生产发布。分类每小时自动运行,目录每 30 分钟独立刷新;验证完成后也会触发目录同步。验证没有新结果或执行失败时,发布流程继续使用最近一次成功状态,不会中断网站更新。
flowchart TB
CLASSIFY["1. Classify plugins<br/>源码分类,不执行第三方代码"]
VALIDATE["2. Validate plugins<br/>增量结构检查与 Linux 隔离验证"]
SYNC["3. Sync catalog<br/>目录同步、测试构建与生产发布"]
CLASSIFY -->|分类完成后自动触发| VALIDATE
VALIDATE -->|验证完成后自动触发| SYNC
SYNC -.->|最新发现快照进入下一轮| CLASSIFY
CLASSIFY_TIMER["每小时自动分类"] --> CLASSIFY
SYNC_TIMER["每 30 分钟自动刷新"] --> SYNC
TOPICS["GitHub 社区项目"] --> SYNC
SYNC --> ORIGIN["生产服务器<br/>原子版本切换"]
ORIGIN --> CLOUDFLARE["Cloudflare"]
CLOUDFLARE --> SITE["dshmk.com<br/>目录、已验证、排行榜、详情"]
CLOUDFLARE --> API["api.dshmk.com<br/>公开目录 API"]
API --> PLUGIN["DSH Web 插件<br/>/store、设置页与 Agent 工具"]
deploy-pages.yml 仅用于 GitHub Pages 预览或备用站点,不属于上述生产链路。正式网站和 API 由 sync-catalog.yml 构建并发布到生产服务器,再通过 Cloudflare 对外提供服务。
本地开发
需要 Node.js 22 或更高版本。
运行站点
npm ci
npm run dev
默认访问地址:http://localhost:4321/。
构建 DSH Web 插件
npm run build:plugin
npm pack ./packages/dsh-plugins-store
同步目录
npm run sync
同步脚本支持读取 GITHUB_TOKEN 或 GH_TOKEN。未提供 Token 时会受到 GitHub API 的较低请求限额约束。
检查与构建
npm test
npm run build
社区交流
欢迎加入 QQ 群或微信群,与社区成员交流 DSH 插件的使用、开发和生态动态。
| QQ 群 | 微信群 |
|---|---|
![]() | ![]() |
许可证
项目代码采用 MIT License,可自由使用、复制、修改和分发,但必须在软件副本或主要部分中保留原版权声明与许可声明。软件按原样提供,不附带任何明示或暗示的担保。
收录徽章
[](https://deepseek-plugin.org/plugins/ZASENJC/dsh-plugins-store/packages/dsh-plugin-store)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

