Skip to content

dsh-publisher-radar

Verified

dsh-publisher-radar · v1.0.3 · MIT · Web UI

Market-gap radar for DSH plugin developers: splits 6,000+ plugins by category and topic, tags each topic empty / thin / contested / crowded, and ranks the emptiest directions first — so you know what to build before writing it. Also browses the full marke

Install

dsh plugin add dsh-publisher-radar

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

dsh-publisher-radar · 插件雷达(Publisher Radar)

给 DSH 插件开发者的市场空白情报台——先看清楚哪个方向还没人做,再动手写代码。

它回答的就一个问题:市场里哪些方向还是空的? 6,000+ 个插件按大类 → 小类(方向)三级拆开,每档标出空位 / 稀少 / 有竞争 / 红海,直接告诉你下一个插件该做什么。市场全量浏览和安装命令只是顺带的能力。

English · MIT · 发布说明

为什么

DSH 插件市场在 2026 年突破 6,000 个插件,还在增长——面板里的数字是实时读目录算出来的,不会写死在文案里。

市场越大,"我该做什么"越难答。真正卡住开发者的不是写不写得出来,而是写完之后发现有人已经做过了。而这个判断今天基本靠翻列表、凭印象:

  1. 这个方向是不是已经被占了?——重名严重(五个作者都在发 dsh-plugin-doctor),而真正的竞品用完全不同的词描述自己,按名字搜根本搜不到。
  2. 热门大类里还有没有缝?——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