dsh-web-ui/packages/dsh-community-plugins

5.1kStar310Fork49Issue5Watching

DSH 设置页内的社区插件市场卡片:搜索/分类筛选浏览贡献者插件,并在装好插件管理器后支持一键安装与卸载。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 zhu1090093659/dsh-web-ui 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
Apache-2.0
分支
dev
deepseek-harnessdshdsh-pluginweb-ui

安装

$ dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-community-plugins

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

对话式安装

帮我安装 DeepSeek Harness 插件 zhu1090093659/dsh-web-ui/packages/dsh-community-plugins:先查看仓库 https://github.com/zhu1090093659/dsh-web-ui.git 确认安全性,然后执行安装命令并验证插件加载成功。

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

一句话定位

DSH 网页版设置页里的「社区插件」一级分区:用搜索框、分类胶囊与双列卡片网格展示社区贡献者维护的插件,每张卡片都能复制安装命令;装上插件管理器后还能在本机浏览器里直接安装与卸载条目。

核心能力

  • 在设置页注册一个与「通用设置 / 模式 / 插件 / Agent 预设」同级的一级分区(社区插件),内容直接展开,自带启用开关(社区插件索引设置命名空间持久化)。
  • 以市场风格展示条目:按名称 / 作者 / 简介的搜索框,带各分类计数(界面与体验 / Agent 与自动化 / 开发者工具 / 记忆与知识 / 集成与分享 / 安全与运维 / 实用工具)的筛选胶囊,以及双列卡片网格,每张卡片含 npm 已发布或仓库安装徽标、分类·作者元信息行、仓库跳转链接与一键复制安装命令按钮。
  • 在本机浏览器且安装了配套的「插件管理器」插件时,卡片提供安装按钮(轮询宿主进度,实时显示 获取信息 / 下载 / 解压 / 写入 阶段行)、「已安装 · 重启后生效」徽标,以及带确认对话框的卸载按钮。
  • 优雅降级:未装插件管理器插件或从远程浏览器访问时,分区降级为只读索引,每张卡片仍保留复制安装命令兜底按钮,并显示一行提示解释为什么远程浏览器无法界面内安装。
  • 只做索引,不打包任何被索引的代码:条目数据来自 community.json(35 条,14 条已发布 npm),由 scripts/community-index 编译进客户端 bundle。
  • 与插件管理器标签页状态保持同步:通过 pluginManager.onChange 订阅,任意一方变更安装状态后另一边即时刷新;同一时间只允许一个变更操作进行,进行中其他卡片的操作按钮禁用。

技术实现

  • 语言: TypeScript + React (TSX)
  • 关键依赖: @deepseek-ai/dsh-client-ui-settings (settings.section 槽位) / @deepseek-ai/dsh-client-runtime (settingsScope) / @deepseek-ai/dsh-client-ui-slots (settings.section 注入与注入面) / schemastery (Config 校验)
  • 架构模式: 独立 cordis bundle 包(host 半区注册 settings 命名空间 + client 半区渲染卡片),通过 cordis.patch.yml 注入 web profile;browser 半区经 dsh.client.inject 声明对 client-runtime / client-connection / client-ui-settings 的注入依赖;可选 pluginManager 服务通过 ctx.inject 桥接(不在模块级 inject 数组,缺失时降级)
  • 入口文件: src/index.ts (host) / src/client/index.ts (client) / cordis.patch.yml

适用场景

刚接触 DSH、希望在网页版设置页里直接浏览社区贡献的插件、对比分类、按需复制安装命令的用户。如果同时装了「插件管理器」插件,可以在不离开浏览器的情况下完成安装与卸载。本插件本身只索引不打包代码,适合用来发现与试用第三方贡献。

前置依赖与兼容性

