dsh-skill-viewer

86Star8Fork0Issue0Watching

为 DSH 提供技能管理面板与命令行,支持热增删、启停、跨工作区迁移和分组。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
deepseekdshdsh-pluginmcppluginskills

安装

$ dsh plugin --profile web add github:Fishquito7/dsh-skill-viewer

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Fishquito7/dsh-skill-viewer:先查看仓库 https://github.com/Fishquito7/dsh-skill-viewer.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DeepSeek Harness 装上一块"技能"设置面板,并附带 dsh-skill 命令行,让你在 Web 界面和终端里直接开关、增删、迁移、分组管理技能文件——不需要手工改 SKILL.md,也不需要重启网关。

核心能力

  • 在 Web 设置页"插件"下方新增"技能"入口,展示已注册技能的卡片列表,支持按名称搜索、点击展开查看完整 SKILL.md 内容
  • 提供启用/停用开关(关闭后下次想用再开)、删除按钮、批量迁移按钮,状态切换通过文件改名即时生效,DSH 内置监听器约 200 ms 内自动感知
  • 支持从 .md 文件、含顶层 SKILL.md 的目录束、.zip 压缩包三种方式添加技能,可拖拽到页面或点"+"上传,单次最多 200 个文件 / 8 MB
  • 工作区横栏("全局" + 各工作区,可分组筛选)一键切换只显示哪个作用域下的技能;同名技能在全局与工作区各自独立成行
  • 技能分组(仅本插件私有显示配置,存 ~/.dsh/skills/.system/skill-viewer/groups.json),不改动技能文件本身,可按分组过滤
  • 自带 dsh-skill 命令行:list/add/enable/disable/delete/scope/migrate/update,网关关闭时也能用,热生效

