装在 DSH 里的插件目录:按来源(官方/自装)分组展示已安装插件,可搜索,支持启用/停用、卸载和一键更新。已发布 npm 包 dsh-plugin-diraud。
Installed-plugin catalog for DSH: group plugins by origin (official vs self-installed) in a searchable panel with enable/disable, uninstall, and one-click update. Published on npm as dsh-plugin-diraud.
安装
dsh plugin --profile web add github:tttwh/dsh-plugin-diraudGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 中文
基于 DeepSeek Harness(DSH)的插件管理增强:按「来源」分组插件列表,一眼区分官方自带插件与自装插件。
特性
/plugin-audit命令:按「官方 / 自装」分组列出当前已加载插件,支持user/official/ 关键词过滤;- 自装插件开关(两处入口):
- 左侧菜单栏底部「插件目录」入口(图标按钮,点击弹出面板):按来源分组展示,每张自装插件卡片带启用 / 停用按钮(点一下就切换);
- 聊天命令:
/plugin-audit disable|enable <关键词>; - 均持久化到 profile 的
cordis.patch.yml(重启保留、可逆),并调用ctx.loader.update即时生效(不依赖 HMR);官方/内置插件锁定不可操作;
- 「插件目录」面板:卡片化分组展示,带来源徽标、搜索框、已安装版本号与功能描述;若插件 package.json 提供 GitHub 仓库地址,卡片会显示 GitHub 按钮,可直接打开详细功能介绍(v0.8);
- 自装插件更新(v0.6):「插件目录」面板顶部带「更新」区块——打开面板自动检查 npm registry,统计可更新总数(可一键全部更新),每个 registry 插件卡片带独立「更新」按钮;Desktop 托管的
link:插件显示「随桌面版更新」,本地链接显示「本地插件」,避免把 pnpm 退出码 0 误报成实际更新成功; - 判定零依赖、可单测:包名作用域 + 用户显式安装集双重规则(
@deepseek-ai/判官方、其余判自装); - 完全可逆:只读展示,不改任何官方 bundle,一条命令卸载。
界面截图
左侧菜单栏底部「插件目录」入口(v0.5 起),点击弹出按来源分组的插件面板,每张卡片带启用/停用开关:

快速开始
前置:pnpm、dsh CLI。
# 安装(推荐:从 npm)
dsh plugin --profile web add dsh-plugin-diraud
# 或从 GitHub 主分支
dsh plugin --profile web add https://github.com/tttwh/dsh-plugin-diraud/archive/refs/heads/main.tar.gz
装完重启 dsh web,然后:
- 聊天框输入
/plugin-audit,或 - 点击左侧菜单栏底部的「插件目录」入口。
命令一览
| 命令 | 用途 |
|---|---|
/plugin-audit |
概览:自装逐行 + 官方计数 |
/plugin-audit user |
只看自装 |
/plugin-audit official |
只看官方(逐行) |
/plugin-audit <关键词> |
按包名 / entry 过滤 |
/plugin-audit disable <关键词> |
停用匹配到的自装插件(持久化) |
/plugin-audit enable <关键词> |
启用匹配到的自装插件(持久化) |
dsh plugin --profile web remove dsh-plugin-diraud |
卸载 |
开关如何持久化:
disable/enable会把- id: <配置行原始 id>+disabled: true覆盖行写入 profile 的cordis.patch.yml(用户配置层)。该文件被 dsh 的watchUserPatches监听(web profile 启动时会自动拉起监听),写入后即时生效;重启后保留;删除对应行即可恢复默认。为什么是「原始 id」而不是 Loader 条目 id(v0.4 修复):Loader 树内条目的完整 id 带路径前缀(如
include:ssh),但 patch 层按配置行自身的id字段匹配,只认原始 id(ssh)。旧版本把带前缀的完整 id 写进 patch 文件,启动时被当作「找不到条目」跳过(每次 boot 打 warning),导致停用重启即失效——v0.4 起统一写原始 id,并自动清理历史遗留的include:<id>死行。
配置
来源判定默认按包名作用域;极端情况(如装了 @deepseek-ai/ 前缀的第三方包)用 extraUserPackages 覆盖。在 profile 的 cordis.patch.yml 里覆盖本插件行:
- id: plugin-audit
config:
extraUserPackages:
- '@deepseek-ai/dsh-my-fork' # 强制判为「自装」
目录结构
dsh-plugin-diraud/
src/classify.ts 来源判定纯函数(单一事实源,host / client 共用)
src/patch.ts cordis.patch.yml 读写:disable/enable 持久化(行级 YAML,零依赖)
src/toggle.ts 开关共享核心(持久化 + ctx.loader.update 即时生效)
src/updates.ts 更新核心:semver 比较、registry 探测、pnpm 执行(可单测)
src/contract.ts typert wire 契约(pluginAudit/toggle,host/client 共用)
src/typert.ts host 侧 manifest 注册
src/runtime.ts PluginAuditRuntime(@Remote toggle,executeToggle 可单测)
src/index.ts host:/plugin-audit 命令 + 注册 remote
src/client/ 侧边栏「插件目录」入口(React)+ 开关按钮 + client remote
build.mjs esbuild 构建(host ESM + client bundle)
cordis.patch.yml profile bundle patch(插入本插件)
demo/ 演示与验证脚本(真实 profile 分组输出)
文档
- DESIGN.md —— 设计背景与查证依据(为何新增 tab 而非改官方 tab、来源判定规则与边界)
相关项目
- deepseek-harness —— DeepSeek Harness 官方仓库(DSH 本体)
- omdsh-dev/community —— 社区插件收录与协作入口
许可
MIT · Copyright (c) 2025 tttwh
原始 README: https://github.com/tttwh/dsh-plugin-diraud/blob/main/README.zh.md ↗
同类插件
查看全部 →
awesome-dsh-plugins
前部索引仓库(Radar):自动扫描发现的所有 dsh 插件候选;经测试合格的将移入后序精选目录仓库

DSH-Plugins-Marketplace
DSH插件市场 / DSH Plugin Marketplace: 在 DeepSeek Harness Web GUI 中一键浏览、安装与更新 GitHub topic:dsh-plugin 的全部插件 | browse, install & update all GitHub dsh-plugin plugins in the DSH Web GUI

zat-dsh-engine
DeepSeek Harness视觉插件市场——浏览、搜索和安装社区插件

dsh-market
装在 DSH 里的插件市场:设置页内逛/搜全部社区插件,按分类筛选,确认后一键安装,已装插件一目了然。

dsh-plugin-marketplace
DeepSeek Harness认证插件市场及自主注册库

deepseek-plugin-store
DeepSeek Harness 独立社区插件商店:发现、安装并提交经过验证的插件、工具与扩展。 | Independent community plugin directory.