← 返回列表
未验证
浏览安装卸载社区 bundle 插件
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/14 · 已提供中文文档
一个 dsh 插件市场 CLI:从 dsh-plugin GitHub 主题浏览、安装和卸载社区插件
综合分
27.4
GitHub 分
27.4
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 6kongbai/dsh-plugin-market该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-plugin-market
一个面向 DeepSeek Harness(dsh)的插件市场:通过侧边栏 Web 面板和 CLI,浏览、安装和卸载来自 dsh-plugin GitHub 话题的社区 bundle 插件。
社区注册表是一个 GitHub 话题,而非专有索引。任何带有 dsh-plugin 标签、且其 package.json 声明了 dsh.bundle.patch 的仓库都可安装。
它是如何提供的
市场本身就是一个 dsh bundle:cordis.patch.yml 在现有 web 界面上插入一个 Host 半部分和一个 Client 半部分。
- Host 半部分在 ctx.webServer 上注册 /plugin-market/* HTTP 路由——不使用 Typert Remote,因为 harness 生成器无法为树外 npm 包生成它。路由与引擎一一对应(search/info/list/install/uninstall)。
- Client 半部分贡献一个侧边栏底部操作(位于 Settings 旁边),其面板通过同源 fetch 驱动这些路由。
- CLI(dsh-plugin-market)复用同一引擎,用于无头使用。
安装
bundle:将侧边栏面板 + CLI 安装到目标 profile
dsh plugin --profile web add github:6kongbai/dsh-plugin-market
重启 dsh;市场图标会出现在侧边栏底部。该 bundle 的 cordis.patch.yml 默认以 web profile 为目标;编辑 plugin-market 行的 config.profile(或设置 DSH_PLUGIN_MARKET_PROFILE)以指定其他 profile。
然后:
dsh-plugin-market search # 搜索 dsh-plugin 话题
dsh-plugin-market info # 详情 + 固定安装规格
dsh-plugin-market list # 该 profile 中已安装的 bundle
dsh-plugin-market install # 确认、固定、pnpm add、协调、审计
dsh-plugin-market uninstall # pnpm remove、协调、审计
选项:
- --profile、-p — 目标 profile(默认 web);可通过 DSH_PLUGIN_MARKET_PROFILE 覆盖。
- --yes、-y — 跳过安装/卸载确认。
- GITHUB_TOKEN — 提高匿名 GitHub API 速率限制。
安装如何工作
install :
1. 读取仓库的 package.json 并验证其声明了 dsh.bundle.patch(未声明的仓库在 search 中标记为不可安装);
2. 解析默认分支的当前 head 并固定到某个提交——pnpm add github:owner/repo#,绝不使用浮动分支;
3. 在目标 profile 目录中运行 pnpm add;
4. 协调 dsh.profile.bundles(声明了 dsh.bundle 的依赖会加入层列表;被移除的依赖会离开该列表);
5. 向 $DSH_HOME/plugin-install.log 追加一行审计记录。
uninstall 运行 pnpm remove、协调并审计。在两种情况下,新 bundle 都会在下次 dsh 重启时激活。
架构
dsh-plugin-market/
├── packages/market-host 引擎 + Host 网关:GitHub 索引、安装
│ 落地、协调、审计,以及 MarketGateway
│ 服务注册 /plugin-market 路由。
├── packages/market-client 客户端部分:侧边栏底部操作 + 搜索面板。
└── packages/plugin-market 打包:cordis.patch.yml(插入两部分)+ CLI。
引擎(dsh-plugin-market-host)暴露 searchRepositories、fetchRepository、readRepositoryManifest、toHit、toDetail、resolvePinSpec、install、uninstall、installedBundleNames、profileDir 和 auditLogPath,以及 MarketGateway Service。
Web 面板仅限于 web 平台(localhost),与 harness webServer 所服务的界面相同。Electron 桌面端(file:// + IPC 桥接)不在范围内,直到接入 fetch 桥接。
dsh.market 元数据契约(面向插件作者)
插件仓库通过标记 dsh-plugin 并在其 package.json 中声明以下内容来参与:
{
"name": "dsh-plugin-foo",
"version": "1.2.0",
"description": "short description", // 回退展示
"keywords": ["dev", "git"], // 回退分类
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" }, // 可安装所必需
"market": { // 可选丰富元数据
"displayName": "Foo",
"icon": "https://…",
"categories": ["productivity"],
"screenshots": ["https://…"]
}
}
}
bundle.patch 是硬性门槛。当 market 缺失时,回退到顶层 name/description/keywords 以及 GitHub 仓库字段(stars、updated_at、license)。
安全模型
安装社区插件会以当前用户的权限下载并运行任意代码。因此,此工具会:
- 在安装前显示 owner、stars、updated_at 和 license,并给出明确的第三方代码警告;
- 固定到某个提交(github:owner/repo#),绝不使用浮动分支,因此后续的强制推送无法移动已安装的内容;
- 向 $DSH_HOME/plugin-install.log 追加一条审计记录;
- 要求确认(交互式,--yes 可跳过)。
签名验证和允许列表尚未实现——dsh.bundle 目前没有签名机制——已作为未来工作跟踪。
开发
需要 Node ^22.19 || >=24、pnpm,以及预发布 harness 包(@deepseek-ai/dsh-app-boot@0.1.0-rc.6、@deepseek-ai/dsh-home-paths@0.1.0-rc.6)。
pnpm install
pnpm build # 构建引擎和 CLI 包
pnpm test
许可证
MIT扫码进群