Chuyển đến nội dung chính

dsh-skills-manager

Đã xác minh

@xqitw/dsh-skills-manager · v0.1.4 · MIT · Giao diện web

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

Cài đặt

dsh plugin add @xqitw/dsh-skills-manager

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Tác giả

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 开源。