DeepSeek Harness 插件

dsh-plugin-manager-newbieyi

DSH plugin manager: list installed plugins with descriptions and uninstall the ones you installed yourself.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
newbieYi/dsh-plugin-manager
最近更新
2026年8月19日
分类
插件市场与管理
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/newbieYi/dsh-plugin-manager
插件名:dsh-plugin-manager-newbieyi
作者:newbieYi

检查来源文件

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

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

dsh-plugin-manager

DSH 插件管理器:给「插件」设置里补上一个「我的插件」页面,让每个已安装插件都能看到它是干什么的,并且把你自己装的插件(市场安装 / 本地开发)一键卸载掉。

面向谁,解决什么

  • 面向:装了若干插件、想看清每个插件用途、或想干净卸掉某个插件的 DSH 用户
  • 解决:内置「插件列表」只能看到插件名,既没有功能说明,也没有卸载入口。本插件补上这两块:

- 功能说明:从每个已安装插件的 package.json 读取 description,直接显示「这个插件是干什么的 / 解决什么问题」 - 一键卸载:自己安装的插件(link: 本地开发、npm / github 市场安装)可以一键卸载,卸载后重启 dsh 生效

它能做什么

  • 只列你自己的:只展示 profile dependencies 里登记过的插件(市场安装 / 本地开发),随 DSH 提供的内置插件不在这里出现。
  • 来源标签:每个插件标出「插件市场 / 本地插件」,一眼分清它从哪来。
  • 功能说明:显示 package.jsondescription、版本号,有 homepage / repository 时给「查看主页」链接。
  • 安全卸载:只允许卸载 dependencies 里登记过的插件;内置 bundle 会被明确拒绝。卸载 = pnpm remove + 从 bundles 移除,两步都幂等。
  • 重启生效:卸载后提供「重启生效」按钮,重启前先用 --dump-config 校验新组合能通过,避免把 harness 带崩。

效果预览

![我的插件页面](docs/images/manager.png)

安装

第 1 步:安装并登记插件

PLUGIN=dsh-plugin-manager
PROFILE="$HOME/.dsh/profiles/web"

dsh plugin --profile web add "link:/绝对路径/到/dsh-plugin-manager" \
&& node -e '
const fs = require("fs");
const file = process.argv[1] + "/package.json";
const name = process.argv[2];
const pkg = JSON.parse(fs.readFileSync(file, "utf8"));
const profile = ((pkg.dsh ??= {}).profile ??= {});
const list = (profile.bundles ??= []);
if (!list.includes(name)) {
  list.push(name);
  fs.writeFileSync(file, JSON.stringify(pkg, null, 2) + "\n");
}
console.log("已登记 bundles:", list.join(", "));
' "$PROFILE" "$PLUGIN" \
|| echo "安装未完成,profile 未被改动。"

第 2 步:重启 DSH

插件在启动时装载,改完配置必须重启才生效:

# 切到正在运行 dsh web 的终端按 Ctrl+C,然后:
dsh web

第 3 步:验证

浏览器打开 DSH Web,进入 设置 → 插件 → 我的插件,应能看到每个插件的功能说明;市场安装 / 本地开发的插件右侧有「卸载」按钮。

配置

在 profile 的 cordis.patch.yml 里可选配置:

- insert:
    - id: plugin-manager
      name: dsh-plugin-manager
      config:
        # 卸载作用的 profile 目录。留空则自动寻找 bundles 中包含本包的 profile,
        # 找不到再回退到 $DSH_HOME/profiles/web。
        profileDir: ''

目录结构

  • lib/index.js —— 宿主侧:读取已安装插件清单(含描述 / 版本 / 来源)、卸载、重启。
  • lib/client.js —— 浏览器侧:我的插件 设置页,ModuleLoader 工厂格式,无需打包器。
  • cordis.patch.yml —— 本包的 bundle patch 行。

安全说明

  • 所有 /plugin-manager/* 路由都挂在每进程随机的 Bearer Token 之后,Token 注入 index.html,本页面才能调用;卸载动作只发生在当前 profile 目录内。
  • 内置插件(不在 dependencies 里的 bundle)会被拒绝卸载,避免拆掉 DSH 底座。