Back to home@yustillrain

dsh-skill-browser

DSH ??/???????:?????????(?????/??/??/GitHub/AI ???????/??/????????????????)?Skill & plugin repository browser for DSH.

Stars
0
Language
JavaScript
Created
Aug 26, 2026
Updated
Aug 26, 2026
GitHub repo

Introduction

dsh-skill-browser

DSH 技能 / 插件仓库浏览器 —— 在 设置 → 仓库 中浏览、管理本地技能与已安装插件。

支持自定义显示名、标签、简介、GitHub 链接、AI 介绍(中文/English 双语)、插件的启用 / 禁用 / 卸载,以及用「自定义名称」调用 skill 的输入别名。

v0.2.0 起并入原 dsh-plugin-repo-inventory:新装的技能/插件带红点提醒,可一键确认;每个条目可维护安装/更新日期。

功能特性

📚 技能仓库(Skills)

  • 浏览 ~/.dsh/skills 下所有目录型技能,读取其 SKILL.md 内容与相关文件。
  • 查看技能详情:正文 markdown、文件列表、单个文件预览。
  • 自定义显示名:为技能设置别名(留空恢复默认)。
  • 自定义简介 + GitHub 链接:每个技能可维护简介与仓库地址。
  • AI 介绍(双语)
    • 一键生成一份 AI 介绍并保存到仓库;
    • 同时生成 中文 + English 两份内容;
    • 详情页右上角有「中文 / English」切换按钮,点击即切换语言。

🔌 插件仓库(Plugins)

  • 浏览 profile 已安装插件(读取 package.jsondsh.profile.bundles)。
  • 自定义显示名 + 标签分类(标签页可筛选)。
  • 自定义简介 + GitHub 链接
  • 启用 / 禁用 / 卸载
    • 启用、禁用直接操作插件入口的 disabled 标记,写入 cordis.patch.yml,与官方插件市场(plugin-manager)的启用状态保持一致(按 bundle patch 声明的入口 id 计算);
    • 卸载会从 dsh.profile.bundlesdependenciesnode_modules 中移除;
    • 内置插件(@deepseek-ai/dsh-*)禁止启用/禁用/卸载;
    • 以上操作均为「下次启动生效」,UI 上有提示。

🔴 新装提醒与日期(原 dsh-plugin-repo-inventory)

  • 首次出现的技能/插件在列表和入口卡片上显示红点,点「确认」即清除;
  • 已确认集合持久化,首次运行以当前已装内容为基线(存量不亮红点);
  • 每张卡片可直接编辑「安装 / 更新」日期,新条目自动填今天。

⌨️ 输入别名:用自定义名称调用 skill

  • 不修改 DSH 核心,即可用「自定义显示名」呼唤 skill。

  • 在输入框输入 / 后,候选列表会额外列出有自定义显示名的 skill(描述里标注其原始英文名)。

  • 选中后自动替换成原始名称调用,例如:

    输入 /头脑风暴-先方案在执行  →  对话框自动变成 /brainstorming
    

    实际仍按原始英文名 brainstorming 调用,不影响 DSH 的 kebab-case 名称规范。

安装

dsh plugin --profile web add <your-repo-or-package>
# 或本地联调:
dsh plugin --profile web add link:/path/to/dsh-skill-browser

安装后重启 DSH,进入 设置 → 仓库 即可看到「技能仓库 / 插件仓库」。

使用

  1. 浏览技能:仓库 → 技能仓库 → 点击技能查看详情(markdown、文件、AI 介绍)。
  2. 设置显示名:卡片上的「重命名」,或详情页的「简介 / GitHub」字段。
  3. 生成 AI 介绍:详情页点击「生成 AI 介绍」,AI 会在会话中生成中文/英文双语介绍并保存;刷新后可用右上角按钮切换语言。
  4. 管理插件:仓库 → 插件仓库 → 每个卡片右下角提供「启用 / 禁用 / 卸载 / 重命名 / 标签」。
  5. 用别名调用 skill:输入框输入 /,从候选里选择带自定义显示名的 skill 即可。

宿主路由

方法路径说明
GET/dsh-skill-browser/list技能列表
GET/dsh-skill-browser/skill?name=技能详情(markdown + 文件)
GET/dsh-skill-browser/file?name=&path=单文件预览
GET/PUT/dsh-skill-browser/display-name技能自定义显示名
GET/dsh-skill-browser/plugins插件列表
PUT/dsh-skill-browser/plugin-display-name插件自定义显示名
PUT/dsh-skill-browser/plugin-tags插件标签
PUT/dsh-skill-browser/skill-meta技能简介 / GitHub 链接
PUT/dsh-skill-browser/plugin-meta插件简介 / GitHub 链接
PUT/dsh-skill-browser/ai-intro保存 AI 介绍(双语)
PUT/dsh-skill-browser/plugin-enable启用插件
PUT/dsh-skill-browser/plugin-disable禁用插件
PUT/dsh-skill-browser/plugin-uninstall卸载插件
GET/api/dsh-plugin-repo-inventory/new未确认(新装)技能/插件名单
POST/api/dsh-plugin-repo-inventory/confirm确认一项(清除红点)
GET/PUT/rpin-dates安装/更新日期存储
POST/rpin-dates/ensure首见条目自动补日期

技术说明

  • 零运行时依赖:宿主半 lib/index.js 只使用 Node 内置模块(node:fs / node:os / node:path)。
  • 客户端半 lib/client.js 通过 window.__ModuleLoader__.load 注册,使用 React 渲染,注入 设置 → 仓库 section 与 / 输入别名触发源。
  • 启用/禁用一致性:按插件 bundle patch(cordis.patch.ymlinsert: 入口)声明的入口 id 匹配 loader 条目,与官方 plugin-manager 的 claimed-entry-id 模型一致。
  • AI 介绍双语content<!-- zh:start --> / <!-- zh:end --> / <!-- en:start --> / <!-- en:end --> 标记分隔中文与英文,客户端按语言切换渲染。
  • Liquid Carve 按钮:GitHub 打开 / 编辑按钮采用 Originkit 风格的「液态侵蚀」胶囊按钮(纯 JS + SVG mask + goo 滤镜 + requestAnimationFrame,无 framer-motion 依赖)。

License

MIT