中文EN

dshmarket

market已测通过npmMIT

在 DeepSeek Harness 设置页内浏览、搜索并安装社区插件,支持分类筛选、一键更新与停用,以及主题切换与配置备份。

下载量 / Downloads
907,321
依赖体积 / node_modules
5.98 MB
测试时间 / Tested
2026-11-06

安装

dsh plugin --profile web add dshmarket

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载—
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<p align="center">

<img src="assets/logo.svg" width="96" alt="dsh-market logo">

</p>

dsh-market

[English](README.md) | 中文

![npm](https://www.npmjs.com/package/dshmarket)

![stars](https://github.com/dsh-market/dsh-market)

装在 DeepSeek Harness 里的插件市场。dsh 0.2.1 起它就在 插件 页上,是紧挨着 已安装 的一个页签;更早的宿主从设置 → 插件市场 进入。逛一逛,点一下,装好。

📡 同一份目录也是一份插件市场索引。 dsh 0.2.1 起,打开 插件 → 发现(Discover)→ 索引源(Index sources),添加 https://cdn.jsdelivr.net/npm/dsh-plugin-catalog/index.json。它就是这份列表的 format 1 索引,放在 npm 上分发,所以在哪里都快——dsh 给索引源的时间只有 15 秒,而 GitHub Pages 上的那两份(https://awesome-dsh-plugin.com/index.json 与 https://dshmarket.com/index.json)在部分网络下会超过。宿主自己的发现页和 plugin_market 智能体工具就能搜索它。

主题一键换:装完即生效,点一下切换,不用重启。

安装

  • 官方 DSH Desktop 桌面端: 在应用内打开 设置 → 插件,搜索

dshmarket,通过应用自己的插件管理器安装,无需命令行。

  • 普通 dsh web: 执行以下命令,然后重启 dsh web:
  dsh plugin --profile web add dshmarket
  • 自定义 profile: 把命令里的 web 换成宿主实际使用的 profile 名称:

dsh plugin --profile <profile> add dshmarket。之后按宿主的说明重启。

  • 从 GitHub 源码安装(免构建): add github:dsh-market/dsh-market 会让

pnpm 先征求构建脚本授权。改用同一版本 Release 附带的预构建包,就不需要这一步:

  dsh plugin --profile <profile> add https://github.com/dsh-market/dsh-market/releases/download/v<version>/dshmarket-<version>.tgz

在装有 DSH Desktop 的电脑上执行 dsh plugin --profile web add dshmarket,

命令可能提示成功,但市场装进的是 profiles/web,不是桌面应用使用的

profile,因此不会出现在桌面端。请通过应用内的 设置 → 插件 安装;桌面端

的 profile 由应用自己的插件管理器管理。

装好后打开 插件 页,点 已安装 旁边的 插件市场 页签

(dsh 0.2.1 及以上;普通的 dsh web 就有,不需要桌面端)。市场仍然也是

设置 → 插件市场 里的一个分区:dsh 0.2.0 及以前只有这个入口,0.2.1 起设置

窗口挪进了账号菜单。想在任何地方一键进入的话,市场也可以在侧边栏放一行

插件市场,在 插件 页市场的卡片上打开即可。这三个入口都能在卡片的

高级 分组里单独开关,但最后一个入口不会被关掉。反过来,dsh 0.2.1 起,已装

插件的 ··· 菜单里有 在插件页查看:它会打开宿主里这个插件自己的页面,

那里是唯一能逐个开关它的各个组件(行)的地方。

需要 dsh web 0.1.0-rc.6 或更新版本。 宿主太旧时市场会自我禁用,并在浏览器

控制台说明原因,而不是拿缺失的原语去渲染——如果哪里都没出现「插件市场」这

一项,通常就是这个原因。桌面端要留意:它可能内置了比 npm 装到的更旧的 dsh(#139)。

你会得到

  • 逛与搜——完整社区目录(4200+ 插件,每天在涨),分类筛选、star 数、最热/最新排序,中英描述跟随界面语言
  • 按宿主发现——卡片展示插件通过 engines.dsh 或同版本线 @deepseek-ai/dsh-* peer 声明的 DSH 要求;兼容筛选只隐藏与当前宿主明确不匹配的插件。仅 GitHub 发布的条目也会读取链接所指包的清单,支持子目录;Release 下载读取对应标签,latest/download 则读取当前发布标签。未声明、格式异常或暂时取不到清单时保持未知并继续显示。公开清单信息会缓存,兼容结论按当前宿主重新判断
  • 截图展示——App Store 式截图,多图自动轮播,点开还能看大图;作者在 registry 里策展的截图列表卡片就直接显示(零额外请求),没有策展的插件则在打开安装弹窗时自动从 README 抽取;图片仅从 GitHub 图床加载
  • 评论——每张卡片都能就地打开该插件的讨论。它和插件在 dshmarket.com 与目录站上的页面共用同一条讨论,一个插件只有一处对话,而不是三处。底层是 GitHub Discussions(经由 giscus):打开即加载,只有发表评论才需要 GitHub 账号;说明里也直说打开会连接 giscus.app 与 GitHub。本地 dsh web 继续内嵌评论供阅读,登录和发表则通过专用 GitHub 入口在新标签页打开当前插件的精确讨论,不让跨站回跳携带或依赖宿主会话
  • 收藏——在「发现」或「主题」页点书签即可收藏插件/主题;「收藏」Tab 集中展示,支持搜索、排序与安装。书签写入 profile 的市场状态(state.json);已下架条目可一键清除
  • 分组——把已安装插件整理进具名分组(可重命名、删除,分组内单独搜索);一个插件属于一个分组,默认是「未分组」。每个分组自带开关:全开、全关,或成员当前真实处于的「混合」状态——一组一起开合,不动其余插件。一个分组最多容纳一个主题。分组本身是 profile state.json 里的本地状态
  • 备注——给任何已安装插件写一行你自己的说明,它会在这行代替作者简介显示——四十个插件的列表因此能用你自己的话回答「我当初为什么装它」。和分组、收藏一样只存在本地,不上传
  • 主题——独立主题页:装完立即生效,点一下切换(主题互斥、选择跨重启保留),卸载即恢复
  • 一键安装——确认来源,实时进度;多数插件刷新页面即可用,无需重启
  • 备份与恢复——把 profile 的插件清单与配置导出为可读 JSON,换机导入,存到 WebDAV 并每日自动备份,或通过私有 GitHub Gist 跨机器同步;恢复采用合并方式(备份之后新装的插件会保留),写入前校验、失败自动回滚
  • 更新——逐插件检测(npm 版本或锁定 commit 对比 HEAD),一键更新或全部更新;市场自己也走同一通道升级。从压缩包链接装的插件只认自己的来源:市场里恰好同名的另一个插件不会被当成它的更新,更新也不会悄悄把它换成另一个插件。每个有待更新的行上都有「更新内容」链接——有版本说明就是版本说明,对不上版本时给提交记录。暂时不处理的提醒可以本次不再提醒(本次 = 当前宿主进程),重启后提醒会回来——「忽略」永远不等于「关闭」
  • GitHub 多线路容错——中国大陆下载区域会为 Git ref、README 与头像分别维护 fallback 顺序,记住上次可用线路,只在传输、HTTP 状态或响应内容校验失败后换线,并拒绝公共反代伪装成 HTTP 200 的 HTML 错误页。内置线路全部失效时,可到设置 → 插件 → 插件配置 → GitHub 加速填写一个持久化的自定义 HTTPS 前缀;运维设置的 DSHM_GITHUB_PROXY 始终优先
  • 公共更新接口——插件自己的设置页可调用带版本号、能力探测和回滚状态的[更新 API v1](UPDATE-API-V1.md)(beta),无需复制包管理逻辑,也不依赖市场 UI 的私有响应字段
  • 卸载——两步确认防误触;本次会话装的插件即点即卸
  • 热禁用 / 启用——开关会往 profile 的 cordis.patch.yml(官方补丁层,机制移植自 dsh-plugin-hub)写入 - id: … + disabled: true|false:DSH 的 HMR 约 1 秒内重新组合,无需重启,loader 每次启动都会重新应用这个选择;手工改过的补丁行会显示成徽标,宿主基础设施插件禁止开关,补丁文件格式不对时绝不会被写得更糟
  • 按需重启——无法热加载的变更会在待重启提示旁显示一键重启;操作仅接受本机同源请求
  • 重启没起来时的恢复——DSH 的启动是全有全无:一个插件加载失败,整个进程就退出,市场自己的界面也随宿主一起消失。现在这个失败提示处多了一个 调整插件:DSH 点名的插件会标红并默认取消勾选,你自己选下次启动要启用哪些,选择写进市场开关用的同一套 cordis.patch.yml 停用行(停用载体还会同步 dsh.profile.bundles),然后自动重试启动。这个恢复界面由脱离终端的重启助手在同一个地址上提供——页面原本就在轮询它,所以宿主已经没了也照样能打开;直接访问地址则会渲染同一份内容的独立页面。DSH 正常启动时,这一切都不会出现
  • 零术语——缺组件(pnpm)时市场自己发现、一键自动装好,全程不见命令行
  • 导出日志——一键生成脱敏纯文本日志方便反馈(home 路径与密钥形状已打码;任何数据都不会被上传)。市场版本号就在标题旁边,截图反馈时自带版本信息
  • 设置卡片——dsh 0.1.0-rc.7 起,市场在插件页里管理它自己,和其它插件并排(宿主还有设置页时在 设置 → 插件 → 插件配置,dsh 0.2.1 起在 插件 页市场自己的卡片上):看当前版本、选择更新通道(稳定版,或 Beta 抢先试用还在验证中的版本——只影响市场自己,不影响你装的其它插件;打开开发者模式后还会多出「开发版」通道,直接取开发分支上的构建)、更新、或者移除市场。移除时可勾选一并清理——包括市场写进补丁层的停用行,被它关掉的插件会恢复运行,而不是保持停用却再没有界面能打开它们
  • 诊断——插件加载顺序与冲突一页看全:bundle 栈(官方/社区徽标)、重复的 loader 条目、依赖版本不一致、核心包多版本共存、覆盖项与非法配置条目,以及残留目录——更新被打断后留下的、缺少 package.json 的包目录,和 pnpm 自己的 _tmp_ 暂存目录。它们都不妨碍启动,所以只列出来而不报成警告,也是唯一会说清磁盘上到底有什么的地方。术语说人话,问题块高亮,全部可折叠
  • 加载顺序——拖拽调整社区 bundle 的顺序,或直接采用按插件自身 before/after 规则推导出的建议顺序。写入前先跑一次静态组合校验,通过才落盘;应用之前面板会告诉你这个顺序会改变什么(多少处覆盖、多少无效或重复条目)
  • AI 修复——一键把诊断结果生成的修复 prompt(错误/警告/顺序冲突 + 保守的改动范围约束)复制到剪贴板,你粘进新对话,自己决定发不发。提示词会先让 Agent 判断自己是不是就是这个 profile 所在的 harness——若是,则严禁改动运行中组合、升级/重启 harness 或核心包、重装依赖,而是让它生成一份幂等的 apply 修改脚本和一份 rollback 回滚脚本,由你在外部终端执行并把输出拷回给它

速度

安装依次优先使用经仓库验证的 npm 包、作者提供的 GitHub Release 预构建 tarball,最后才回退到整仓 GitHub 源码下载。预构建安装通常只需数秒且无需执行本地构建脚本;仅提供源码的插件仍取决于你到 GitHub 的网络。

安全

  • 只允许安装 awesome-dsh-plugin 精选列表内的来源,其它一律拒绝
  • 构建脚本默认禁止执行(pnpm ≥10),放行与否由你按包显式决定
  • 终端/命令行类插件装进网页版前会被明确提醒
  • 安装接口只接受同源 POST;市场不会向任何地方上报数据
  • 备份可能包含 profile 配置里的密钥——导出与上传前 UI 会明确提醒;WebDAV 同步仅限 https、拒绝内网地址,且密码永不落盘浏览器
  • 带鉴权的 Gist 请求始终直连 api.github.com,Bearer token 不会交给公共 GitHub 加速服务;GitHub 源码归档也保持 ca

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:211,最后更新 2026-11-06

链接

GitHub · Homepage · npm

同类插件