🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件目录分类 LUTAO581314/dsh-plugin-catalog

DeepSeek Harness
LUTAO58131414 天前有提交已提供中文文档扫描:含敏感能力

为已安装插件加搜索框并按市场分类分组展示

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add LUTAO581314/dsh-plugin-catalog
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 14 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 读取本地文件
    index.js:143
    if (!existsSync(file)) return emptyState();
  • 读取本地文件
    index.js:144
    const parsed = JSON.parse(readFileSync(file, "utf8"));
  • 写入本地文件
    index.js:174
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    index.js:177
    writeFileSync(temporary, `${JSON.stringify(state, undefined, 2)}\n`, { mode: 0o600 });
  • 写入本地文件
    index.js:178
    renameSync(temporary, file);
  • 删除本地文件
    index.js:181
    rmSync(temporary, { force: true });
  • 写入本地文件
    index.js:363
    mkdirSync(catalogDir(), { recursive: true });
  • 发起网络请求
    client.js:264
    const response = await fetch(url, {
  • 读取本地文件
    test-host.mjs:124
    const onDisk = JSON.parse(readFileSync(statePath(), "utf8"));
  • 写入本地文件
    test-host.mjs:129
    writeFileSync(statePath(), "{not json", "utf8");
  • 读取本地文件
    test-host.mjs:132
    assert.equal(readFileSync(statePath(), "utf8"), "{not json");
  • 删除本地文件递归
    test-host.mjs:220
    rmSync(home, { recursive: true, force: true });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-ui-primitives
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

为 DSH 已安装插件页加上搜索和市场分类分组,涵盖内置插件和实验性插件。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-catalog 在 DSH 的 插件 → 已安装 页里,把已安装插件、内置插件配置和实验性插件合成一份可搜索、按分类分组的列表。 - 搜索:按插件标题、包名、描述、作者、市场关键词和分类名过滤;空格分隔的多个词必须全部命中。 - 按分类分组: - 社区插件按下载时插件市场的分类分组。每个插件在第一次被看到时记下它当时的分类;同一版本不会被后来的市场改分类覆盖,升级到新版本才按新下载重新记录。可以手动「重新同步分类」。 - DSH 自带的 plugins.item 配置项(子智能体、网页搜索、Agent 循环、终端等)归入内置。 - DSH 随附的 official bundle(包括平常收在「更多」里的实验性组合包)归入实验性。 - 市场索引里没有的第三方插件归入未分类。 - 每行右侧保留启用/停用开关(内置配置项没有开关,点开就是配置页);点行主体打开该插件/配置项的详情页。 - 图标:内置配置项用官方原语图标(终端 / Agent 循环 / 子智能体 / 网页搜索),其余插件优先用包自带的 meta.icon,没有或读不到时用官方默认插件图,不再用标题首字占位。 - 宽度与插件页其它区块一致(max-width: 960px),并与页面一样居中。
展开完整文档(README 剩余 1 节)
dsh-plugin-catalog

在 DSH 的 插件 → 已安装 页里,把已安装插件、内置插件配置和实验性插件合成一份可搜索、按分类分组的列表。

- 搜索:按插件标题、包名、描述、作者、市场关键词和分类名过滤;空格分隔的多个词必须全部命中。
- 按分类分组:
- 社区插件按下载时插件市场的分类分组。每个插件在第一次被看到时记下它当时的分类;同一版本不会被后来的市场改分类覆盖,升级到新版本才按新下载重新记录。可以手动「重新同步分类」。
- DSH 自带的 plugins.item 配置项(子智能体、网页搜索、Agent 循环、终端等)归入内置。
- DSH 随附的 official bundle(包括平常收在「更多」里的实验性组合包)归入实验性。
- 市场索引里没有的第三方插件归入未分类。
- 每行右侧保留启用/停用开关(内置配置项没有开关,点开就是配置页);点行主体打开该插件/配置项的详情页。
- 图标:内置配置项用官方原语图标(终端 / Agent 循环 / 子智能体 / 网页搜索),其余插件优先用包自带的 meta.icon,没有或读不到时用官方默认插件图,不再用标题首字占位。
- 宽度与插件页其它区块一致(max-width: 960px),并与页面一样居中。

安装

从 npm 安装(发布后可用):

dsh plugin add @lutao581314/dsh-plugin-catalog

或直接从 GitHub 安装(无构建步骤):

dsh plugin add github:LUTAO581314/dsh-plugin-catalog

本地开发时把本仓库链接进 desktop profile:

dsh plugin --profile desktop add link:<本仓库的本地路径>

等 HMR 重新组合(或完全退出并重开 DSH 一次)。打开侧栏 插件 → 已安装 即可看到搜索框和分类分组。

卸载:

dsh plugin remove @lutao581314/dsh-plugin-catalog

它是怎么嵌进「已安装」页的

插件页把 plugins.overview 声明成一个 root 级 list slot,位置就在「已安装」主列表的上方。本插件向它注册一个条目,并在数据就绪后隐藏页面自带的三个分组,避免出现两份列表:

| 页面自带分组 | 隐藏条件 | 本插件里的替代分组 |
| data-plugin-group="bundles" | body[data-dsh-catalog-ready="1"] | 市场分类 / 未分类 |
| data-plugin-group="basic" | body[data-dsh-catalog-builtins="1"] | 内置 |
| data-plugin-group="extensions" | body[data-dsh-catalog-experimental="1"] | 实验性 |

这些 data-* 标记只在对应数据源真的拿到内容时才设置:例如 plugins.item 还没注册完时不会隐藏「内置插件配置」,official bundle 读取失败时也不会隐藏「实验性插件」。插件被停用或加载失败时,样式表随之移除,页面恢复成官方列表。

数据与接口

快照存在 $DSH_HOME/dsh-plugin-catalog/state.json(默认 C:\Users\<你>\.dsh\dsh-plugin-catalog\state.json),只在第一次写入时创建。宿主半身提供三个路由:

| 路由 | 作用 |
| GET /dsh-plugin-catalog/state | 当前快照 |
| POST /dsh-plugin-catalog/capture | 记录一批分类(JSON body) |
| GET /dsh-plugin-catalog/status | 目录、条目数、更新时间 |

capture 的语义:

- mode: "capture"(默认):首次记录为准。同版本的插件不会被覆盖;记录里的 version 和已记录版本不同时,视为一次新的下载并更新;之前「未收录」的插件后来出现在市场里,也会补上分类。
- mode: "resync":按提交值整体覆盖(界面上的「重新同步分类」)。

快照条目:

{
"version": 1,
"updatedAt": 1792600000000,
"categories": { "usage": { "zh": "用量与计费", "en": "Usage & Billing" } },
"categoryOrder": ["agi", "ui", "usage"],
"packages": {
"dsh-cost-meter": {
"name": "dsh-cost-meter",
"listed": true,
"categoryId": "usage",
"category": { "zh": "用量与计费", "en": "Usage & Billing" },
"indexUrl": "https://cdn.jsdelivr.net/gh/realguan/dsh-plugin-market@dist/dsh-index.json",
"marketTitle": { "zh": "DSH 插件市场", "en": "DSH Plugin Market" },
"author": "…",
"keywords": ["cost", "usage"],
"version": "1.9.15",
"source": "download",
"capturedAt": 1792600000000
}
}
}

source 取值:download(首次看到)、backfill(本功能上线时对已有插件的回填)、update(版本变化)、resync(手动同步)。

为什么分类要找宿主问

浏览器半身通过 ctx.remote.pluginMarket.search(indexUrl, { text: 包名, sort: { kind: "relevance" } }) 一次查一个已安装插件,从返回的 metadata.category 与 metadata.categories 里取分类 id / 标题。
索引只由宿主拉取一次(宿主有 10 分钟缓存),所以本插件不会自己下载 7 MB 的索引;插件市场不可用时,分类沿用上一次记录。

测试

node test-host.mjs # 快照合并、路由、原子写、损坏文件
node test-client.mjs # 分组/搜索、市场抓取、卡片/开关与 overview 注册

两个测试都是零依赖的,不需要启动 DSH。

兼容性

DSH 0.2.1-rc.2(在 desktop 配置档上验证)。package.json 同时声明了 engines.dsh 与 dsh.compatibility.dshReleases,便于市场判断版本。

License

MIT
预览分享卡片长什么样 ↓LUTAO581314/dsh-plugin-catalog
分享 · DeepSeek Harness Hub
LUTAO581314/dsh-plugin-catalog

为已安装插件加搜索框并按市场分类分组展示

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部