Bundle
@montersy123/dsh-skill-market
Browse, search and install SkillHub skills inside DeepSeek Harness. / 在 DeepSeek Harness 内浏览、搜索并安装 SkillHub 技能。
- Source
- montersy123
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
<p align="right"> <strong>简体中文</strong> · <a href="README.en.md">English</a> </p> <h1 align="center">dsh-skill-market</h1> <p align="center"> <strong>DeepSeek Harness 的技能市场</strong><br> 浏览 <a href="https://skillhub.cn/skills?sortBy=score">SkillHub</a> 上的技能,并把它们真的装进 Harness。 </p> <p align="center"> <a href="https://github.com/montersy123/dsh-skill-market/stargazers"><img src="https://img.shields.io/github/stars/montersy123/dsh-skill-market?style=social" alt="GitHub stars"></a> <a href="https://www.npmjs.com/package/@montersy123/dsh-skill-market"><img src="https://img.shields.io/npm/v/@montersy123/dsh-skill-market?logo=npm&color=cb3837" alt="npm 版本"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> </p> <p align="center"> <img src="assets/discover-detail-zh.png" width="100%" alt="技能市场与详情抽屉:分类筛选、搜索、卡片上的下载量与安全标记,右侧展开单个技能的详情。"> </p> `dsh-skill-market` 在侧边栏加一个 **Skill Market** 面板,把 SkillHub 的技能库变成可以浏览、筛选、搜索、查看详情,并**一键安装到本机**的地方。装好的技能和手写的本地技能没有区别 —— Harness 自己的技能系统会照常发现它们,在任何会话里都能调用。 > **技能不是本插件创作的。** 面板里列出的每一个技能都来自 [SkillHub](https://skillhub.cn),由各自的作者创作并发布,**版权归原作者所有**,以每个技能自己声明的许可证为准。本插件只负责在 Harness 里更省事地找到并安装它们。 - **发现** — 整个 SkillHub 技能库,默认按下载量排序。分类筛选、关键词搜索、懒加载,卡片上直接安装。 - **已安装** — 本机上的技能。可以**停用而不卸载**(目录被移到停用区,Harness 就读不到了),也可以更新或卸载。 - **收藏** — 收藏夹只存在本机,用来记下想装的技能。 - **本地导入** — 把自己手头的 `.zip` 技能包拖进来,或者直接把文件夹拷进技能目录。 - **详情抽屉** — 六个页签:概览、文件、版本历史、权限、安全扫描、指标。文件页签能展开真实的文件树并预览内容,版本历史可以装回任意旧版本。 ## 安装 ### 从 Harness 界面安装(推荐) 打开 **DeepSeek Harness → 插件 → 添加插件**,填入 npm 包名: ```text @montersy123/dsh-skill-market ``` 点 **安装**。包里的代码就是可运行的 ESM,**不需要任何构建步骤**。这个对话框同样接受 GitHub 仓库地址和本地目录路径。 <p align="center"> <img src="assets/add-plugin-zh.png" width="72%" alt="插件页与「添加插件」对话框:填入插件包名、GitHub 仓库地址或本地目录路径,然后点安装。"> </p> ### 用 `dsh` 命令行安装 按你运行的形态选一个 profile。**桌面端**是 `desktop`,**Web 端**是 `web`: ```sh # Web 端 dsh plugin --profile web add @montersy123/dsh-skill-market # 桌面端 dsh plugin --profile desktop add @montersy123/dsh-skill-market ``` 这两条从 **npm 官方源**安装,拿到的是已发布的版本。要用仓库 `main` 上还没发布的提交,把包名换回 `github:montersy123/dsh-skill-market` —— pnpm 会把 git 依赖钉在解析到的那一个 commit 上,以后升级还得重新解析,所以日常安装用包名更省事。 `dsh plugin` 会把包管理操作转发给 pnpm,所以 `web` 与 `desktop` 的差别只在装进哪个 profile。**先确认 pnpm 在 PATH 上。** 装完**重启对应形态**让新的 bundle 层生效: ```sh dsh --profile web ``` 想确认这一层真的加载了,可以在启动前 dump 一次配置,输出里应当出现 `# == @montersy123/dsh-skill-market`: ```sh dsh --profile web --dump-config ``` ### 从本地目录安装 已经克隆了仓库的话,直接指向该目录(profile 名同上): ```sh dsh plugin --profile web add ./dsh-skill-market ``` ### 升级 安装的插件不会自动升级。重新执行同一条安装命令即可 —— 包名写法会按语义化版本解析(不像 git 依赖那样钉在某个 commit 上)。已装的技能、停用状态与收藏都会保留(状态存放在包外)。 ### 我的数据存在哪 插件的数据**全部**在 DSH 自己的 storages 目录里(与 `dsh-cost-meter` 的账本同一个地方),不写进 profile、也不写进 DSH 自身的会话存储: ``` $DSH_HOME/storages/@montersy123/dsh-skill-market/data/ ├── panel.json 收藏(含完整技能记录)、已安装账本、类目偏好、待重启提示 ├── installed.json 每个技能装的是哪一版 └── skills/ 停用的技能(目录整份移到这里,Harness 就此读不到) ``` 已启用的技能不在这个目录里,它们在 Harness 自己的技能根 `$DSH_HOME/skills` 下 —— 面板的开关就是在这两个目录之间搬目录,所以"启用/停用"是一个位置,而不是一个标记。 `$DSH_HOME` 默认是 `%USERPROFILE%\.dsh`(可用环境变量覆盖)。备份或迁移就复制这个 `data` 目录;想彻底清空,删掉它即可(已装的技能另在 `$DSH_HOME/skills` 下)。 > 这个位置换过几次:更早的版本把面板状态存在页面的 **Local Storage** 里(DSH 桌面端自己的 `%APPDATA%\@deepseek-ai\dsh-desktop\Local Storage`,和其他插件挤同一份存储),后来搬到 profile 目录下的 `@montersy123-dsh-skill-market/data`。**当前版本只读 `$DSH_HOME/storages/...` 这一处,不兼容旧位置**:从旧版本升级时,把旧的 `data` 目录整个搬到新位置即可,不搬就等于从零开始。 **安装技能后需要重启 DeepSeek Harness**:技能文件会立刻落到磁盘,但一场对话用的是它开始时就确定的技能清单,所以新装的技能在**新会话**里才能调用。面板会用一条提示条和一个 toast 说明这一点,并且不会因此锁住任何控件 —— 你可以一次改好几个技能,再重启一次。 ## 用它 | 位置 | 能得到什么 | | --- | --- | | **发现** | 整个 SkillHub 库:分类 chips 按类目显示**总数**,搜索按关键词命中,卡片显示下载量、评分、收藏数与安全标记。 | | **已安装** | 库里的每个技能:来源、版本、目录、文件数、安装时间,以及启用/停用开关与更新/卸载。 | | **收藏** | 只在本机的收藏夹,带一键安装。 | | **本地导入** | 拖放 `.zip`,或把目录直接放进技能目录 —— 两种都会列出来,并标明是哪一种。 | | **详情抽屉** | 六个页签。**安全扫描**页签逐个列出第三方检测方的结论。 | ### 详情抽屉 点任意卡片打开。顶部是一条统计条 —— 下载量、收藏数、综合评分、版本 —— 下面是六个页签。上图右侧展开的就是这个抽屉。 **概览**给出上游简介与关键信息;**文件**展开真实的目录树,点开单个文件可以预览内容;**版本历史**列出每个发布的更新说明,并能把任意旧版本装回去;**权限**区分技能自身的声明与本插件的行为;**指标**是 SkillHub 的原始数字。 ### 「安装」到底做了什么 技能会被真的下载、解包,写进 `$DSH_HOME/skills/<handle>--<slug>/`。这是 **Harness 自己的**技能根目录,不是插件的私有目录 —— 这正是装好的技能会变成一个普通本地技能的原因:内置的文件系统 provider 会发现它,技能列表里它和手写的技能并列,而且**停用这个插件也不会让它消失**。 **「停用」是一个位置,不是一个标记。** 启用和停用把目录在两个根目录之间移动,所以磁盘上的位置永远就是事实。这也意味着你可以自己动手:把文件夹拷进 `$DSH_HOME/skills` 就是启用,拷进停用区就是停用;面板两种都认。 ### 安全扫描 SkillHub 用多家第三方检测方扫描每个技能。**面板只在所有检测方都报告安全时,才显示绿色的「安全」标记** —— 实测中检测方经常互相矛盾,所以只要有一家说可疑,就不显示任何标记(而不是显示一个灰色的)。不显示诚实地表示「没有结论」,而灰色 chip 会让人以为面板有自己的判断。 安全扫描页签逐行列出每家的结论和报告链接,所以分歧是看得见的,而不是被压成一个结论。 ## 语言 界面是**中英双语**,跟随 DSH 自己的 **设置 → 常规** 里的语言设置,面板里不再放第二个开关。所有界面文案都有两份,数字和日期按当前语言格式化。 ## 环境要求 - DeepSeek Harness,且客户端插件树可用(本插件是一个 bundle:`dsh.bundle` manifest + `cordis.patch.yml` 层)。 - Host 侧 Node.js **>= 20**。 - 访问 `api.skillhub.cn` 的网络。浏览和安装需要它;启用、停用和卸载不需要。 ## 说明 - **不会动你的数据。** `$DSH_HOME/skills` 和插件的 `data/` 在启动时都不会被清理;停用的技能和导入的技能在重启与插件升级后都还在。 - **只有破坏性操作才二次确认。** 安装和更新不弹确认,**卸载**和**版本回退**会 —— 它们会删掉目录,要恢复得重新下载。 - **没有数字就不显示数字。** 缺少的下载量不会渲染成 `0`:那是「没测到」的样子,印出来就成了一个没人测过的事实。 - **包本身不合规就拒绝安装。** 注册表只在技能**被加载时**校验 `name` 字段,所以一个声明了 `name: Something With Spaces` 的包会安静地装进去然后永远不出现。现在这种包在安装时就会失败,并指出发布者的错误。 ## 开发 开发笔记(设计契约、测量方式、踩过的坑)在 [docs/development.md](docs/development.md);上游接口笔记在 [docs/skillhub-api.md](docs/skillhub-api.md)。 仓库里带一套自检脚本,不需要浏览器就能跑。装了插件之后: ```sh node scripts/install-plugin.mjs --apply # 打包并装进 profile npm test # 整套自检(29 项) ``` `npm test` 会逐项打印退出码,任何一项失败都会让整体失败。其余脚本在 [`scripts/`](scripts/),一次性的调查脚本归档在 [`scripts/dev/`](scripts/dev/)。 ## 致谢与版权 面板里的技能**全部来自 [SkillHub](https://skillhub.cn)**。感谢平台的维护者,以及在上面发布技能的每一位作者。本插件只是让你在 Harness 里更方便地找到并安装它们。 - **技能版权归原作者所有**,以每个技能自己声明的许可证(其 `SKILL.md` 中的 `license` 字段)为准。**本仓库的 MIT 只适用于本插件自身的代码,不适用于任何技能。** - **安装时从上游实时下载。** 本仓库不托管、不镜像、不转授权、不转售任何技能内容。`package.json` 的 `files` 白名单只包含 `lib`、`locale`、`icon.svg`、`cordis.patch.yml`、`assets` 与三份文档;`tests/` 下的响应样本是测试数据,不会随包发布。 - **本插件处理的是索引元数据** —— 名称、简介、版本、下载量、收藏数、分类、第三方安全扫描结论与文件清单,以及你在安装前主动点开某个文件时按需取回的那一份文本。这些只用于展示与识别技能,并附带回原始页面的链接。 - **SkillHub 及其标识归各自所有者所有。** 本插件是独立的社区项目,与 SkillHub、腾讯及 DeepSeek **均无隶属、赞助或背书关系**。 - **安装后的技能由你自己决定是否信任。** 安全扫描结论来自 SkillHub 的第三方检测方,仅供参考,不构成任何担保;安装前请阅读技能自身的 `SKILL.md`。面板只在所有检测方都报告安全时才显示绿色标记,但这不等于推荐。 - **如果你是技能作者或平台方**,希望调整或移除此处展示的信息,请[提交 issue](https://github.com/montersy123/dsh-skill-market/issues),我会尽快处理。 ## 许可 [MIT](LICENSE) © 2026 montersy123 **该许可只覆盖本插件的代码,不覆盖任何技能。** 技能的版权与许可归属见上一节,以及 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)。
Install
dsh plugin --profile web add github:montersy123/dsh-skill-market
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install montersy123-dsh-skill-market from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.