DeepSeek Harness plugin

dsh-plugin-manager-mgkmn

DSH web GUI 已安装插件管理器:列出已下载插件,随时一键启用/禁用,持久化到 profile 的 cordis.patch.yml 并立即生效。

Jump to install

Source facts

Repository
Mg-K-Mn/dsh-plugin-manager
Latest update
Aug 15, 2026
Category
Plugin Markets & Managers
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Mg-K-Mn/dsh-plugin-manager
Plugin: dsh-plugin-manager-mgkmn
Author: Mg-K-Mn

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-plugin-manager · 已安装插件管理器

在 dsh web GUI 内部列出当前 profile 已下载(已安装)的插件,并随时用按钮启用 / 禁用,不需要每次去手改 YAML 或重启服务。

入口:设置(Settings)→ 插件(Plugins)→ 已安装插件(Installed Plugins)

功能

  • 列出 profile package.json 中所有已下载插件(依赖),显示包名、版本、来源 spec、描述。
  • 每张卡片显示该包在 Cordis Loader 树里的运行时条目(id / 模块 / fiber 状态)。
  • 一键启用 / 禁用:

- 禁用:把该包所有条目的 - id: … + disabled: true 写入 profile 的 cordis.patch.yml。 - 启用:从 profile 和 home 两级 cordis.patch.yml 中移除对应的纯禁用行。 - 未接线但已下载的包:点击启用会把包内 cordis.patch.yml 的插入行写入 profile 补丁,完成接线。

  • dsh 自带 watchUserPatches HMR 会在文件变化后重新组合 Loader 树,因此改动立即生效、无需重启;涉及浏览器 UI 的插件刷新页面即可看到。
  • 安全保护:

- 管理器自身不可被自己禁用(否则会失去重新启用的入口)。 - 只自动编辑“纯 id + disabled: true”行;带额外配置的禁用行会在 UI 提示手工编辑,不擅自删除。 - 写操作只接受同源 POST(Origin 与 Host 一致),与 dsh-webui-market-plugin 的策略一致。 - 补丁文件采用临时文件 + rename 的原子写入,连续点击由队列串行化。

安装

方式一:从 GitHub 安装(推荐,profile 持久化为 bundle 层)

dsh plugin --profile web add github:Mg-K-Mn/dsh-plugin-manager

安装完成后重启 web 服务生效:

dsh web

方式二:从本地目录安装

克隆或下载本仓库后,进入仓库根目录(含 package.json 的目录)执行:

dsh plugin --profile web add .

> 注意:dsh plugin add 的相对路径按你执行命令时所在的目录解析,所以要在仓库根目录里用 .;如果想在仓库父目录执行,则写 dsh plugin --profile web add ./dsh-plugin-manager

安装完成后重启 web 服务生效。

方式三:免重启手动接线(调试 / 立即使用)

把插件目录放到 profile 的 node_modules 下,并在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:

- insert:
    - id: dsh-plugin-manager
      name: dsh-plugin-manager

dsh 的 patch HMR 会立即挂载宿主 API,刷新浏览器页面后即可在设置 → 插件中看到标签页。

> 切换安装方式时避免重复接线:如果已经用方式三把 dsh-plugin-manager 写进了 profile 的 cordis.patch.yml,改用方式一/二时请先删除该 - insert: 块再重启,否则 bundle 层与 profile 补丁会各自挂载一次本插件(重复注册同一 API 路由会启动失败)。

使用

打开 设置 → 插件 → 已安装插件

  • 搜索框按包名 / 描述 / 条目 id 过滤。
  • 每张卡片右侧按钮按当前状态显示“启用”或“禁用”,点击后状态即时生效。
  • 展开“详情”查看运行时 Loader 条目;加载失败的条目会标红。
  • 页面底部只读展示 profile 的组合层(bundles),区分“已下载依赖”与“内置组合包”。

工作原理

  • Host 半lib/host.js):注册 /api/dsh-plugin-manager 路由。list 直接读取 profile 的 package.json、包内 cordis.patch.yml,并投影运行时 ctx.loader.entries()toggle 读写 $DSH_HOME/profiles/<profile>/cordis.patch.yml(必要时 home 层),随后轮询 Loader 树直到 dsh 的 watchUserPatches HMR 应用变化。
  • Client 半lib/client.js):通过 exports["./client"] + dsh.client.platform === 'web' 被 web 前端加载,注册到 settings.plugins.tab 槽位(order 6,排在官方插件列表 / 插件市场之后)。

目录结构

dsh-plugin-manager/
├── package.json          # dsh.bundle.patch + dsh.client 声明
├── cordis.patch.yml      # bundle 层:插入 dsh-plugin-manager 一行
├── lib/
│   ├── host.js           # Node 半:路由 + 补丁读写 + Loader 投影
│   └── client.js         # 浏览器半:设置 → 插件 → 已安装插件 面板
├── README.md
└── LICENSE

兼容性与限制

  • 依赖 dsh 0.1.0-rc.x 提供的 webServerloaderslotswatchUserPatches 行为。
  • 该管理器只管理条目级的启用 / 禁用;安装 / 卸载请继续使用插件市场(dsh-webui-market-plugin)或 dsh plugin --profile web add/remove
  • 如果 home 级 cordis.patch.yml 里有更晚应用的复杂覆盖,本插件不会自动猜测;界面会如实显示并提示手工处理。
  • 对运行时已被其他 patch 层覆盖出额外 config 的条目,禁用只添加 disabled: true,不影响原配置。