JimmyJin2006/dsh-skill-manager ↗★ 0
dsh-skill-manager
In-GUI skill manager for the dsh web GUI: a top-level Skills entry in Settings (movable into the Plugins section) that lists every installed skill (name, description, model/user invocation type, source root), with search. Read-only browser of the local skill catalog (user roots: $DSH_HOME/skills, ~/.agents/skills).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:JimmyJin2006/dsh-skill-manager说明文档
阅读完整 README ↗dsh-skill-manager
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:
启动失败 = 同一插件被两个来源挂载——典型:某个包既在 dsh.profile.bundles(来自 dsh plugin add),又作为手动 insert 行出现在 cordis.patch.yml。报错的 id 可能是任意重复的插件,不一定是刚装的那个。
修复:去掉其中一个来源——删除 ~/.dsh/profiles/web/cordis.patch.yml 里的手动 insert 行,或从 bundles 移除(dsh plugin --profile web remove )。
DSH 的 loader 把重复 id 当作致命错误。本地补丁可让它幂等去重(保留第一个、警告、忽略重复),从此不会再被锁在 harness 门外;见 上游 issue。(自动定位最新 loader,已打过会自动跳过):