DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

sky-unicorn /

dsh-plugin-market

Verified

DeepSeek Harness 插件社区,支持插件浏览、搜索、排序与便捷安装。

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@c1cd3bc5

DSH Plugin Market

DeepSeek Harness 的 Web 插件社区。它在设置页左侧增加独立的“插件社区”入口,右侧通过“插件 / 已安装”两个标签页分页浏览 GitHub dsh-plugin topic 的完整本地快照,并直接安装或卸载当前 profile 中的插件。

界面只使用 Harness 的 --dsw-* 语义化样式变量,因此会自动跟随“浅色 / 深色 / 跟随系统”设置。

“插件社区”导航项使用 Harness 公开的地球图标。当前 settings.section 契约尚未提供图标字段,因此 Client 只对本插件的中英文导航标签替换设置壳的 fallback 齿轮;设置界面重挂载或切换语言时会自动重新应用,插件卸载时会还原原图标。

市场页右上角的“配置”按钮可以直接管理 GitHub Token:输入后会先向 GitHub 验证,再写入 Harness 的 $DSH_HOME/.credentials.yaml 凭据存储。页面只读取“是否已配置、来源、是否可写”,不会把已保存的 Token 返回给浏览器。也可以从同一弹窗清除 Token。若 Token 来自启动进程的环境变量,该来源优先且不可由页面覆盖。

安装包内置了一份包含 1876 条社区记录的默认渠道 assets/plugins-cache.json。市场会排除其中已明确标记为 Skill 的记录,并将 DSH 插件按 GitHub 星数从高到低展示;星数相同则按最近更新时间和仓库名稳定排序。用户缓存不存在时,页面直接读取内置渠道,无需首次联网同步。内置文件是只读发布资产,永远不会被同步操作修改。

“同步渠道”按钮会读取 GitHub topic 的最新数据,并原子覆盖 $DSH_HOME/plugins/dsh-market/plugins-cache.json。用户缓存一旦存在就优先于内置渠道;删除用户缓存即可回退到随包发布的默认数据。GitHub Search 对单次查询最多返回 1000 条,插件会自动按仓库创建时间拆分查询、逐页拉取并按仓库名去重,因此不受单次 1000 条结果限制。日常打开、翻页和筛选只读取本地 JSON,不消耗 GitHub API 配额。

“已安装”标签页只展示通过插件社区安装成功的插件。Host 会在安装命令成功后把 profile、仓库和实际包名原子记录到 $DSH_HOME/plugins/dsh-market/installed-plugins.json,卸载成功后移除对应记录;通过命令行或其他方式加入 profile 的依赖不会出现在这里,已经从 profile 外部移除的记录也不会继续展示。

同步作为 Host 后台任务运行:按钮请求会立即返回,页面每秒读取进度,展示已经完成的请求批次和发现的记录数。GitHub 搜索限流重置前的等待也不会让按钮请求超时;同步完成后页面自动刷新本地渠道。

市场安装按钮不会执行渠道或 README 中的任意 shell 命令。Host 会先验证仓库、默认分支 commit 与包身份,然后按以下顺序选择安装源:

  1. 若 npm registry 中存在声明 dsh.bundle、且 repository 指向同一 GitHub 仓库的包,则安装固定的 npm 版本。
  2. 否则,若该 commit 的仓库根目录包含有效 dsh.bundle manifest,则安装固定到该 commit SHA 的 GitHub 源。
  3. 只有本地目录、tarball 或 monorepo 子目录安装方式的项目不会被猜测安装;页面会提示按仓库 README 手动执行对应命令。

无论使用 npm、GitHub、tarball 还是本地源码目录,DSH 的公开安装入口都是 dsh plugin --profile <name> add <package-spec>;源码 checkout 中可使用等价的 pnpm dsh plugin --profile <name> add <package-spec>。dsh plugin 会在目标 profile 中把参数原样转发给 pnpm,并根据安装后 manifest 中的 dsh.bundle 更新 bundle 层。

安装市场本身

从本仓库的父目录执行:

dsh plugin --profile web add ./dsh-plugin-market

如果从 GitHub 安装,pnpm 首次会要求明确允许本包的 prepare 构建脚本。按终端提示把准确的包名加入该 profile 的 pnpm-workspace.yaml 中,再重试:

allowBuilds:
  dsh-plugin-market: true

随后启动或重启 Web profile(当前 DSH 中 web 是 --profile web 的别名,二者不能同时传入):

dsh web

配置

默认配置位于 cordis.patch.yml:

  • profile:安装和卸载的目标 profile,默认 web。
  • topic:GitHub topic,默认 dsh-plugin。
  • pageSize:每次检查的最近更新仓库数,范围 1–30。
  • operationTimeoutMs:一次安装或卸载的超时。
  • githubTokenEnv:GitHub token 所在的环境变量名。未配置令牌时使用匿名额度。
  • cliPath:可选的 dsh 可执行文件绝对路径;默认复用当前 Node 启动器。

安全说明

  • 渠道展示 topic 中的全部仓库;GitHub topic 本身不保证仓库确实是 DSH 插件。
  • 安装时会校验仓库根目录存在有效 dsh.bundle manifest,并把 GitHub 安装源固定到当时默认分支的 commit SHA;无效仓库不会被安装。
  • 安装 Git 依赖可能执行仓库的 prepare 脚本。pnpm 的 allowBuilds 是明确的本机代码执行授权;只应授权已审查并信任的仓库。
  • 市场不会从自身界面卸载自己。
  • 安装或卸载后需要重启当前 Web profile,避免运行中的插件树与磁盘依赖状态不一致。

开发

pnpm install
pnpm run check

本地联调:

dsh plugin --profile web add ./dsh-plugin-market
dsh web

数据来源

社区目录来自 GitHub dsh-plugin topic,插件格式与安装行为遵循 DeepSeek Harness 插件开发文档。

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout
—/ 5

No ratings yet

Verified DSH bundle

Commit c1cd3bc5fc45

Community comments

No comments yet. Be the first to write one.