@ancircle0/dsh-skills-ext:在 DSH 里用预设目录批量链接技能

前言

DeepSeek Harness(DSH)从用户技能根目录加载技能,常见做法是手动把技能文件夹拷进 ~/.dsh/skills,或自己维护符号链接。技能一多、来源分散时,增删和同步都容易出错,也不方便在界面里一眼看清「哪些已生效、哪些只是本地副本」。下面介绍社区插件 @ancircle0/dsh-skills-ext:维护一组预设技能目录,把其中的技能链接进当前 DSH 用户技能目录,需要时再解除链接,且链接变更后无需重启会话即可反映到技能注册表与 / 选择器。

这是什么

@ancircle0/dsh-skills-ext 是 DSH Harness 插件,由维护者 ancircle0 发布在 GitHub(ancircle0/dsh-skills-ext),当前 npm 版本为 0.2.1(MIT 许可证)。它不做技能内容编辑,只做三件事:保存你指定的「预设路径」、扫描这些路径下符合 DSH 规则的技能目录、在用户技能根目录创建或删除指向技能的目录联接(Windows junction)或符号链接(其他平台)。解除链接只删除链接本身,不会改动预设目录里的源文件。

核心功能

预设路径与技能扫描

在管理页点「添加」,用系统目录选择器选一个文件夹,选完即写入插件私有配置;列表里可逐条删除。插件会扫描每个预设路径下一层的技能目录,规则与 DSH 内置文件系统技能提供者一致:<预设>/<名称>/SKILL.md。列表按预设分组,并读取各技能 SKILL.md frontmatter 中的 name、description。

链接与解除链接

每个技能右侧有一个按钮:未链接时为「链接」,会在 <dshHome>/skills/<技能名> 建立链接;已链接时显示「解除链接」。若用户技能根下已有同名真实目录,或已有指向别处的同名链接,插件不会覆盖,按钮会直接说明占用原因。

链接在 Windows 上使用目录联接(无需管理员权限),在其他平台使用符号链接。操作完成后插件会调用技能注册表的 invalidateCache()(revision 递增、清空收集缓存、广播 skills/change),模型在当前会话的下一条消息即可看到技能增减;并再广播配置刷新信号,使 / 技能选择器等客户端缓存重拉——下次打开 / 即为最新列表(进行中的那一次请求不会中途改变)。

界面入口

与内置「归档管理」类似,同一管理页有两个入口:

  1. 设置面板侧边栏中的「Skills 管理」(settings.section),导航行使用本插件图标;
  2. 侧边栏全局面板图标(sidebar.panellist + main),点开在中间列显示同一页面(仅内边距不同)。

两处共享同一份页面快照,任一处添加、删除或链接都会立刻同步到另一处。提示通过 shell.overlay 浮层吐司展示,不占布局。

页面顶部有「在侧边栏常驻图标」开关(优先使用宿主 Switch;宿主未暴露时退回等价控件),默认开启,状态记在浏览器 localStorage;关闭后侧栏图标与面板一并移除,若面板正打开会先回到会话。

路径与配置

宿主按平台解析 $DSH_HOME(未设置时为 os.homedir() 下的 .dsh):

用途 位置
技能根目录(链接目标) $DSH_HOME/skills,默认 ~/.dsh/skills
插件私有配置(预设列表) $DSH_HOME/skills-ext/presets.json

Windows 上对应 %USERPROFILE%\.dsh\skills 与 %USERPROFILE%\.dsh\skills-ext\presets.json;macOS / Linux 上为 ~/.dsh/skills 与 ~/.dsh/skills-ext/presets.json。

安装与启用

插件通过 DSH 界面从 npm 安装,安装后即启用。不要在命令行用 git clone 代替下列流程。

  1. 侧边栏打开「插件」页;
  2. 点「添加插件」→「安装第三方插件」;
  3. 在「包名或地址」中填写 @ancircle0/dsh-skills-ext;若需固定版本,可填 @ancircle0/dsh-skills-ext@0.2.1,然后点「安装」。

升级时在插件页卸载旧版,再按上述步骤安装新版本。装好后从「设置 → Skills 管理」,或侧边栏 Skills 图标进入。

典型用法

  1. 在本机或共享盘准备一个「技能库」根目录,其下每个子目录含 SKILL.md(例如 my-presets/foo/SKILL.md)。
  2. 打开 Skills 管理,添加该根目录为预设路径。
  3. 在分组列表中查看扫描到的技能名称与描述,对需要的项点「链接」;DSH 会在 ~/.dsh/skills/<技能名> 创建联接/符号链接。
  4. 在下一条对话消息中即可使用新链接的技能;用 / 打开技能选择器时应能看到更新后的列表。
  5. 不再需要某技能在 DSH 中可见时,点「解除链接」;预设目录中的源技能文件保持不变。
  6. 若某技能无法链接,查看按钮旁的占用说明(同名目录或链接已存在)。

适用场景与注意

适合谁:在多个磁盘位置维护技能合集、希望用界面批量挂接/卸载而不反复复制文件的用户;需要在 Windows 上无管理员权限创建目录联接的场景。

兼容性:插件在 DSH 0.2.1-rc.3 上开发验证,需要宿主提供 settings.section、sidebar.panellist、main、shell.overlay 及 ctx.remote 等能力。宿主依赖以 peerDependencies 声明(如 @deepseek-ai/cordis、@deepseek-ai/dsh-typert-protocol 等),由 DSH 运行时提供。较老宿主上部分 UI 会退回最小实现;设置页导航图标注入为 best-effort,失败时保留默认齿轮,不应白屏。

安全与权限:插件以当前 DSH 进程的用户权限读写 home 目录下的 skills 与 presets.json,并创建/删除链接。安装前应在插件页或 npm/GitHub 查看源码与 MIT 许可证,确认预设路径指向的目录可信。DeepSeek Harness 社区插件目录(如 skillhub.cn 上的条目)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。

结尾

@ancircle0/dsh-skills-ext 把「预设技能目录 + 用户技能根链接」做成可管理的 UI 流程,并保证链接变更后技能注册表与客户端选择器尽快一致。进一步了解实现与开发命令见仓库 README。

  • 社区目录页:https://www.skillhub.cn/plugins/ancircle0/dsh-skills-ext
  • GitHub:https://github.com/ancircle0/dsh-skills-ext
羽毛球分组比赛记分
小程序二维码

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

小夜