dsh-plugin-skill-manager

by xhvdhczd

0 技能包github 检测到 manifest package.json#dsh收录于 08-16

DSH Web UI插件:技能标签页,每个技能的启用/禁用切换(DeepSeek Harness)

DSH Web UI plugin: Skills tab with per-skill enable/disable toggles (DeepSeek Harness)

安装

dsh plugin --profile web add github:xhvdhczd/dsh-plugin-skill-manager

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 简体中文

一个 DeepSeek Harness (DSH) 插件,在 Web UI 的对话视图环(对话 与 轨迹 旁边)新增一个 技能 标签页。它列出所有可用技能,带实时搜索框、单个技能的 启用 / 停用 开关,以及一键 全部启用 / 全部停用 按钮。

停用某个技能时,会在该技能的 SKILL.md frontmatter 中写入 disable-model-invocation: true,使模型侧技能目录不再包含它,但用户侧界面仍保留——技能始终在列表中可见,可随时重新启用。

功能特性

  • 🗂️ 技能标签页:注册到 conversation.view 插槽,与"对话"和"轨迹"并列
  • 🔍 搜索框:按技能名称或描述实时过滤
  • 🔘 批量开关:一键启用或停用当前可见的所有技能

工作原理

插件在一个 npm 包内包含两个部分:

部分 入口 作用
宿主侧 lib/index.js 在 DSH Web 服务器上注册 POST /api/skill-manager/toggle 路由,在磁盘上定位技能的 SKILL.md(先项目根、后用户根),并改写其 frontmatter
客户端 lib/client.js 注册"技能"对话视图标签页,通过 skill.list RPC 渲染列表,切换时调用宿主路由

停用某个技能(enabled: false)会在技能 frontmatter 中加入:

disable-model-invocation: true

文件系统技能提供方会监视技能目录,写入后目录自动失效刷新——目录本身无需重启(但安装或更新插件后需要重启 DSH)。

安装

需要 DSH profile(示例使用 web profile):

# 从插件目录安装到 profile
dsh plugin --profile web add file:./dsh-plugin-skill-manager

# 或直接用 pnpm
pnpm --dir "$HOME/.dsh/profiles/web" add file:./dsh-plugin-skill-manager

然后将该包加入 profile 的 bundle 层。~/.dsh/profiles/web/package.json 中的 dsh.profile.bundles 应包含:

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-plugin-marketplace",
        "dsh-plugin-skill-manager"
      ]
    }
  }
}

最后重启 DSH 并刷新 Web UI,对话 和 轨迹 旁边就会出现 技能 标签页。

注意:file: 依赖会被复制到 pnpm store。修改插件源码后,需重新执行 pnpm --dir "$HOME/.dsh/profiles/web" remove dsh-plugin-skill-manager && pnpm --dir "$HOME/.dsh/profiles/web" add --force file:./dsh-plugin-skill-manager,然后重启 DSH。

卸载

pnpm --dir "$HOME/.dsh/profiles/web" remove dsh-plugin-skill-manager

同时从 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 中移除 dsh-plugin-skill-manager,然后重启 DSH。被插件停用的技能会保留其 frontmatter;可用插件重新启用,或手动删除 disable-model-invocation 行。

开发

# 语法检查两个部分
node --check lib/index.js
node --check lib/client.js

# 验证组合后的 profile 树包含插件
dsh --profile web --dump-config | grep -A2 skill-manager

包结构

dsh-plugin-skill-manager/
├── package.json        # dsh.bundle.patch + dsh.client 声明
├── cordis.patch.yml    # 挂载宿主插件的 loader 条目
└── lib/
    ├── index.js        # 宿主侧:/api/skill-manager/toggle 路由
    └── client.js       # 客户端侧:技能标签页(__ModuleLoader__ bundle)

许可证

MIT

原始 README: https://github.com/xhvdhczd/dsh-plugin-skill-manager/blob/master/README.zh-CN.md ↗