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

插件体检医生 white-sand-grand/dsh-plugin-doctor

DeepSeek Harnessv0.1.1
white-sand-grand73 天前有提交已提供中文文档扫描:含敏感能力

排查插件冲突并给出安装与去重建议

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

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

自动兼容检查有告警:npm 同名包「dsh-plugin-doctor」归属 xrainsmile/dsh-plugin-doctor,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add white-sand-grand/dsh-plugin-doctor
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · dev
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 73 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/29) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-plugin-doctor」归属 xrainsmile/dsh-plugin-doctor,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-plugin-doctor @ 0.1.1
✓Node 引擎要求 >=22.19 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/18 00:24:08

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 执行外部命令固定命令
    lib/index.js:70
    const result = spawnSync('dsh', ['plugin', '--profile', profile, action.kind, action.spec], {
  • 执行外部命令固定命令
    lib/index.js:97
    const result = spawnSync('dsh', ['--version'], {
  • 读取本地文件
    lib/inventory.js:31
    const manifest = JSON.parse(await readFile(manifestPath, 'utf8'));
  • 读取本地文件
    lib/inventory.js:77
    const manifest = JSON.parse(await readFile(join(profileRoot, 'node_modules', name, 'package.json'), 'utf8'));
  • 读取本地文件
    lib/inventory.js:106
    const manifest = JSON.parse(await readFile(join(profileRoot, 'node_modules', name, 'package.json'), 'utf8'));
  • 读取本地文件
    lib/inventory.js:130
    const manifest = JSON.parse(await readFile(join(root, name, 'package.json'), 'utf8'));
  • 读取本地文件
    lib/official-sync.js:281
    const manifest = JSON.parse(await readFile(manifestPath, 'utf8'));
  • 读取本地文件
    lib/usage.js:51
    slugs = (await readdir(sessionsRoot, { withFileTypes: true }))
  • 读取本地文件
    lib/usage.js:61
    sessionDirs = (await readdir(join(sessionsRoot, slug), { withFileTypes: true }))
  • 读取本地文件
    lib/usage.js:72
    const mtimeMs = (await stat(path)).mtimeMs;
  • 读取本地文件
    lib/usage.js:92
    return readFile(artifact.path, 'utf8');
  • 读取本地文件
    lib/usage.js:96
    return (await decompress(await readFile(artifact.path))).toString('utf8');
  • 读取本地文件
    lib/usage.js:167
    const manifest = JSON.parse(await readFile(join(profileDir, 'node_modules', name, 'package.json'), 'utf8'));
  • 发起网络请求
    lib/http.js:23
    const result = await deps.web.fetch({ url }, signal);
  • 发起网络请求
    lib/http.js:31
    const response = await fetch(url, { headers, signal });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-credentials@deepseek-ai/dsh-settings@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 排查插件冲突
  • 提供解决方案

致力于解决各插件之间也与版本之间可能存在的冲突问题并提供解决方案

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-doctor 英文版本:README.en.md Awesome DSH Plugin dsh-plugin-doctor 是 DSH 插件生态的诊断与决策工具。它可以搜索社区插件、比较功能重复、识别聚合 bundle 提供的子插件、检查批量安装冲突、审计实际使用量、生成插件全景关系图,并检查本地安装与官方发行版的差距。 灵感来源自 claude code 的命令 "/doctor" 以及无数次下载插件造成的崩溃和冲突。 当前版本:1.1.0。插件要求 Node.js >=22.19,默认只读,不会自行安装、卸载或启动 Web UI。 安装 在运行 DSH 的同一环境中执行: dsh plugin --profile web add github:white-sand-grand/dsh-plugin-doctor 然后按你自己的方式启动 DSH Web: dsh web 打开 http://127.0.0.1:3080 后直接用自然语言提问。插件不会替你启动 Web,也不会改变已有 profile 的其他插件。
展开完整文档(README 剩余 1 节)
dsh-plugin-doctor

英文版本:README.en.md

Awesome DSH Plugin

dsh-plugin-doctor 是 DSH 插件生态的诊断与决策工具。它可以搜索社区插件、比较功能重复、识别聚合 bundle 提供的子插件、检查批量安装冲突、审计实际使用量、生成插件全景关系图,并检查本地安装与官方发行版的差距。
灵感来源自 claude code 的命令 "/doctor" 以及无数次下载插件造成的崩溃和冲突。

当前版本:1.1.0。插件要求 Node.js >=22.19,默认只读,不会自行安装、卸载或启动 Web UI。

安装

在运行 DSH 的同一环境中执行:

dsh plugin --profile web add github:white-sand-grand/dsh-plugin-doctor

然后按你自己的方式启动 DSH Web:

dsh web

打开 http://127.0.0.1:3080 后直接用自然语言提问。插件不会替你启动 Web,也不会改变已有 profile 的其他插件。

更新

使用移除后重新添加的确定性流程:

dsh plugin --profile web remove dsh-plugin-doctor
dsh plugin --profile web add github:white-sand-grand/dsh-plugin-doctor

更新后是否启动 Web 由你决定:

dsh web

能做什么

| 用户需求 | 工具行为 |
| 找一个插件 | 搜索 GitHub dsh-plugin 主题和降级数据源,返回匹配度、功能标签、stars、更新时间和安装引用 |
| 判断功能是否重复 | 比较说明文本、功能标签和依赖,并给出去重或自研建议 |
| 询问插件有什么联系 | 生成相似度关系图;节点带中文功能解释,连线说明相似度及重叠来源 |
| 安装多个仓库前检查风险 | 预检包名、工具名、Cordis patch 行和 peer 依赖;冲突或无法检查时返回 INSTALL BLOCKED |
| 检查聚合 bundle | 展开已安装的 DSH 插件形依赖;子插件标记 providedBy,不会被建议单独卸载 |
| 查看实际使用情况 | 扫描本地已落盘 session 日志,按 dsh.tools 统计调用量、会话数和最近使用时间 |
| 查看插件总体格局 | 生成 Mermaid 关系图,并按 core、active、idle、review 分层 |
| 安装前了解官方已知问题 | 在搜索、推荐或收到仓库链接准备安装时,询问是否检查官方仓库的未关闭 Issue,并显示相关链接和风险 |
| 检查本地落后官方多少 | 对比本地 DSH 版本与官方最新发行版;落后时报告发行版新改动以及可能重复或冲突的已装插件 |

七个工具

- plugin_community_search:社区插件搜索与过滤。
- plugin_similarity_analyze:相似度、重复组和不可替代性分析。
- plugin_recommend:综合搜索和本地库存做安装、去重或自研决策。
- plugin_install_guard:批量安装预检,只读不安装。
- plugin_usage_audit:本地 session 用量审计,不上传日志。
- plugin_landscape:插件全景与关系图,可把社区候选加入图中。
- plugin_official_sync:官方版本同步检查,本地落后时报告新改动与重复/冲突插件。

Agent 会根据问题自动选择工具。

安装前官方 Issue 检查

当用户通过社区搜索寻找可安装插件、请求推荐插件,或直接发送多个仓库链接要求安装时,插件会先询问是否检查这些官方仓库的未关闭 Issue。检查内容包括 Issue 标题和正文与用户需求或故障现象的匹配度,并提供官方链接,例如递归文件监视导致 Web UI 卡顿的未解决报告。

用户明确选择“不检查本会话”后,本会话不会再次弹出这个提醒;下一次新会话会重新询问。用户取消弹窗或当前环境没有交互能力时,插件会说明检查未完成,不会把它误报成“没有已知问题”。Issue API 暂时不可用只影响提醒信息,不会绕过 plugin_install_guard 的失败关闭规则。

具体使用例子

安装前先询问官方 Issue(实际故障场景)

我想安装一个 Web UI 插件,先帮我查一下官方仓库有没有未修复的问题,避免再次出现历史加载失败、模型无法选择或文件操作卡住。

插件会先询问是否进行官方 Issue 检查,来避免由于插件本身问题导致用户不得不使用其他 agent 来找出 bug 并尝试修复。举例:实际排查时,官方仓库曾发现与“右侧文件面板卡顿、历史加载失败、整个聊天对话无法继续使用”高度一致的未关闭 Issue:根因并不是远程 Web 插件,而是某个文件面板插件的递归监视行为。报告会显示插件名,例如 @example-org/ui-panel-plugin,并附上官方 [Issue #119]供用户核对。用户在本会话明确拒绝后,后续安装请求不再重复提醒。

搜索并检查重复

帮我找一个记忆插件,并检查它是否和 web profile 里已有插件重复。

结果会列出候选插件、匹配原因、与本地插件的重叠分数,以及“保留哪个、移除哪个”的命令。需要生成自研规格或执行去重时,Agent 会先请求确认。

批量安装前阻止冲突

我要同时安装以下仓库,请先检查它们会不会冲突: github:owner/plugin-a github:owner/plugin-b github:owner/plugin-c

如果 GitHub 返回 403/429,或仓库元数据无法读取,结果会是 INSTALL BLOCKED,并告诉你配置 token 或等待限流重置;它不会因为“暂时查不到”而放行。

查看插件关系

之前安装的插件之间有什么联系?哪些功能相似?

plugin_landscape 会返回关系图。每个节点有中文功能解释,每条连线说明相似度来自说明文本、功能标签还是依赖重叠;传入具体意图时,社区候选会以虚线加入图中。

识别聚合 bundle

我想安装任务看板,需要再安装一个 task-board 插件吗?
推荐逻辑会读取已安装聚合 bundle 的插件形依赖。如果功能已经由 bundle 提供,会显示 providedBy 来源,不会建议把子插件单独卸载或重复安装。

审计使用量

列出 web profile 中声明了工具但从未使用的插件。

结果来自本地已落盘 session 日志,不上传内容。当前尚未结束或尚未刷盘的会话可能尚未计入,报告会明确提示。

检查官方版本同步

我的 DSH 落后官方多少了?升级会影响已装的插件吗?

plugin_official_sync 会对比本地 DSH 版本和官方最新发行版。版本一致时只回答一句;本地落后时报告发行版新增改动,并列出可能重复或冲突的已装插件:peer 依赖范围排除新版本、声明的工具名出现在官方发行说明里、能力关键词与新改动重叠。全部发现仅供参考,不会替代安装守卫的判定。

直接提问与使用 doctor 的区别

直接对 DSH 说“帮我找个插件”时,模型通常只能根据已有上下文给出一般性建议,不能稳定地搜索社区、读取本地包元数据、量化相似度或检查 Cordis 注册冲突。安装多个仓库时也可能跳过预检。

安装 doctor 后,同样的问题会获得可复核的结构化结果:

| 直接提问 DSH | 使用 dsh-plugin-doctor |
| 依赖模型记忆或临时搜索 | 使用 GitHub、缓存和 registry 降级链,并注明数据来源 |
| “看起来重复”但没有数值依据 | 返回文本、功能标签、依赖三类相似度和重复组 |
| 可能漏掉聚合 bundle 内的子插件 | 读取已安装 bundle 依赖并标记 providedBy |
| 多个仓库直接尝试安装 | 先检查包名、工具名、patch 行和 peer 依赖;无法验证时失败关闭 |
| 很难知道插件是否真正被使用 | 从本地 session 日志统计调用量、会话数和最近使用时间 |
| 只能用文字描述插件关系 | 输出 Mermaid 关系图和逐对中文解释 |

安全与降级

plugin_install_guard 在检查不到仓库元数据时保持失败关闭。GitHub 403 或 429 会提示配置 token 或等待限流重置,未知状态不会被当作安全。

社区搜索按以下顺序降级:实时 GitHub、进程内缓存、第三方 registry 页面、内置静态快照。结果会注明数据来源。

用量审计只读取已经写入磁盘的 session 文件。当前尚未结束或尚未刷盘的会话可能不会计入,报告会明确提示。损坏文件会跳过并计数;Node 不支持 zstd 时,压缩日志会跳过,但不会阻止其他工具加载。

官方版本检查按发行版列表读取并带进程内缓存;GitHub 不可用时降级为陈旧缓存或明确的不可用提示。该降级只是提示性的,绝不会影响 plugin_install_guard 的失败关闭判定。

可选配置

| 配置 | 默认值 | 作用 |
| githubTokenEnv | DSH_PLUGIN_DOCTOR_GITHUB_TOKEN | GitHub token 的环境变量名 |
| githubToken | 无 | 直接提供 token,不建议写入文件 |
| similarityThreshold | 0.8 | 判定功能重复的相似度阈值 |
| cacheTtlMinutes | 30 | 社区搜索缓存时长 |
| enableRegistryFallback | true | GitHub 失败时启用 registry 和静态快照降级 |
| allowExecuteActions | false | 允许在明确交互确认后执行 add/remove;默认只输出命令 |

推荐只配置 token 环境变量:

export DSH_PLUGIN_DOCTOR_GITHUB_TOKEN='你的 GitHub token'

从源码开发

git clone https://github.com/white-sand-grand/dsh-plugin-doctor.git
cd dsh-plugin-doctor
pnpm install
pnpm test
pnpm run build
node verify-boot.mjs

当前验证基线:84 个测试通过,TypeScript 构建通过,七个工具注册和冒烟调用通过。算法和数据流见 ARCHITECTURE.md,贡献流程见 CONTRIBUTING.md。Windows 和 WSL 不要混用同一个 node_modules。

许可证

MIT。
预览分享卡片长什么样 ↓white-sand-grand/dsh-plugin-doctor
分享 · DeepSeek Harness Hub
white-sand-grand/dsh-plugin-doctor

排查插件冲突并给出安装与去重建议

这是你的仓库?认领条目

回到顶部