dsh-skill-manager:为 DSH 桌面版补上 Skill 可视化管理

前言

DeepSeek Harness(DSH)桌面版已经能扫描 skill 根目录、解析 frontmatter,并通过 / 唤起 skill。官方由 @deepseek-ai/dsh-skill-filesystem 负责装载与热加载,由 @deepseek-ai/dsh-client-ui-skill 负责交互入口,但缺少一层「把磁盘上的 skill 看清楚、改得动」的界面。frontmatter 写错、或某个 skill 没被加载时,往往只能自己翻目录和日志。

下面介绍社区插件 dsh-skill-manager(维护者 VCPr0j3k7,GitHub:VCPr0j3k7/dsh-skill-manager)。它以独立 bundle 装入 DSH profile,不参与官方 skill 的扫描与热加载,只在文件层面做增删查,并展示宿主实际扫描的根目录与每个 skill 的来源,与官方插件同时启用不会冲突。

这是什么

dsh-skill-manager 是为 DeepSeek Harness 桌面 shell 提供的 Skill 管理 UI:列出宿主扫描到的 skill、标注来源与有效性、新建 skill、从文件夹导入、在系统文件管理器中打开目录。

  • 分类:客户端插件(dsh.client.platform: web)
  • 当前版本(package.json):0.1.0
  • 许可证:MIT
  • 依赖:yaml(安装时自动安装)

核心功能

侧边栏「Skill 管理」入口打开面板,主要操作如下。

操作 行为
新建 Skill 表单生成 <DSH_HOME>/skills/<名称>/SKILL.md;名称需 kebab-case,description 与正文必填;同名目录已存在则拒绝
从文件夹导入 系统目录选择器;含 SKILL.md 则整目录按原名拷入用户 skill 根,否则平铺 .md 逐个拷入;目标已存在则跳过
打开 skill 目录 打开用户 skill 根,或对单条 skill「打开位置」
重新装回内置 skill 官方桌面版不随插件发行内置 skill,此项恒定「不适用」

面板还会展示:按 rank 分组的 skill 列表(名称、描述、何时使用、来源根、正文大小与预览)、frontmatter 解析失败的「被忽略的文件」、以及各扫描根目录说明表(rank、路径、是否存在)。

新建或导入后无需重启宿主:官方 watcher 会在下一个模型步骤刷新目录;安装或卸载插件本身需要重启桌面版。

安装与启用

环境要求:Node.js ^22.19.0 || >=24,DeepSeek Harness 官方桌面版。

安装分两步:用 profile 目录下的 pnpm 安装依赖,再把包名登记进 dsh.profile.bundles。

# 1. 进入桌面版 profile 目录(Windows 默认:%USERPROFILE%\.dsh\profiles\desktop)
cd "<DSH_HOME>/profiles/desktop"

# 2. 用官方桌面版随包的 pnpm 安装
pnpm add "github:VCPr0j3k7/dsh-skill-manager"

若随包 pnpm 不在 PATH 中,可用随包 node 调用(路径以你的安装目录为准):

NODE="<安装目录>/resources/runtime/primary-runtime/dependencies/node/bin/node.exe"
PNPM="<安装目录>/resources/runtime/pnpm/bin/pnpm.cjs"

"$NODE" "$PNPM" add "github:VCPr0j3k7/dsh-skill-manager"

pnpm add 只会写入 dependencies。DSH 只装载 dsh.profile.bundles 中列出的 bundle,必须手动追加包名:

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

漏掉这一步时:安装无报错、依赖目录也在,但插件不加载——界面上没有入口。确认登记:

cd "<DSH_HOME>/profiles/desktop" && cat package.json

完成后重启桌面版。官方桌面版通常没有可直接调用的 dsh CLI;若使用带 reconcilePlugins() 的 dsh plugin --profile desktop add ... 路径,bundle 登记会自动补上,但 README 给出的手动路径是上述 pnpm add + 改 package.json。

卸载:

cd "<DSH_HOME>/profiles/desktop"
"$NODE" "$PNPM" remove dsh-skill-manager

并从 dsh.profile.bundles 删除 "dsh-skill-manager",再重启。卸载不会删除 <DSH_HOME>/skills 下的 skill 文件。

典型用法

  1. 安装并登记 bundle,重启后在侧边栏打开「Skill 管理」。
  2. 查看扫描根说明表,确认 <DSH_HOME>/skills 等项目路径是否存在。
  3. 用「新建 Skill」在 <DSH_HOME>/skills/<名称>/ 下生成符合 frontmatter 规范的 SKILL.md。
  4. 或「从文件夹导入」把已有 skill 目录或平铺 .md 拷入用户 skill 根。
  5. 若某文件出现在「被忽略的文件」中,按列表中的解析失败原因修正 YAML frontmatter(必填 name、description;name 须匹配 ^[a-z0-9]+(?:-[a-z0-9]+)*$)。

官方按 rank 扫描多个根(项目 .dsh/skills、.agents/skills、<DSH_HOME>/skills、$DSH_AGENTS_HOME/skills 等),同名 skill 以 rank 较小者为准;每个根只扫描一层,不支持嵌套 SKILL.md。

适用场景与注意

适合谁:经常在 DSH 桌面版里维护 agent skill、需要对照「宿主实际扫到了什么」而不是只依赖 / 菜单的开发者。

权限与安全:插件以当前 DSH 宿主进程权限运行,会向 <DSH_HOME>/skills 写入文件,并通过 HTTP API 提供列表、创建、导入等能力。安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。

已知限制(摘自 README):

  • 「重新装回内置 skill」在官方桌面版不适用。
  • POST /restart-host 恒定拒绝;改 profile 或 bundle 后需手动退出并重新打开桌面版。
  • 「打开 skill 目录」要求路径已存在;全新安装且从未创建 skill 时,可先新建或导入一次。
  • 只扫描一层,与官方行为一致。

宿主 API 前缀为 /dsh-skill-manager/api;日志位于 <DSH_HOME>/plugin-data/logs/dsh-skill-manager.log。仓库内可运行 npm test(node test/check.mjs)做不依赖 DSH 运行时的自检。

结尾

dsh-skill-manager 补的是官方桌面版缺失的 skill 文件管理界面:一个负责装载,一个负责磁盘上的增删查与状态展示。DSH 生态强调「一切皆插件」;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

  • 目录页:https://www.skillhub.cn/plugins/VCPr0j3k7/dsh-skill-manager
  • 源码与完整说明:https://github.com/VCPr0j3k7/dsh-skill-manager
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