技术实现

  • 语言: TypeScript(ESM,type: module
  • 关键依赖: @deepseek-ai/dsh-typert-protocol(注册 Typert 远程服务)、@deepseek-ai/dsh-home-paths(解析用户根)、fflate(ZIP 解压)、yaml(frontmatter 解析)、zod(wire schema 校验)
  • 架构模式: Cordis 半区插件,cordis.patch.ymlskills-viewer bundle 自动挂到 dsh.profile.bundles;宿主端 apply(ctx)typert 注册一个名为 skillsViewer 的远程服务,并把方法(list/workspaces/groups/checkUpdate/saveGroup/deleteGroup/content/setEnabled/migrate/batchMigrate/deleteSkill/addSkill)暴露给 API 网关;客户端是浏览器侧 React 组件(client.ts),通过 Typert 协议与宿主对话;CLI 是独立 node 入口 lib/cli.js
  • 入口文件: src/index.ts(宿主半区)、src/client.ts(Web UI 客户端)、src/cli.ts(CLI),编译产物在 lib/

适用场景

日常需要频繁开关 / 增删技能,又不想碰 YAML 和重启网关的用户。比如新装了一套工作区想先批量导入若干技能再按需启用,或想把一个调试技能从某个项目迁到全局共享;CLI 还适合在终端、SSH 远程或网关暂不可用时直接管理技能。

前置依赖与兼容性

依赖最低版本说明
DSH(cordis / typert)0.1.0-rc.6+来自 @deepseek-ai/dsh-typert-protocol: ^0.1.0-rc.6
Node.js未声明package.json 没有 engines 字段;源码使用 node:fs/promisesAbortControllerfetch 等内置 API
平台macOS / Windows / Linux跨平台运行;process.platform === "win32" 分支处理 Windows 路径与大小写不敏感
原生模块全部依赖(fflate/yaml/zod/@deepseek-ai/*)均为纯 JS,无 node-ptynode:sqlite

安装方式

dsh plugin --profile web add github:Fishquito7/dsh-skill-viewer

配置项

配置类型说明默认值
DSH_HOME环境变量用户根目录,覆盖默认的 ~/.dsh~/.dsh
DSH_AGENTS_HOME环境变量兼容旧版用户根目录,覆盖默认的 ~/.agents~/.agents

本插件无需额外编辑 YAML / Schema;cordis.patch.ymldsh plugin add 自动追加,无需手工维护。

常见问题

Q: 这个插件是做什么的?

A: 给 DeepSeek Harness 增加一个"技能"设置面板与 dsh-skill 命令行,能在 Web 上和终端里直接启用/停用、添加、删除、迁移、分组管理技能文件——底层就是改 SKILL.md,DSH 的文件监听器会自动感知。

Q: 安装后能看到什么?

A: 设置页"插件"下方会出现"技能"入口:技能卡片列表、状态开关、搜索框、工作区横栏、分组横栏、添加与迁移按钮;终端会多出 dsh-skill 命令。无需手动改 cordis.patch.yml

Q: 是否需要额外配置?

A: 无需配置。只有 DSH_HOMEDSH_AGENTS_HOME 两个环境变量可改用户根目录(默认 ~/.dsh~/.agents),普通使用保持默认即可。

Q: 添加技能支持哪些来源?

A: 单个 .md 文件、含顶层 SKILL.md 的目录、.zip 压缩包三种形式,可拖拽或点"+"上传;自动识别结构,不合法内容(如 SKILL.md 缺失、frontmatter 报错、批内重名、路径冲突)会被拒并说明原因。

Q: 同名技能同时存在于全局和工作区怎么办?

A: 页面里按(名称+作用域)分行显示、互不影响;CLI 的 enable/disable/delete 在同名多作用域时必须用 --global/--project/--workspace 显式指定,否则直接报错退出,不会偷偷操作胜出那条。

Q: 数据存在哪里?卸载插件会丢吗?

A: 技能实体就是普通文件:全局在 ~/.dsh/skills/,工作区在 <工作区项目根>/.dsh/skills/。停用 = 把 SKILL.md 改名为 SKILL.md.disabled,启用 = 改回来。卸载插件不会触碰这些文件,照常被 DSH 内置提供方发现。

Q: 从 Git 安装失败怎么办?

A: pnpm v11 默认禁止 git 来源插件跑 prepare 脚本,按报错中 pnpm 给的 key 加到 profile 目录 pnpm-workspace.yamlallowBuilds 下再重跑;或者直接装 release tarball,绕开构建脚本限制。

Q: bundled 技能为什么改不了?

A: 随 DSH 部署自带的技能(source === "bundled")是只读的,UI 与 CLI 都会拒绝停用、删除与迁移,提示"随部署附带,不可修改"。

上手难度

入门 — 安装命令一键完成,无需修改任何 YAML;页面功能靠点击即可,CLI 的 list/enable/disable/delete/add 也不需要复杂参数。

已知问题与限制

  • 旧版 frontmatter 字段 disableModelInvocation / modelInvocable 会被拒绝,必须改用 disable-model-invocation / user-invocablesrc/skill-files.ts:111-113
  • source === "bundled" 的随部署技能不可停用、删除、迁移(src/index.ts:627src/index.ts:728
  • 从 Git 安装时 pnpm v11 默认禁止运行 prepare 脚本,会报"git-hosted plugins build on install...";需在 profile 目录的 pnpm-workspace.yamlallowBuilds 下放行,或改装 release tarball(README.md:39-50
  • dsh-skill CLI 默认只扫描当前目录锚定的项目根与用户根;管理其他工作区需加 --cwd <工作区路径>;同名多作用域操作必须显式 --global/--project/--workspacesrc/cli.ts:79-80src/cli.ts:493-516
  • 添加技能总大小上限 8 MB、单批最多 200 个文件;压缩包结构必须是"一个目录含 SKILL.md"或"平铺的若干 .md",否则整批拒绝(src/index.ts:302-303src/index.ts:821
  • dsh-skill update 直接请求 GitHub Releases 最新版 URL,网络不可达或被限流时会失败(src/cli.ts:466);web 端的"检查更新"按钮失败会被静默忽略(src/client.ts:1082

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Fishquito7/dsh-skill-viewer)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录
dsh-skill-viewer — DeepSeek Harness 插件 | deepseek-plugin.org