前言¶
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 文件。
典型用法¶
- 安装并登记 bundle,重启后在侧边栏打开「Skill 管理」。
- 查看扫描根说明表,确认
<DSH_HOME>/skills等项目路径是否存在。 - 用「新建 Skill」在
<DSH_HOME>/skills/<名称>/下生成符合 frontmatter 规范的SKILL.md。 - 或「从文件夹导入」把已有 skill 目录或平铺
.md拷入用户 skill 根。 - 若某文件出现在「被忽略的文件」中,按列表中的解析失败原因修正 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