dsh-web-ui/packages/dsh-skill-explorer

5.1kStar311Fork49Issue5Watching

DSH Web GUI 的技能中心面板:按来源分级浏览 skill、启用/禁用模型调用、创建与软删除(移入 .trash)。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 zhu1090093659/dsh-web-ui 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
Apache-2.0
分支
dev
deepseek-harnessdshdsh-pluginweb-ui

安装

$ dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-skill-explorer

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

对话式安装

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

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

一句话定位

dsh-web-ui 是一套 DSH Web GUI 插件与皮肤全家桶,本条目收录的子包 dsh-skill-explorer 为 Web GUI 提供「技能中心」面板:按来源分级浏览已加载的全部 skill,启用/禁用模型调用,创建新技能,并把删除改为可恢复的回收站操作。

核心能力

  • 按来源分组浏览 skill(系统内置、项目 .dsh/skills、项目 .agents/skills、自定义目录、用户 ~/.dsh/skills、用户 ~/.agents/skills、运行时注册)
  • 在面板中启用或禁用单个 skill 的模型调用,通过改写 SKILL.md frontmatter 中的 disable-model-invocation 字段触发官方目录热刷新
  • 通过表单创建新 skill,可选择写入用户级目录(本机所有项目共享)或项目级目录(仅当前项目)
  • 删除 skill 时把 SKILL.md 移入同级 .trash 目录而非永久删除,便于误操作后恢复
  • 提供 /api/dsh-skill-explorer/health 健康检查接口,便于宿主或自动化校验插件状态
  • 跟随符号链接扫描,可识别项目仓库内通过链接挂载的 skill(标记为「软链接」)

技术实现

  • 语言: TypeScript
  • 关键依赖: @deepseek-ai/cordis(cordis 插件框架)、@deepseek-ai/dsh-host-webserver(host 半区路由挂载)、@deepseek-ai/dsh-client-runtime + @deepseek-ai/dsh-client-locale(浏览器半区注入)、react@^18.2.0
  • 架构模式: cordis 插件,host/client 双半区——host 半区在 dsh 进程内挂载 5 个 /api/dsh-skill-explorer/* 路由并读取 ctx.skills/ctx.sessions,client 半区通过 MutationObserver 把侧边栏入口注入原生 DOM,并用 React overlay 渲染技能中心面板
  • 入口文件: src/index.ts(host)、src/client/index.ts(browser)

适用场景

DSH 用户已经积累了大量 skill 散落在多个目录(系统内置、项目根、用户根、自定义目录),手动管理困难;通过本插件可以在一个面板里集中查看、快速启用/禁用模型调用、按需创建或清理 skill,避免编辑 SKILL.md 文件出错。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.8+依赖 @deepseek-ai/dsh-client-runtime / @deepseek-ai/dsh-host-webserver / @deepseek-ai/dsh-client-locale ^0.1.0-rc.8(package.json:39-58)
Node.js^22.19 || >=24packages/AGENTS.md:9 全局约定
平台跨平台仅使用 node:fs / node:os / node:http 等标准库,无原生依赖
原生模块bundle 纯 JS

安装方式

dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-skill-explorer

配置项

配置类型说明默认值
enabled布尔插件总开关;设为 false 时所有路由不再注册true(未禁用即生效)
customSkillDirs字符串数组额外的自定义 skill 根目录,扫描后会作为「自定义目录」分组列出[]
dshHome字符串用户级 DSH 配置根目录覆盖;用于定位 ~/.dsh/skills$DSH_HOME 环境变量,否则 ~/.dsh
agentsHome字符串用户级 agents 配置根目录覆盖;用于定位 ~/.agents/skills$DSH_AGENTS_HOME 环境变量,否则 ~/.agents

常见问题

Q: 安装后侧边栏没有出现「技能中心」入口怎么办?

A: 需要重启 dsh web。bundle 注入在 DSH 启动阶段完成,运行时热加载不会重新渲染侧边栏;重启后入口会出现在「New Session」按钮与工作区浏览器之间。

Q: 为什么系统内置或运行时注册的 skill 没有启用/禁用开关和删除按钮?

A: 这两类 skill 来自 ctx.skills 注册表,没有可编辑的文件。插件只信任文件系统扫描产出的路径(src/routes.ts:165-169),所以面板上隐藏这些控件,对应的写路由收到请求也会返回 404。

Q: 删除按钮不见了,这个 skill 不能删吗?

A: 是的。通过符号链接挂载进来的 skill 不能删除——删除会把链接目标的 SKILL.md 移出原位,越出当前 skill 根(src/collect.ts:144-154)。面板会隐藏删除按钮,delete 路由收到请求也会以 400 拒绝。启用/禁用对这类 skill 仍然有效。

Q: 在手机或局域网其他设备上访问 DSH 时,技能中心能用吗?

A: 默认不能。所有路由只接受 loopback 请求或浏览器同源标记,未配对的局域网客户端会先收到 403 forbidden: loopback-only。如果同时安装了 dsh-remote-web-ui 并完成设备配对,配对设备的 cookie 是额外放行路径(src/access.ts:28-34)。

Q: 创建的 skill 立即生效吗?

A: 是的。官方 dsh-skill-filesystem 提供方会热扫描新文件,模型目录即时刷新,无需重启 DSH。注意新 skill 的内容会被作为指令注入模型上下文,请避免写入敏感信息(src/client/locales.ts:52)。

Q: 项目级 skill 和用户级 skill 有什么区别?

A: 项目级 skill(写入项目根目录下的 .dsh/skills/)仅当前项目可见,便于跟代码一起版本管理;用户级 skill(写入 ~/.dsh/skills/)本机所有项目共享,适合存放跨项目的通用指令。面板创建表单允许在这两个位置之间二选一。

Q: 创建 skill 时内容大小有限制吗?

A: 有。表单提交时正文内容(不含 frontmatter)超过 64KB 会被服务端拒绝,提示 content exceeds 64KB limit(src/routes.ts:217-220)。

上手难度

入门 — 装好即用,无需阅读任何源码;想理解 frontmatter 改写或符号链接边界行为时再翻 README 安全模型与限制章节。

已知问题与限制

  • 项目级 skill 跟随面板显示的 workspace:list 路由支持 ?cwd= 显式覆盖,项目根取该目录最近的 .git 祖先;如果工作区不在 git 仓库内,则项目级 skill 无法定位
  • frontmatter 解析为轻量零依赖实现,支持块标量、布尔、嵌套 input 块;不支持的生僻 YAML 特性以官方 dsh-skill-filesystem 提供方的解析为准,技能中心展示可能与官方解析存在差异
  • 链接型 skill(符号链接)不可删除(详见常见问题);启用/禁用对链接 skill 正常,会改写目标自身 SKILL.md 的 frontmatter
  • 单文件符号链接(指向单个 .md)在原子改写时会被替换为一个普通文件,符号链接本身不再保留,链接目标文件不受影响(README.md:96-100)
  • bundled 与 runtime 来源的 skill 在面板中列出但不暴露编辑控件(无 path),不能启用/禁用也不能删除

收录徽章

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/zhu1090093659/dsh-web-ui/packages/dsh-skill-explorer)

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

返回插件目录