DeepSeek Harness Hub
← 返回列表

2768651338/dsh-plugin-manager

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

DeepSeek Harness 的图形化插件管理插件:在 设置 → 插件…

暂不能直接安装(需源码编译或环境不满足):仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/8/17 · 已提供中文文档

DeepSeek Harness 的图形化插件管理插件:在 设置 → 插件 里新增「插件管家」标签页,用中文名和说明展示每个插件是做什么的,并提供一键启停开关与内置备注编辑——启停写入全局层补丁并实时热生效,备注保存到本地覆盖文件长期生效。

综合分
36.4
GitHub 分
36.4
用户评分
★ Stars
7
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 2768651338/dsh-plugin-manager
仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

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

npm 包@2768651338/dsh-plugin-manager(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 02:18:17

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-typert-protocol@deepseek-ai/dsh-client-ui-primitives
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-plugin-manager

每个插件终于能为自己发声 —— 中文名称、通俗易懂的描述、一键启用/禁用,以及在界面内编辑备注,专为 DeepSeek Harness 打造。

License: MIT
DeepSeek Harness
version
TypeScript
React
topic: dsh-plugin
Awesome DSH Plugin

设置 → 插件 → 插件管理器 · 收录 165 个插件,一键切换,备注就地编辑。

概述 · 兼容性 · 安装 / 卸载 · 快速开始 · 配置 · 权限与数据 · 功能特性 · 故障排查 · 开发

中文 · Español · 日本語 · Deutsch · Русский · Português · 한국어

🆕 2026-08-14 · v0.3.0 —— 界面内备注编辑功能已上线:点击任意卡片上的 编辑备注,即可就地重命名插件或重写其描述。无需再手动编辑 catalog.json。

🏷️ v0.4.0 —— 包已重命名为由所有者控制的命名空间 @2768651338/dsh-plugin-manager(此前的 @dsh-external/* 命名空间未获授权)。

🔧 v0.2.x —— 修复了 tsx 源码启动下的端点 404 问题(严格的 ./typert 注册)以及 cordis 注入访问(ctx.get 通道)。

概述

问题。 DeepSeek Harness 内置的“插件列表”只显示英文模块名,没有任何描述 —— 一旦安装了多个插件,没人能分清每一行是做什么的。启用/禁用此前需要手动编辑 cordis.patch.yml,很容易改坏。

适用人群。 每一位 DeepSeek Harness 用户,尤其是那些安装了许多插件、想了解每个插件的作用、安全地切换它们,并为目录未覆盖的插件添加注释的人。

| 痛点 | 之前 | 使用本插件后 |
|------|--------|------------------|
| 插件列表毫无意义 | 只有英文模块名,完全看不出每一行是做什么的 | 每个插件都有中文名 + 一句话描述 + 分类 |
| 切换需要手动操作 | 手动编辑 cordis.patch.yml(很容易改坏) | 一键开关,精准的行级编辑,约 1 秒内热重载 |
| 未知插件依旧神秘 | 只有回退文本 | 直接在界面里添加你自己的备注 |
| 什么都挡不住手滑 | 任意一行都能被禁用 | 系统行被锁定,!!js 控制的行有标注 |

兼容性

| 项目 | 值 |
|------|-------|
| DSH 版本 | 0.1.0-rc.5(官方安装器,内置源码树位于 resources/harness) |
| 验证于 | 2026-08-14,web 配置文件,Windows |
| 安装机制 | dsh plugin --profile web add(bundle patch + 双面行) |
| 依赖 | dsh-base + dsh-web-app 中自带的 typert-loader / api-gateway / client-modules 行 |

官方启动器通过 tsx 从源码启动;本插件严格的 ./typert 注册机制专门设计为在纯 node 和 tsx 源码启动两种方式下都能工作(由 tests/claims.e2e.mjs 覆盖)。如果你运行的是不同的 DSH 版本,请先重新运行测试套件再报告问题。

安装 / 卸载

安装(推荐,与 dsh-navbar 相同的 bundle 机制)
dsh plugin --profile web add github:2768651338/dsh-plugin-manager#main

备选:从 zip 安装(从 Release 页面下载),解压到不含空格的路径,然后:
dsh plugin --profile web add file://dsh-plugin-manager

备选:本地构建(克隆本仓库)
pnpm build   # tsc + tsdown → lib/index.js(宿主端)和 lib/client.js(浏览器端)
dsh plugin --profile web add file:./dsh-plugin-manager

安装完成后,重启 DeepSeek Harness 并按一次 Ctrl+F5。打开 设置 → 插件 → 插件管理器。lib/ 构建产物已提交,因此从 GitHub 安装无需本地构建。

| 操作 | 命令 |
|--------|---------|
| 升级 | dsh plugin --profile web update(或重新运行 add 命令),然后重启 DSH |
| 禁用(临时) | 在插件管理器中点击该插件自身卡片上的 停用/Disable —— 该行仍保持安装状态 |
| 移除 | dsh plugin --profile web remove @2768651338/dsh-plugin-manager,然后从 cordis.patch.yml 中移除其对应的行(如果有) |

快速开始

最小可复现操作流程(2 分钟):

1. 安装
dsh plugin --profile web add github:2768651338/dsh-plugin-manager#main
2. 重启 DeepSeek Harness,在网页中按 Ctrl+F5

3. 打开 设置 → 插件 → 插件管理器 —— 你会看到带有中文名和描述的完整目录。
4. 切换一个插件:搜索 trajectory,点击 轨迹视图 卡片上的 停用 (Disable) → 该行会在约 1 秒内变为已停用(宿主端生效;浏览器端插件在刷新页面后完全卸载)。
5. 为某个插件添加备注:在联网搜索卡片上点击编辑备注 (Edit notes),重命名并添加备注,点击保存 (Save) → 卡片立即更新;恢复默认 (Restore default) 可将其还原。

配置

| 项目 | 详情 |
|------|---------|
| 插件级选项 | 无——该插件无需配置,安装即用 |
| 开关文件 | ~/.dsh/cordis.patch.yml(全局层,由 DSH 热重载) |
| 备注覆盖文件 | ~/.dsh/plugin-manager/catalog.json(首次保存时自动创建) |
| 环境变量 | 自身无环境变量;上述文件遵循 DSH 的 DSH_HOME 解析规则 |
| 默认值 | 未列出的插件回退到内置目录 → 英文短名称 → 回退文本 |
| 敏感项 | 无——不读取或存储任何密钥、令牌或凭据 |

权限与数据

| 范围 | 涉及内容 |
|-------|-----------------|
| 文件(读取) | cordis.patch.yml、plugin-manager/catalog.json、进程内加载器插件列表,以及 profile 的 package.json(备份) |
| 文件(写入) | ~/.dsh/cordis.patch.yml(开关行)、~/.dsh/plugin-manager/catalog.json(备注),以及 profile 的 package.json(恢复)——仅在 DSH 主目录内 |
| 网络 | 无。浏览器端仅与你本地的 DSH /api RPC 端点通信 |
| 凭据 | 从不读取 |
| 用户数据 | 从不读取(无法访问会话、消息或提示词) |

功能

| 功能 | 描述 |
|---------|-------------|
| 📚 中文目录 | 130+ 内置条目(名称 / 描述 / 分类),支持回退 + 按插件自定义 |
| 🔘 一键开关 | 写入 ~/.dsh/cordis.patch.yml(全局层);DSH 的 HMR 监听器会在约 1 秒内重新应用;启用时写入显式的 disabled: false,以覆盖更低层级 |
| ✏️ 界面内备注 | 每张卡片上的“编辑备注”可编辑中文名称/描述(~/.dsh/plugin-manager/catalog.json),并支持一键恢复默认 |
| 🛡️ 安全防护 | Bootstrap/transport/settings-shell 行锁定为“系统”;!!js 表达式行标记为“表达式控制” |
| 🔍 搜索与筛选 | 按名称/描述/模块搜索,按分类筛选,显示已启用数量摘要 |
| 💾 备份与恢复 | 将备注 + 插件列表(profile 的 dependencies/bundles)+ 启用/禁用补丁导出为一个 JSON 文件;导入时合并(绝不删除你现有的条目)并打印确切的重新安装命令 |

工作原理

| 部分 | 文件 | 作用 |
|------|------|------|
| 宿主 | lib/index.js | 注册 pluginManager cordis 服务(Typert 远程):list / setEnabled / setOverride / removeOverride / exportBackup / importBackup。开关采用精准的补丁文件编辑——保留注释和 !!js 表达式,写入前重新读取文件以合并并发编辑。 |
| 宿主 | lib/typert.host.js | 导出 ./typert;typert-loader 将其注册为严格调用定义。关键修复:在 tsx 源码启动下,网关和外部插件可能持有两份 typert-protocol 副本——装饰器标记跨副本不可见(症状:每次调用都 404)。严格注册通过共享注册表进行,绕过了模块实例标识问题。 |
| 浏览器 | lib/client.js | 通过免注入的 ctx.get() 通道挂载 pluginManager 远程命名空间(避免自挂载死锁),并在 settings.plugins.tab 插槽中注册插件管理器标签页。 |

运行时依赖:@deepseek-ai/cordis 和 @deepseek-ai/dsh-typert-protocol 通过 DSH 的 profiles/node_modules 回退链接解析——无需额外 pnpm 下载。

自定义备注

点击任意卡片上的 编辑备注。两个字段都留空保存会移除该插件的自定义设置。高级用户仍可直接编辑 ~/.dsh/plugin-manager/catalog.json:

{
"@dsh-external/dsh-navbar": { "name": "对话导航条", "desc": "对话区右缘的消息节点导航" }
}

优先级:覆盖文件 > 内置目录 > 英文短名称。

故障排查

| 症状 | 修复方法 |
|---------|-----|
| 标签页未出现 | 重启 DeepSeek Harness,然后按 Ctrl+F5 刷新页面(客户端包在启动时加载) |
| 显示“暂时无法读取插件”并带有错误块 | 阅读消息下方的灰色错误详情:pluginManager.list failed: ... / transport failure ...,并与下方内容对照 |
| 错误提到 404 或 invocation-unavailable | 你安装的版本早于 0.2.0(缺少 ./typert 严格注册)——请更新并重启 |
| cannot get property "remote.pluginManager" without inject | 版本早于 0.2.2——请更新并刷新 |
| 某个开关似乎不起作用 | 检查 ~/.dsh/cordis.patch.yml 是否保持行块结构(第 0 列有一个 -  短横线);标记为“表达式控制”的行由 !!js 控制——请直接编辑配置文件 |
| pnpm 警告 peer range @deepseek-ai/@ does not match resolved 0.1.0-rc.6 | 无害——DSH 将这些作为预发布版 0.1.0-rc.6 发布,而 semver  不匹配预发布版。v0.4.1+ 声明了 >=0.1.0-rc.0;对于其他插件,请将 peerDependencyRules.allowAny: ['@deepseek-ai/'] 添加到 pnpm-workspace.yaml |
| 日志在哪里? | 宿主错误查看 DSH 宿主启动日志(启动器控制台);客户端错误查看浏览器 DevTools(F12)控制台 |
| 回滚 | 从 cordis.patch.yml 中移除该插件的行,对备注使用 恢复默认,或使用上面的 remove 命令卸载 |

项目结构

src/
index.ts              host half: PluginManagerGateway (list / setEnabled / setOverride / removeOverride)
patch-file.ts         surgical patch-file editor (pure functions)
catalog.ts            built-in catalog + system-protection set
types.ts              shared plain data types
typert-host.ts        strict endpoint registration artifact (./typert)
client/
index.ts            浏览器端:挂载远程命名空间 + 注册标签页
remote.ts           客户端远程产物(严格 zod 编解码器)
PluginManagerTab.tsx 标签页 UI(列表 / 开关 / 备注编辑)
locales.ts          zh/en 字典
cordis.patch.yml        打包补丁(插入 plugin-manager 行)
lib/                    构建产物(已提交;GitHub 安装会跳过构建)
tests/                  冒烟 / 端到端测试

开发
bash
pnpm build                      # tsc + tsdown
node tests/patch-file.smoke.mjs # 补丁编辑器的 9 个冒烟测试
node tests/host-gateway.e2e.mjs # 宿主网关端到端(含 override 文件内容)
node tests/claims.e2e.mjs       # plain-node 与 tsx 源码启动下的端点声明

测试脚本中的绝对路径指向本地 DSH 安装,仅用于开发;它们不影响运行时行为。

贡献。 Fork → 修改 → pnpm build → 运行上述测试 → 针对 main 提交 PR。小型修复(文档、目录条目、翻译)无需事先讨论即可提交。报告问题时请附上 DSH 版本以及标签页中显示的确切错误详情。

许可证与安全

许可证:MIT — 见 LICENSE。基于 DeepSeek Harness 的公开插件机制构建,与 DeepSeek 无关联。

安全:本插件不读取任何凭据,也不通过网络发送任何内容。如需私下报告安全问题,请使用 GitHub Security 标签页上的 Report a vulnerability —— 请勿公开提交包含漏洞利用细节的 issue。

Star 历史

MIT License © 2768651338

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(2768651338)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群