Skip to content

dsh-skills-manager

Verified

@xqitw/dsh-skills-manager · v0.1.4 · MIT · Web UI

dshweb 设置页 Skills 管理器:浏览、搜索、创建、编辑、删除 skills,切换模型可见性,ZIP 上传安装。纯 Node 实现,无 python/unzip 依赖。

Install

dsh plugin add @xqitw/dsh-skills-manager

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

DSH-Skills-Manager

Latest Release npm version License Node TypeScript CI badge badge

项目地址https://cnb.cool/xqitw/dsh-skills-manager

dsh(deepseek-harness)Web 设置页 Skills 管理器:浏览、搜索、创建、编辑、删除 skills,切换模型可见性,ZIP 上传安装。

纯 Node 实现(node:zlib 手写 ZIP 解析),无 python / unzip 等外部依赖

功能

  • 浏览:全局 + 项目级 + 自定义目录 skills 合并列表,来源分组、实时搜索
  • 查看 / 编辑:打开任意 skill 查看完整 SKILL.md,可编辑并保存
  • 新建~/.agents/skills/<name>/SKILL.md 标准模板
  • 删除:整目录删除(二次确认弹窗)
  • 切换模型可见性:翻转 frontmatter 的 disable-model-invocation
  • ZIP 上传安装:选 zip → base64 → host 纯 Node 解压(防路径穿越)→ 按 frontmatter name 安装
  • 工作区联动:自动跟随当前活跃会话工作区,项目级 skills 随工作区切换刷新

安装

作为 dsh profile bundle 使用,推荐用 dsh 官方命令

dsh plugin --profile web add @xqitw/dsh-skills-manager

该命令会在 profile 目录执行 pnpm add,检测到包的 dsh.bundle 声明后 自动将其加入 dsh.profile.bundles,重启 dsh 后设置页出现「Skills」页签。

等价的手动方式:

cd ~/.dsh/profiles/web
pnpm add @xqitw/dsh-skills-manager

然后确认 package.jsondsh.profile.bundles 包含 "@xqitw/dsh-skills-manager",重启 dsh 生效。

配置

插件支持通过 profile 的 cordis.patch.yml 覆盖配置:

- id: skills-manager
  name: '@xqitw/dsh-skills-manager'
  config:
    # 用户级 skills 根目录(默认 ~/.agents/skills)
    skillsRoot: '~/my-skills'
    # 自定义扫描目录(source 归为 "custom",界面显示为「自定义目录」分组)
    customSkillDirs:
      - /path/to/custom/skills
配置项 类型 默认值 说明
skillsRoot string ~/.agents/skills 用户级 skills 根目录,支持 ~ 前缀
customSkillDirs string[] [] 额外扫描的自定义目录,界面归为「自定义目录」分组

扫描目录优先级

优先级 目录 source
1 <cwd>/.dsh/skills(当前工作区) project-dsh
2 <cwd>/.agents/skills(当前工作区) project-agents
3 customSkillDirs 配置目录 custom
4 skillsRoot(默认 ~/.agents/skills user-agents
5 ~/.dsh/skills user-dsh

同名 skill 按优先级去重,优先显示高优先级来源。

权限说明

插件写 ~/.agents/skills(工作区之外),运行需要 danger-full-access 权限策略。

仓库结构

├── src/index.ts          # host 端:SkillsManagerService + 纯 Node ZIP 解压
├── lib/client.js         # client bundle:设置页 UI(__ModuleLoader__ 模块形态)
├── lib/index.js          # host 端构建产物(tsc 生成)
├── cordis.patch.yml      # profile 补丁层
├── .cnb.yml              # CI 流水线:PR 构建验证,tag_push 发布 npm + Release
├── tsconfig.json         # TypeScript 构建配置
└── docs/                 # 项目文档

构建与发布

host 端用 TypeScript + 标准 TC39 装饰器(@Remote),依赖均为 npm 已发布版本:

npm install --legacy-peer-deps   # --legacy-peer-deps 解决 dsh 生态 peer 互引
npm run build                    # tsc → lib/index.js

发布由 CI 自动完成:打 tag 触发 tag_push 流水线,并行执行 npm 发布与 Git Release 生成:

git tag v0.1.3 && git push origin v0.1.3

npm 密钥来自 xqitw/api-key 仓库的 env-npm.ymlNPM_API_KEY)。

常见问题

Q:为什么我的项目级 skills 不显示? A:项目级 skills 跟随「当前活跃会话工作区」。请先在 dsh Web 中打开目标工作区(或新建会话),页面顶部会显示当前工作区路径,项目级分组随之刷新。

Q:「自定义目录」分组为空? A:该分组只有配置了 customSkillDirs 才会出现内容,且需要重启 dsh 生效。

Q:页面空白 / 菜单不出现? A:确认安装版本 ≥ 0.1.3(早期版本存在渲染问题)。升级后强制刷新浏览器(Ctrl+Shift+R)。

贡献指南

欢迎参与贡献!详细的贡献规范、开发流程与提交规范请参考 CONTRIBUTING.md

发现安全漏洞请按 SECURITY.md 的流程私下报告,请勿通过公开 Issue 提交

许可证

基于 MIT License 开源。