DSH 侧边栏插件版:在 DSH 侧边栏注入「插件市场」入口与 6-Tab 面板,提供浏览/搜索/个性化推荐/一键安装/已装管理/GitHub 加星等能力。
ⓘ 此插件是大仓库 2BingLing/dsh-market 的子包,星数与活跃度统计的是整个仓库。
- 语言
- TypeScript
- License
- NOASSERTION
- 分支
- master
安装
$ dsh plugin --profile web add github:2BingLing/dsh-market/plugin/ui在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 2BingLing/dsh-market/plugin/ui:先查看仓库 https://github.com/2BingLing/dsh-market.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
DSH 生态的「插件市场」cordis 插件版:把整个市场搬进 DSH 侧边栏——浏览、搜索、个性化推荐、一键安装/卸载、GitHub 加星,6-Tab 面板随叫随到,零 token 常驻。
核心能力
- 侧边栏入口与全屏面板:注册
sidebar.footer.action槽位显示「插件市场」按钮,shell.overlay槽位挂载 6-Tab 全屏浮层面板,按钮与面板开关状态用 store 跨 slot 共享(plugin/ui/src/client/index.ts:13-61) - 浏览与搜索:从
plugins.json拉全量已收录插件,本地 Fuse.js 关键词检索、中文标签筛选、类型/无需配置过滤;面板里 200+ 结果分页展示 - 个性化推荐(5 路):冷启动问卷 / 已装插件 / GitHub 加星 / 本地收藏 / 场景推荐(读会话标题+最近消息+工具名,零 token)共同构成画像,每条推荐附「为什么推荐」理由
- 一键安装与卸载:skill 型
git clone到 skills 目录,cordis 型dsh plugin --profile X add <pkg>;每步带快照、失败重试(最多 2 次)、失败自动回滚;卸载时按依赖键名精确移除(pnpm 大小写敏感) - 已装管理与自更新:自动扫描
~/.agents/skills和 profilepackage.json识别已装项;通过 npm registry(cordis 型)与 GitHub pushedAt(skill 型)给出更新提示;面板内可对插件自身发起自更新 - GitHub 集成:设置页支持设备流(GitHub App)或 PAT 两种绑定方式,PAT 模式下可直接在面板给市场里的插件仓库加星/取消加星,并把星标仓库同步进画像
技术实现
- 语言: TypeScript(ESM,Node half + 浏览器 half 双入口;浏览器侧用 React 18 +
React.createElement无 JSX 写法) - 关键依赖:
@dsh-market/core(纯 Node 逻辑层:搜索/画像/安装/更新/GitHub)、@dsh-market/schema(共享类型)、fuse.js(本地模糊搜索)、react^18(浏览器侧面板) - 架构模式: cordis 双半插件 — Node half (
apply(ctx)) 注册/market/api的 POST JSON-RPC 路由并向 harness 拿agents/subagents/sessionQuery/llm服务;Browser half 用ctx.slots.inject把触发器塞进sidebar.footer.action、把面板塞进shell.overlay;包级声明dsh.bundle.patch: ./cordis.patch.yml+dsh.client.inject三个平台种子模块让宿主加载并服务化 - 入口文件:
plugin/ui/src/index.ts(Node half,导出name = 'dsh-market'与inject = ['webServer'])/plugin/ui/src/client/index.ts(浏览器 half,导出inject = ['slots'])/plugin/ui/cordis.patch.yml(bundle 注入声明)
适用场景
刚装好 DSH 不确定该装什么的人——插件版用「冷启动问卷+精选+场景推荐」让新手 3 分钟就能挑到合适的插件;想免记命令的人——一键安装免去手敲 dsh plugin add 或 git clone;插件越装越多需要统一管理的人——已装 Tab 自动检测 skill 目录和 profile 依赖,给出更新与卸载入口;想按自己偏好被推荐的人——画像随使用自动更新,越用越懂你。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness (cordis web profile) | 未声明 | plugin/ui/package.json 未声明 peerDependencies;通过 dsh.bundle.patch + dsh.client.inject 注入;宿主 web profile 必须启用 @deepseek-ai/dsh-client-runtime / -locale / -ui-slots 三个平台种子模块 |
| Node | >=20 | 仓库根 package.json 的 engines 字段(plugin/ui 与 plugin/core 自身未声明 engines) |
| 平台 | macOS / Windows / Linux | Node half 命令执行器在 Windows 上走 ComSpec ?? cmd.exe,目录删除内置 5 次重试 + rmdir /s /q 兜底;其他平台走默认 shell |
| 原生模块 | 无 | 仅依赖 Node 内建模块(node:fs / node:child_process / node:http / node:path)与浏览器 fetch,未引入 native binding |
安装方式
dsh plugin --profile web add github:2BingLing/dsh-market/plugin/ui
安装后重启 harness,DSH 侧边栏底部会出现「插件市场」图标按钮,点击打开 6-Tab 面板:推荐 / 搜索 / 整合包 / 收藏 / 已装 / 设置。
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| DSH_HOME | 路径环境变量 | 改写 DSH 主目录(skills / profiles / 数据子目录都从其下派生) | ~/.dsh |
| DSH_SKILLS_DIR | 路径环境变量 | skill 型插件的安装目录 | 优先取 $DSH_HOME/skills,否则 ~/.agents/skills |
| DSH_PROFILES_DIR | 路径环境变量 | profile 依赖清单所在目录 | $DSH_HOME/profiles |
| DSH_MARKET_DATA_DIR | 路径环境变量 | 本插件的数据目录(画像 / 设置 / GitHub 绑定 / 安装快照) | $DSH_HOME/plugins/dsh-market |
| 推荐模式(modeOverride) | auto / novice / veteran | novice 更偏精选通用款,veteran 放开个性化权重,auto 走画像自动档 | auto |
| 目标 profile | 字符串 | 一键安装 / 卸载 / 自更新落到哪个 profile | web |
| GitHub 绑定 | 设备流 token 或 PAT | 用于同步加星列表与在面板里给仓库加星(PAT 才能直接加星) | 未绑定 |
本地配置文件落在
$DSH_MARKET_DATA_DIR/下:profile.json(画像)/settings.json(模式 + profile 覆盖)/binding.json(GitHub 凭据)/snapshots/(每次安装的快照,失败时用于回滚)。
常见问题
Q: 这个子包和 dsh-market 根仓库是啥关系?我应该装哪个?
A: 根仓库是一个 monorepo(collector 数据管道 + web 静态站 + plugin/core 逻辑层 + plugin/ui 插件版)。装 plugin/ui 即可获得侧边栏面板;plugin/core 是 plugin/ui 的依赖,宿主在装 ui 时会自动带上。Web 版(dsh.market)和插件版仅共享同一份 plugins.json 数据,互相独立——装插件不影响 Web 站,反之亦然。
Q: 安装失败会不会留下半成品?
A: 不会。安装器在执行前会拍快照(旧 skill 目录备份到 .bak-<时间戳>、旧 profile package.json 内容),失败时自动回滚;克隆和 dsh plugin add 每步最多重试 2 次才放弃,UI 把每一步的状态(pending/running/done/failed/skipped)实时回显。
Q: 卸载插件后本插件的数据还在吗?
A: 本插件自己的本地数据(画像、设置、GitHub 绑定、收藏、安装快照)全部留在 ~/.dsh/plugins/dsh-market/,重装后画像能接着用;它只删你从市场里装的第三方插件(删 skill 目录或从 profile 依赖里移除包名)。
Q: 自更新弹「EPERM」怎么处理?
A: 因为 harness 正在运行,pnpm 替换插件目录里的文件可能被占用。UI 会给出可执行的修复指引:先停掉 harness,然后跑 npx @deepseek-ai/dsh plugin --profile <profile> add @dsh-market/plugin@latest,再重启 harness。
Q: 哪些功能需要联网,哪些能离线?
A: 浏览/搜索/推荐/一键安装/卸载/自更新/GitHub 加星都需要联网;本地画像、收藏、设置、Fuse 索引能离线复用上次缓存。设备流 token 不支持加星(GitHub API 不允许),需要 PAT。
Q: AI 语义搜索、AI 代理安装、场景推荐的前提是什么?
A: 这三项调用 harness 的内部服务——「场景推荐」要 sessionQuery、「AI 语义搜索」要 llm、「AI 代理安装」要 subagents 与 agents。宿主版本较旧或对应服务未注册时,UI 会降级或返回明确错误,不影响基础浏览/搜索/本地安装。
Q: 一键安装的原理是什么?失败能回滚吗?
A: skill 型 = git clone --depth 1 <repo> <skillsDir>/<name>-latest,已装则跳过;cordis 型 = dsh plugin --profile <target> add <pkg>,已装则跳过。每步执行前先做「安装前快照」,任何一步失败立即回滚(删新目录 / 恢复旧 package.json),最多重试 2 次。
上手难度
入门 — 默认零配置即可使用,进阶功能(GitHub 绑定、自更新、AI 代理安装)藏在「设置」里按需打开;不需要背任何命令。
已知问题与限制
- 自更新 EPERM:harness 进程占着插件目录文件时 pnpm 覆盖会被拒,UI 必须提示用户先停 harness 再装 @latest 重启(plugin/ui/src/index.ts:179-202)
- cordis 插件卸载依赖键名大小写敏感:市场里 plugin.name 是 GitHub 仓库原大小写(如 DSH-better-sidebar),直接推断会卸载失败,必须用
localName(已装项的实际依赖键名 / 目录名)才能正确移除(plugin/ui/src/index.ts:366-374 / plugin/core/src/installer.ts:329-333) - Windows 上删 skill 目录可能被占用:内置 5 次重试 +
rmdir /s /q系统命令兜底,但仍可能需要关闭占用进程才能完全删干净(plugin/core/src/installer.ts:289-310) - AI 语义搜索固定召回 60 个候选池:插件量增长时召回深度不会同步增加,避免 token 失控,但同时限制了长尾召回(plugin/ui/src/index.ts:286-337)
- AI 代理安装与 AI 语义搜索需要宿主服务:依赖 harness 暴露
subagents/llm/sessionQuery服务,老版本宿主可能缺失,UI 会返回明确错误(plugin/ui/src/index.ts:286-414) - GitHub 设备流 token 不能加星:设备流是 GitHub App OAuth,API 不开放 user/starred 端点,加星必须在「设置」里改用 PAT(plugin/ui/src/client/panel.tsx:175-179)
- 整合包 Tab 是浏览入口,不直接装:v0.1 实现是「点击打开包作者仓库页,由包作者提供安装方式」,不直接接管整合包安装(plugin/ui/src/client/panel.tsx:1571-1574)
中文 · English
两种形态
DSH 生态增长极快,插件与技能散落在 GitHub 各处 —— 不知道哪个好用、怎么装、怎么组合成一套能干活的环境。DSH Market 用一个平台收齐它们,并提供两种消费入口:
| 位置 | 浏览器 · GitHub Pages 纯静态站 | DSH 侧边栏 · cordis 插件 |
| 定位 | 发现与评估 | 安装与管理 |
| 内容 | 插件(cordis/skill)+ 整合包分区(生态内容市场) | 5-Tab 面板 · 一键安装 · 新手推荐 · 个性化推荐 · 场景推荐 · AI 代理安装(详见 DSH 插件版)+ 整合包 Tab |
| 安装 | 零安装,浏览器打开即用 | npx @deepseek-ai/dsh plugin --profile web add @dsh-market/plugin |
| 资源消耗 | — | 零 token 被动运行,不参与日常对话 |
两者的关系:仅共享同一份
plugins.json数据(每日 06:00 自动刷新星星与描述),除此之外没有直接关联——Web 版是独立的浏览站,插件版是独立的 cordis 插件,可分别使用、互不依赖:用 Web 版不一定要装插件,装插件也不影响 Web 站。
演示
| Web 版 | DSH 插件版 |
|---|---|
![]() | ![]() |
快速开始
Web 版
无需安装,直接访问:
安装插件版
npx @deepseek-ai/dsh plugin --profile web add @dsh-market/plugin
装完重启 harness,侧边栏底部出现「插件市场」入口。
DSH 插件版
装进 DSH 侧边栏的插件市场:新手 3 分钟上手,越用越懂你。
新手友好 · 零门槛
- 首次打开有冷启动问卷:选你常用的场景与插件类型,立即得到精选 + 猜你喜欢
- 不用记任何命令——卡片上一键安装(skill / cordis 自动路由,失败自动重试、可回滚)
- 零 token 被动运行:不打开面板不消耗任何资源,不参与日常对话
个性化推荐 · 越用越懂你
- 画像来自问卷 / 收藏 / GitHub 加星 / 已装插件,全部保存在本机
- 「猜你喜欢」随使用动态更新(EMA 衰减),每个推荐附一句「为什么推荐」
场景推荐 · 读当前会话
- 手动触发,读取当前会话标题与消息(零 token)→ 推荐"现在这个场景该装什么"
AI 语义搜索 · 即将上线
- 本地召回 60 候选 → LLM 精排 20 并附理由;候选池固定不随插件量增长,默认关闭省 token
AI 代理安装
- 拿不准装不装?交给 DSH 子代理:读 README → 验证 → 安装,需要配置时先向你确认
特性
- 持续收录 — 每天自动扫描
dsh-plugin/dsh等 GitHub topic、社区精选列表,全量收录(当前 4276 个插件 + 整合包通道) - 实用五维评分 — 维护活跃 / 实用度 / 生态热度 / 便捷度 / 信号质量,加权几何平均融合,每个插件附「为什么推荐」解释
- 中文体验 — 所有插件自动生成中文简介与中文功能标签,中文搜索、中文筛选
- 一键安装 — 插件版确定性脚本路由:skill 型
git clone,cordis 型dsh plugin add;失败可重试、可回滚 - AI 安装 — 插件版可交给 DSH 子代理读 README 验证后安装,需要配置时先向你确认
- 推荐体系 — 冷启动问卷 / 新手友好 / 猜你喜欢(个性化画像)/ 场景推荐(读会话上下文,详见 DSH 插件版)
- 整合包生态 — Web「整合包」分区 + 插件端整合包 Tab(浏览 / 条目解析率校验 / 装包入口);配套
dsh.pack.json整合包协议(详见 dsh-bundler) - 零 token 常驻 — 插件版纯被动运行,不打开面板不消耗任何资源
使用
Web 版
| 场景 | 怎么用 |
|---|---|
| 找插件 | 搜索框中文关键词 / 标签多选 / 类型与评分筛选 |
| 看质量 | 卡片五边形雷达图 + 五维明细 + 推荐理由 |
| 装插件 | 详情页复制真实安装命令,或复制「AI 安装提示词」 |
插件版(5-Tab 面板)
| Tab | 做什么 |
|---|---|
| 推荐 | 猜你喜欢 / 精选 / 场景推荐(手动触发,读会话上下文) |
| 搜索 | 本地 Fuse 搜索 · 热门标签 · 200+ 结果分页 |
| 收藏 | 星标收藏的插件,稍后安装 |
| 已装 | 检测本机已装(skill 目录 + profile),一键卸载 |
| 设置 | GitHub 绑定(PAT 加星 / 设备流只读)· 推荐模式 · 目标 profile |
评分体系
实用五维(权重加权几何平均,借鉴 StarRadar 融合机制、理念转向「实用、便捷」):
| 维度 | 权重 | 含义 |
|---|---|---|
| 维护活跃 | 30% | 近 90 天提交 + issue 健康度(DSH 迭代快,易坏的插件权重最高) |
| 实用度 | 25% | README / 文档 / 示例完备度 |
| 生态热度 | 20% | stars 对数归一化(p99 动态基准)+ fork 参与率(Wilson 小样本稳健) |
| 便捷度 | 15% | 安装步骤清晰 + 无需额外配置 |
| 信号质量 | 10% | license / topics / description / README 完备度 |
每个插件附 explanation(一句话解释评分理由)。详见 评分体系说明。
收录机制
定位:DSH Market 是 DeepSeek Harness 生态的插件收录与发现平台——只收 DSH 专属生态的插件,不做通用项目收录。
每日 06:00 自动管道扫描以下数据源:
GitHub Actions(每日 06:00 自动收录 + 部署)
└─ collector(Node,并发 10,24h 缓存)
├─ 扫描数据源:
│ ├─ topic 扫描:dsh-plugin / dsh / deepseek-harness-plugin / dsh-bundle / dsh-skill
│ │ └─ 多路排序并集(stars + updated + created 各取前 1000,去重合并)
│ │ └─ GitHub Search API 单查询硬上限 1000 条,多路并集覆盖长尾(~72%+)
│ │ └─ 限流:Search API 30 次/分钟 → 每页间隔 2.3s,防 403
│ ├─ awesome 列表 ×2(人工策展社区列表)
│ ├─ dsh-external 组织
│ └─ 本仓库提交插件 issue(label: submission / 标题「[提交插件]」)
├─ 收录条件(全部满足才收录):
│ 1. 不是 fork / archived / 官方本体(deepseek-ai/deepseek-harness)
│ 2. 特征检测通过:根目录有 SKILL.md(skill 型)
│ 或 skills/ 目录含 SKILL.md(技能集合)
│ 或 dsh.profile / cordis.patch.yml 等 cordis 标记
│ 或 package.json 依赖含 cordis 关键字(二次确认)
│ 3. 无 stars / 评分门槛——检测通过即收录
├─ 元数据 + README:GitHub API(stars / 描述 / 安装命令解析)
├─ 实用五维评分 + 解释层
└─ DeepSeek 增量中文化(只翻译新插件,省 API 费用)
→ data/plugins.json
├─ 同步到 web/public/plugins.json(Web 站 + 插件版共用)
└─ 提交 → 构建 → 部署 GitHub Pages
说明:打了 dsh-plugin topic 只是进入候选池的入场券——收录还需要仓库确实是 DSH 插件(有 SKILL.md 或 cordis 标记)。topic 2000+ 仓库中大量并非 DSH 插件(随手打 tag / fork),特征检测会自动过滤。
目录结构
├─ collector/ # 数据管道(Node + tsx):扫描 → 检测 → 评分 → 中文化
├─ web/ # Web 站(Vite + React + TS + Fuse.js)
├─ plugin/
│ ├─ core/ # 插件核心层(纯 Node,零 DSH 依赖,可独立测试)
│ └─ ui/ # 插件 UI 层(cordis Host RPC + 浏览器 Client 面板)
├─ schema/ # 共享类型(DshPlugin / MarketData / PracticalScore)
└─ scripts/ # 工具脚本(截图 / 数据注入 / 视觉评审)
本地开发
# 克隆与安装
git clone https://github.com/2BingLing/dsh-market.git
cd dsh-market
npm install
cp .env.example .env # 填入 GITHUB_TOKEN(必需)、DEEPSEEK_API_KEY(可选)
# 数据管道(扫描 → 检测 → 评分 → 中文化 → data/plugins.json)
npm run collect
# Web 站
npm run dev -w web # http://localhost:5173
npm run build -w web # 生产构建
# 插件端
npm run build -w @dsh-market/core # 核心层
npm run build -w @dsh-market/plugin # 插件包(lib/index.js + lib/client.js)
贡献
提交插件(两种方式均可)
- 给仓库打
dsh-plugintopic —— 最快,每日管道扫描直接命中 - 通过 提交插件 issue 模板 提交 —— 填写仓库地址 / 插件类型 / 一句话简介即可
提交后会发生什么:
提交 issue → 次日 06:00 自动管道提取仓库 → 特征检测
├─ 通过(是 DSH 插件)→ 收录进市场 → 自动回复 issue:
│ ✅ 已收录确认 + 次日更新说明 + 徽章指引 → 自动关闭 issue
└─ 未通过(非插件)→ 不收录(可重新打开 issue 询问原因)
-
修正数据:评分 / 描述 / 安装命令有误,提 issue 或 PR
-
作者自述:提交时附上「作者自述简介」,会展示在市场详情页的「作者自述」专区(带作者标识)——用你自己的话介绍插件,比自动简介更有温度。已收录插件可提交
[数据修正]issue 补写 -
挂收录徽章:被收录的插件作者可在 README 顶部挂 DSH Market 收录徽章,让用户一眼认出:
用法见 PLUGIN-BADGE.md(高分精选需实用评分 ≥ 80)
License
收录徽章
[](https://deepseek-plugin.org/plugins/2BingLing/dsh-market/plugin/ui)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

