浏览插件市场,查空位与竞品,看自家数据
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add songrui111/dsh-publisher-radar该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 38 处,展示前 32 条)
- 读取本地文件index.js:330
const names = readdirSync(join(home, 'profiles'), { withFileTypes: true }) - 发起网络请求client/client.js:206
fetch(url, { headers: { accept: 'application/json' }, cache: 'no-store' }) - 写入剪贴板client/client.js:321
try { navigator.clipboard.writeText(text); setNote('已复制') } catch { setNote(text) } - 发起网络请求client/client.js:350
fetch('/radar/config', { - 读取本地文件lib/radar.mjs:23
const pkg = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')); - 读取本地文件lib/radar.mjs:69
for (const entry of readdirSync(join(home, 'profiles'), { withFileTypes: true })) { - 读取本地文件lib/radar.mjs:74
if (!existsSync(file)) continue; - 读取本地文件lib/radar.mjs:76
const pkg = JSON.parse(readFileSync(file, 'utf8')); - 读取本地文件lib/github.mjs:29
const parsed = JSON.parse(readFileSync(join(cacheDir, CACHE_FILE), 'utf8')); - 写入本地文件lib/github.mjs:38
mkdirSync(cacheDir, { recursive: true }); - 写入本地文件lib/github.mjs:39
writeFileSync(join(cacheDir, CACHE_FILE), JSON.stringify(cache, null, 2), 'utf8'); - 读取密钥环境变量lib/github.mjs:53
const token = options.token ?? process.env.GITHUB_TOKEN ?? ''; - 读取本地文件lib/catalog.mjs:207
const text = readFileSync(options.catalogPath, 'utf8'); - 读取本地文件lib/catalog.mjs:210
fetchedAt: statSync(options.catalogPath).mtime.toISOString(), - 读取本地文件lib/catalog.mjs:218
if (!options.force && existsSync(cacheFile) && meta.fetchedAt) { - 读取本地文件lib/catalog.mjs:222
const text = readFileSync(cacheFile, 'utf8'); - 写入本地文件lib/catalog.mjs:241
mkdirSync(cacheDir, { recursive: true }); - 写入本地文件lib/catalog.mjs:242
writeFileSync(cacheFile, text, 'utf8'); - 写入本地文件lib/catalog.mjs:243
writeFileSync(metaFile, JSON.stringify({ fetchedAt, bytes, entries: catalog.entries.length, sourceUrl: source.label }, null, 2), 'utf8'); - 读取本地文件lib/catalog.mjs:249
if (existsSync(cacheFile) && meta.fetchedAt) { - 读取本地文件lib/catalog.mjs:251
const text = readFileSync(cacheFile, 'utf8'); - 读取本地文件lib/prefs.mjs:24
if (!existsSync(file)) return { myPlugins: [], githubToken: '' }; - 读取本地文件lib/prefs.mjs:26
const raw = JSON.parse(readFileSync(file, 'utf8')); - 写入本地文件lib/prefs.mjs:54
mkdirSync(cacheDir, { recursive: true }); - 写入本地文件lib/prefs.mjs:55
writeFileSync(configPath(cacheDir), JSON.stringify(next, null, 2), 'utf8'); - 写入本地文件lib/prefs.mjs:56
try { chmodSync(configPath(cacheDir), 0o600); } catch { } - 读取本地文件lib/checkup.mjs:19
return JSON.parse(readFileSync(file, 'utf8')); - 读取本地文件lib/checkup.mjs:37
if (!existsSync(dir) || !statSync(dir).isDirectory()) { - 读取本地文件lib/checkup.mjs:37
if (!existsSync(dir) || !statSync(dir).isDirectory()) { - 读取本地文件lib/checkup.mjs:90
if (!existsSync(patchFile)) { - 读取本地文件lib/checkup.mjs:94
const text = stripYamlComments(readFileSync(patchFile, 'utf8')); - 读取本地文件lib/checkup.mjs:110
} else if (!existsSync(clientPath)) {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(161 字)↓
插件雷达:DSH 插件市场浏览器 + 作者情报台。6,000+ 个插件可搜可翻可筛,点开即得安装命令;另有空位榜、竞品查询,以及你自己插件的下载与 Star。数字在面板里是实时的。DSH 插件市场全景浏览器——6,000+ 个插件,可搜索、可翻页,每个都带一条可直接复制的安装命令——外加空位与竞品分析,专为插件作者准备。
README
由 DeepSeek 最新模型翻译生成dsh-publisher-radar · 插件雷达(Publisher Radar)
DSH 插件市场浏览器 + 作者情报台——装上就能用。
侧栏的插件雷达里,整个市场(6,000+ 个插件,且还在涨——面板显示实时数字)都能搜、能按大类/方向下钻、能翻页排序、点开就能复制安装命令;同时它告诉你哪些方向还是空的。
English · MIT · 发布说明
为什么
DSH 插件市场在 2026 年突破 6,000 个插件,还在增长——面板里的数字是实时读目录算出来的,不会写死在文案里。决定一个插件值不值得做,就两个问题,而今天两个都没有答案:
1. 这个是不是已经有人做了?——重名严重(五个作者都在发 dsh-plugin-doctor),而真正的竞品用完全不同的词描述自己。
2. 我这个包能不能过市场的安装路径?——缺 dsh.bundle.patch、带 install 生命周期脚本,都会让列表页上的插件静默装不上。
你会看到什么
一个侧栏入口、五个模型工具——全部来自同一份目录。
展开完整文档(README 剩余 1 节)
dsh-publisher-radar · 插件雷达(Publisher Radar) DSH 插件市场浏览器 + 作者情报台——装上就能用。 侧栏的插件雷达里,整个市场(6,000+ 个插件,且还在涨——面板显示实时数字)都能搜、能按大类/方向下钻、能翻页排序、点开就能复制安装命令;同时它告诉你哪些方向还是空的。 English · MIT · 发布说明 为什么 DSH 插件市场在 2026 年突破 6,000 个插件,还在增长——面板里的数字是实时读目录算出来的,不会写死在文案里。决定一个插件值不值得做,就两个问题,而今天两个都没有答案: 1. 这个是不是已经有人做了?——重名严重(五个作者都在发 dsh-plugin-doctor),而真正的竞品用完全不同的词描述自己。 2. 我这个包能不能过市场的安装路径?——缺 dsh.bundle.patch、带 install 生命周期脚本,都会让列表页上的插件静默装不上。 你会看到什么 一个侧栏入口、五个模型工具——全部来自同一份目录。 | 入口 | 用途 | | 插件雷达面板(侧栏) | 全量浏览整个市场:搜索、大类下拉、翻页、按下载/星数/收录时间排序;点开看详情并复制安装命令 | | 面板「方向」 | 大类 → 小类(方向)→ 插件,三级下钻;空位/稀少/有竞争/红海四档,可正倒序 | | 面板「设置」 | 填要跟踪的 npm 包名、可选的 GitHub token(不填也能用) | | radar_gaps | 哪些主题只有 0–3 个插件? | | radar_market | 市场多大、头部是谁? | | radar_plugin | 这个主题/名字/作者,已经被谁占了? | | radar_checkup | 这个目录能不能过市场安装? | | radar_mine | 我的下载量、Star、是否被收录、同类排名 | 安装一个插件 点开任意插件 → 底部就是填好 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
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
songrui111/dsh-publisher-radar
浏览插件市场,查空位与竞品,看自家数据
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 21,780未汉化DSH
73.5
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 1,947已汉化MCP
72.7
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,347已汉化DSH
71.9
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13917 个插件含 PR 收录与…
★ 343已汉化DSH
71.6