dsh-publisher-radar · 插件雷达(Publisher Radar)
给 DSH 插件开发者的市场空白情报台——先看清楚哪个方向还没人做,再动手写代码。
它回答的就一个问题:市场里哪些方向还是空的? 6,000+ 个插件按大类 → 小类(方向)三级拆开,每档标出空位 / 稀少 / 有竞争 / 红海,直接告诉你下一个插件该做什么。市场全量浏览和安装命令只是顺带的能力。
English · MIT · 发布说明
为什么
DSH 插件市场在 2026 年突破 6,000 个插件,还在增长——面板里的数字是实时读目录算出来的,不会写死在文案里。
市场越大,"我该做什么"越难答。真正卡住开发者的不是写不写得出来,而是写完之后发现有人已经做过了。而这个判断今天基本靠翻列表、凭印象:
- 这个方向是不是已经被占了?——重名严重(五个作者都在发
dsh-plugin-doctor),而真正的竞品用完全不同的词描述自己,按名字搜根本搜不到。 - 热门大类里还有没有缝?——
ui、dev这种大类下面藏着几十个细分方向,有的挤了几十个插件,有的只有 1–3 个。
插件雷达把目录按方向切开,让"哪里空"变成一眼能看见的东西。
你会看到什么
一个侧栏入口、五个模型工具——全部来自同一份目录。核心是「方向」视图,其余是配套。
| 入口 | 用途 |
|---|---|
radar_gaps |
最常用:哪些主题只有 0–3 个插件?按空位多少排序,直接给出可做的方向 |
| 面板「方向」 | 上面这个视图的界面版:大类 → 小类(方向)→ 插件,三级下钻;空位/稀少/有竞争/红海四档,可正倒序 |
radar_plugin |
这个主题/名字/作者,已经被谁占了?查重、找竞品 |
radar_market |
市场多大、头部是谁?各分类的分布如何 |
radar_mine |
我的下载量、Star、是否被收录、同类排名 |
radar_checkup |
这个目录能不能过市场安装? |
| 插件雷达面板(侧栏) | 全量浏览整个市场:搜索、大类下拉、翻页、按下载/星数/收录时间排序;点开看详情并复制安装命令 |
| 面板「设置」 | 填要跟踪的 npm 包名、可选的 GitHub token(不填也能用) |
安装一个插件
点开任意插件 → 底部就是填好 profile 的命令,例如:
dsh plugin --profile desktop add dsh-wsl-tool
一键复制,粘到终端执行,重启 DSH。面板不替你执行安装:从只读面板里跑包管理器,失败一次就可能起不来,而定向 profile 的信息在宿主侧才可靠。
零配置是怎么做到的
下面这些都不需要你做,也没有任何"初始化"步骤:
- 目录——官方站、unpkg、jsDelivr、npm 国内镜像(
dsh-plugin-catalog的 tarball)并行竞速,谁先答应用谁,结果缓存 6 小时。实网测量:官方站被墙时 6.7 秒、走国内镜像 0.7 秒、命中缓存 50 毫秒。 - Star——默认用目录里的数;实时 GitHub 数是可选项,失败时静默回退。
- 你自己的插件——工作区就是插件目录时自动识别(目录里的
package.json声明了dsh.bundle)。
安装
dsh plugin --profile web add dsh-publisher-radar
重启 profile,侧栏就多出插件雷达。
我的插件
不需要 token。两种方式二选一:
- 把工作区切到你的插件目录(目录里的
package.json声明了dsh.bundle),自动识别; - 或在面板「设置」里填 npm 包名(逗号分隔)。
GitHub token 只在你想看实时 star 时才需要;不填就用目录快照里的 star,功能不受影响。token 保存在 ~/.dsh/publisher-radar/config.json(仅本机,明文),面板只读回「是否已设置」,从不回显。
可选配置
面板「设置」已经覆盖常用项;也可以用 profile patch:
- id: publisher-radar
config:
myPlugins: ["your-package"] # 同「设置」里的包名
githubToken: "" # 同「设置」;也可用环境变量 GITHUB_TOKEN
cacheMinutes: 360 # 目录缓存时效
诚实的说明
- 覆盖数是「名称 + 描述」的词面匹配,会偏高(
ats命中formats)。所以:报 0 可信,数字很大只能说明「不是明显的无人区」。 - 80 个方向没有覆盖全部插件(约一半插件不命中任何方向)。浏览是全量的,方向是选题用的,两者别混。
checkup判断的是打包与供应链形状,不是代码质量或安全性。
隐私
- 只读公开数据,从不上传。
- 写入:只有两样——目录缓存(
catalog.json,8.7 MB,6 小时过期)和你自己保存的设置(config.json)。不写历史、不写会话、不写你的代码。 radar_checkup只读你指定的目录,任何地方都不写。- 面板由你本机的 DSH Web 服务同源提供,
no-store。
开发与验证
npm test # 单测 + 宿主接线 + 浏览器半区(离线)
node test/smoke.mjs --catalog ../market/plugins.json # 对真实目录快照跑
npm run test:install # 打包 → 装进空目录 → 启动它
node scripts/sync.mjs # 复制进 desktop profile
test:install 是发布前最该跑的那条:它拿用户会下载的那个 tarball,npm install 进一个空目录,再把安装后的那份代码导入启动,断言它注册了 5 个工具和 2 条路由。源码树里能过、打包后却坏的错误(漏文件、patch 里写了绝对路径)都会在这里现形。
没有构建步骤、没有运行时依赖。lib/ 就是发布的源码;浏览器半区是手写的纯 JS(无 JSX、无打包器),与 DSH 自带面板同一形状。
局限
- 目录是精选列表,不是 npm 全量;没被收录的插件在这里看不见。
added来自目录,太新的插件可能还没有日期。
License
MIT