dsh-skill-manager

by jimmyjin2006

UI 增强github收录于 08-23

DeepSeek Harness(dsh)Web GUI 的技能管理器:设置内直接浏览全部已装技能——侧栏顶层 Skills 入口,可拖进常用栏

A skill manager for the DeepSeek Harness (dsh) Web GUI: browse every installed skill right inside Settings — a top-level Skills entry in the sidebar that you can move into the…

安装

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

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

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

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

README

目录

DSH(DeepSeek Harness)Web GUI 的技能管理器:直接在设置里浏览全部已安装技能——默认在侧边栏的**「技能」**一级入口,一键可移入插件分区。

功能

  • 设置 → 技能(一级入口,默认):只读列出会话目录可加载的全部技能,扫描自用户技能根($DSH_HOME/skills、~/.agents/skills)。
  • 每张卡片显示:技能名、调用类型徽标(模型 + 用户 / 仅用户 / 仅模型)、描述;展开可见来源根与文件路径。
  • 搜索框按名称/描述过滤。
  • 一键移动入口:「移到插件分区」让技能入口从左侧导航消失、改到 设置 → 插件 内的「技能」标签页;「移回左侧导航」反向移动。选择持久化在 localStorage——同一时刻只存在一个入口。
  • 只读插件:不修改任何技能文件。

安装

二选一,切勿两种都用。

方式 A — 一条命令(推荐)

dsh plugin --profile web add dsh-skill-manager

包会加入 profile 的 dsh.profile.bundles,其 bundle patch(cordis.patch.yml)在启动时自动挂载插件。不要再手动加 insert 行。

或从本地源码安装:

dsh plugin --profile web add /绝对路径/dsh-skill-manager

方式 B — 仅手动 patch

仅当包已能被 profile 的 node_modules 解析(如以其他方式作为依赖装过)且不在 dsh.profile.bundles 时使用。在 ~/.dsh/profiles/web/cordis.patch.yml 加一行 insert(配置 watcher 秒级热加载,无需重启):

- insert:
    - id: ui-skill-manager
      name: dsh-skill-manager

⚠️ 切勿把两种方式叠加:同一插件同时出现在 dsh.profile.bundles 和手动 insert 里,同一个 loader entry id 会被挂载两次——启动直接失败,报 duplicate loader entry id: ui-skill-manager。

故障排查

启动报 duplicate loader entry id: <id>

启动失败 = 同一插件被两个来源挂载——典型:某个包既在 dsh.profile.bundles(来自 dsh plugin add),又作为手动 insert 行出现在 cordis.patch.yml。报错的 id 可能是任意重复的插件,不一定是刚装的那个。

修复:去掉其中一个来源——删除 ~/.dsh/profiles/web/cordis.patch.yml 里的手动 insert 行,或从 bundles 移除(dsh plugin --profile web remove <pkg>)。

DSH 的 loader 把重复 id 当作致命错误。本地补丁可让它幂等去重(保留第一个、警告、忽略重复),从此不会再被锁在 harness 门外;见 上游 issue。每次升级 DSH 后重跑补丁脚本(自动定位最新 loader,已打过会自动跳过):

powershell -ExecutionPolicy Bypass -File patch-dsh-dedupe.ps1

结构

  • lib/index.js — host 半:扫描技能根、解析 SKILL.md frontmatter、提供同源 API GET /api/skill-manager/list。
  • lib/client.js — 浏览器半:注册 settings.section(侧边栏,order 12)与 settings.plugins.tab 两个入口,运行时通过 ctx.slots.register 的 disposer 在两个入口间移动。
  • cordis.patch.yml — bundle patch,插入 ui-skill-manager 行。

许可

MIT

原始 README: https://github.com/JimmyJin2006/dsh-skill-manager/blob/main/README.zh.md ↗