依赖最低版本说明
DSH未声明本包 package.json 未声明 dsh engines;运行时通过 @deepseek-ai/* SDK 隐式锁定,依赖设置页暴露 settings.section 槽位(由 @deepseek-ai/dsh-client-ui-settings 提供)
Node^22.19 || >=24据 packages/AGENTS.md:9;本包 package.json 未声明 engines
React^18.2.0peerDependencies 声明
平台跨平台浏览器半区为主,宿主 dsh web 跨平台运行即可
原生模块全部走 cordis bundle + Web DOM API,无 native binding

安装方式

dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-community-plugins

配置项

配置类型说明默认值
enabled布尔卡片自己的启用开关,决定是否在设置页展开社区插件索引列表;关闭后只在该分区折叠成「已关闭」提示,不影响其他设置true

常见问题

Q: 这个插件是干什么用的?

A: 在 DSH 网页版设置页新增一个「社区插件」一级分区,用搜索框+分类胶囊+双列卡片网格的形式展示社区贡献者维护的插件,每张卡片带仓库跳转与一键复制安装命令按钮。

Q: 为什么要装「插件管理器」才能在界面里安装?

A: 界面内安装/卸载依赖插件管理器插件(@linxin666/dsh-client-ui-plugin-manager)暴露的 pluginManager 服务和本机(loopback)浏览器权限。远程浏览器只能看到只读索引与复制命令按钮。

Q: 已安装列表和「插件管理」标签页会同步吗?

A: 同步。本插件订阅 pluginManager.onChange,在卡片上点安装/卸载后立即刷新已安装快照;同一时间只允许一个变更操作,进行中其他卡片按钮会禁用。

Q: 点完「安装」为什么还没生效?

A: 卡片上会显示「已安装 · 重启后生效」徽标;必须重启 dsh web,被装插件的开关与配置才会出现在设置页的插件配置区。

Q: 怎么区分「npm 已发布」和「仓库安装」?

A: 看卡片上的徽标:写了 npm 字段的条目会显示「Published on npm / npm 已发布」,否则显示「Install from repo / 仓库安装」。

Q: 这个插件本身需要配置吗?

A: 默认无需配置。分区自带的「启用社区插件索引」开关是唯一的可配项(默认 true),关闭后只在该分区折叠索引列表,不影响其他设置。

Q: 可以贡献新的社区插件条目吗?

A: 可以。条目由维护者审核登记到 community.json,再由 scripts/community-index 重新生成 src/client/generated/community.ts 打进客户端 bundle。

Q: 装了社区插件卡后远程访问 DSH web 会有什么不同?

A: 远程浏览器自动降级为只读索引,每张卡片仍保留复制安装命令按钮;顶部多一行提示说明远程浏览器为什么不能界面内安装。

上手难度

入门 — 安装一条命令即生效,默认配置即可使用;想新增社区条目只需维护 community.json 并跑 scripts/community-index 重新生成。

已知问题与限制

  • 仅当依赖的 @deepseek-ai/dsh-client-ui-settings 存在时,卡片才会出现在 DSH 设置页;缺失时分区会随依赖一起静默卸载(README.md:42 / README.zh.md:42)。
  • 界面内安装/卸载依赖「插件管理器」插件(@linxin666/dsh-client-ui-plugin-manager)与本机浏览器;远程浏览器只能得到只读的复制命令索引(README.md:43-44)。
  • 从卡片发起的安装与卸载在重启 dsh web 后才生效;卡片上的「已安装」徽标已注明(README.md:44-45)。
  • 条目由维护者在 community.json 中登记审核,卡片展示构建时的快照:插件登记后必须重新跑 scripts/community-index 才会出现在设置页(README.md:45 / src/client/generated/community.ts:1-7)。
  • 同一个仓库的 npm 装与 git 装被视为不同来源:写了 npm 字段的条目不会匹配同仓库的 git 安装记录,卡片会继续显示安装按钮,让宿主去裁决(src/client/install-source.ts:71-81)。
  • 同一时间只允许一个安装/卸载操作;进行中其他卡片的操作按钮会被禁用,且取消按钮在变更进行中也会被禁用(src/client/CommunityPluginsCard.tsx:248,318)。

收录徽章

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/zhu1090093659/dsh-web-ui/packages/dsh-community-plugins)

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

返回插件目录