DeepSeek Harness 插件

dsh-plugin-manager-sorry123

三方插件管理:在 Web 设置里管理第三方插件的启用/禁用、启用方案保存与切换、以及添加插件。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
sorry123maker/dsh-plugin-manager
最近更新
2026年8月18日
分类
插件市场与管理
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/sorry123maker/dsh-plugin-manager
插件名:dsh-plugin-manager-sorry123
作者:sorry123maker

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

@zhuyh-sai7n/dsh-plugin-manager

![npm version](https://www.npmjs.com/package/@zhuyh-sai7n/dsh-plugin-manager) ![license](https://www.npmjs.com/package/@zhuyh-sai7n/dsh-plugin-manager)

三方插件管理中心 —— 在 DeepSeek Harness 的 Web UI 设置里新增一个「三方插件管理」页面,集中管理当前 profile 的第三方插件。

仓库 / Repository

https://github.com/sorry123maker/dsh-plugin-manager

功能 / Features

  • 插件列表:读取 profile 的 dsh.profile.bundles,过滤掉 @deepseek-ai/* 内置 bundle 与自身,展示每个第三方插件的启用状态与加载状态。
  • 启用开关 + 应用:每个插件一个开关;点击「应用」把改动写回 profile 的 cordis.patch.yml 补丁层({ id, disabled: true } 条目)。该文件被 dsh 的 watchUserPatches + HMR 热监听,因此「应用」后即时热重载生效、无需重启;插件仍保留在列表里,状态变为「关闭」。
  • 方案(启用状态快照):把当前启用状态保存为命名方案;支持查看当前方案、切换方案、删除方案。切换方案会立即应用到插件启用状态。
  • 添加插件:输入包名或任意 pnpm 可接受的 spec(如 dsh-salary-catgithub:owner/repo),等价执行 dsh plugin --profile <profile> add <spec>;添加后默认启用,需重启 dsh web 才进入 loader 树

安装 / Install

在目标 profile(通常是 web)中安装:

dsh plugin --profile web add @zhuyh-sai7n/dsh-plugin-manager

然后重启 dsh web(本插件自身也要进 loader 树):

dsh web

重启后打开 Web UI → 设置 → 「三方插件管理」。

> 也支持其它 profile:把命令里的 web 换成你的 profile 名即可。

使用 / Usage

1. 打开设置里的「三方插件管理」,看到当前 profile 的三方插件列表。 2. 拨动某个插件的开关,点击「应用」,改动即时热重载生效。 3. 在「方案」区输入名称并「保存当前为方案」,之后可在方案列表里一键「切换」或「删除」。 4. 在「添加插件」输入包名,点击「添加」;完成后重启 dsh web 生效。

工作原理 / How it works

  • 列表来源:profile 的 package.jsondsh.profile.bundles。这是 dsh 实际的 bundle 补丁层清单——只有声明了 dsh.bundle.patch 的包才会在 dsh plugin add 时被 reconcile 进这里,因此它精确对应「真正的三方插件」。
  • 禁用机制:写 { id: <row-id>, disabled: true } 到 profile 的 cordis.patch.yml。dsh 启动时用 watchUserPatches + HMR 监听这个文件,改动会即时重放补丁层——Host 条目原地重启、Client 条目从启动图移除,所以无需重启。
  • 添加机制:复用当前 harness 自身的 Node 启动参数(process.execArgv + 入口)拉起 dsh CLI,执行 dsh plugin --profile <profile> add <spec>,由 dsh 内部转发给 pnpm 并 reconcile bundles。
  • 无第三方依赖:本包只 import node: 内置模块,不依赖任何 npm 包,避免 link: 安装时依赖解析失败的问题。

状态落盘位置 / Persisted state

数据位置
禁用态~/.dsh/profiles/<profile>/cordis.patch.yml
方案~/.dsh/profiles/<profile>/.dsh-plugin-manager.json

文件布局 / Layout

  • src/index.js —— Host 半:读取 profile 配置、写回禁用补丁、执行添加、持久化方案,通过 /plugin-manager/* 路由暴露 JSON API。
  • src/client.js —— Client 半:往 settings.section 注册「三方插件管理」页面。
  • cordis.patch.yml —— 本 bundle 的宿主组合补丁(插入 plugin-manager 行)。

已知限制 / Limitations

  • 新增插件需重启 dsh web 才会进入 loader 树(本插件自身同理);禁用/启用则是热重载、无需重启。
  • 禁用补丁的读写用文本级处理,只识别块式 - id: <row-id> 紧跟 disabled: true 的条目;用户的其它补丁内容(含 !!js 表达式)保持原样不动,但不会自动清理用户手写的非标准格式禁用条目。
  • 「三方」的判定是启发式的:过滤 @deepseek-ai/* 前缀,其余视为第三方。未声明 dsh.bundle 的普通依赖不是插件,不会出现在列表里。

License

MIT