dsh-plugin-marketplace

26Star4Fork1Issue0Watching

把 GitHub `dsh-plugin` 话题拉成可搜索、可一键安装/更新/卸载的 DSH 插件市场设置面板,并给 agent 配齐四个市场工具。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
master
ai-agentcordisdeepseekdeepseek-harnessdshdsh-pluginpluginplugin-marketplace

安装

$ dsh plugin --profile web add github:AwesomeHou/dsh-plugin-marketplace

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

对话式安装

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

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

一句话定位

DeepSeek Harness 的「插件市场」入口:把 GitHub 上 dsh-plugin 话题里的所有仓库拉成可搜索的列表,让你在设置面板里一键安装、更新、停用、卸载插件,agent 也可以自己调用同名工具来搜装。

核心能力

  • 同步 GitHub dsh-plugin 话题(默认每页 50、上限 100),支持分页加载更多和关键词搜索,搜索走 GitHub 自己的 q,所以搜的是整个话题而不仅是已加载的页
  • 卡片一键安装,启动异步任务并实时显示阶段、百分比、已下载字节、网速、ETA、最近几行日志,可中途取消
  • 区分根级插件与 monorepo 工作区:已发布到 npm 的优先装 npm 版(免 GitHub 拉取、运行时依赖一并装好),monorepo 根则克隆源码、用 corepack pnpm 构建后再 link: 注册
  • 「已安装」标签页管理第三方插件:检查最新版本、更新、停用/启用、卸载;本插件自己有新版本时在两个标签页都显示横幅
  • 给 agent 注册 4 个同名工具:market_search / market_install / market_installed / market_update,让模型能自己搜索并安装插件

技术实现

  • 语言: JavaScript(ESM,纯 Node 内置模块,无 npm 依赖)
  • 关键依赖: node:child_process(调 dsh plugin)、node:net(回路代理实时统计下载字节和速度)、node:fs + node:path(读写 profile manifest、克隆源码到 $DSH_HOME/marketplace-src)、fetch(调 GitHub Search / npm registry / 翻译服务)
  • 架构模式: 双半 bundle 插件 —— Host 半(lib/index.js)通过 cordis.patch.yml 把自身注入 Loader,注册 /api/market/* 同源 HTTP 端点和模型工具;Client 半(lib/client.js)通过 dsh.client 声明作为浏览器模块加载,用 React 注册两个 settings.plugins.tab;两端通过 fetch 通信(永久插件无沙箱 RPC)
  • 入口文件: lib/index.js(host 注入 webServer / timer / tools),lib/client.js(client 注入 slots / sessions / workspaces

适用场景

  • 你装了 DSH 之后想「一键发现并安装社区插件」,而不是手动 git clone 然后改 package.json
  • 你想让 agent 也能自己搜索并安装插件(比如用户说「给我装一个能翻译网页的插件」),agent 通过 market_search + market_install 即可完成。
  • 你装了多个第三方插件后需要统一管理:看哪些有新版本、停用不用的、卸载想换掉的,不用去改 profile manifest。

前置依赖与兼容性

依赖最低版本说明
DSH Harness未声明需暴露 webServer / timer / tools 服务与 settings.plugins.tab 槽位、客户端 slots/sessions/workspaces 服务;未在 package.json 显式声明
Node未声明源码使用了 AbortSignal.timeout()(Node ≥17.3)和全局 fetch(Node ≥18),未在 package.json#engines 显式声明
pnpm任意安装子进程注入 CI=true(pnpm ≥10 无 TTY 不再无限等交互提示),并通过 --config.store-dir 锁定 store 路径防跨大版本漂移
git任意处理 monorepo 工作区时克隆/拉取 GitHub 仓库
平台跨平台Windows 走 taskkill /T /F 杀进程树,POSIX 走 kill(-pid),对两种环境都有专用分支
原生模块全部使用 Node 内置模块,零原生依赖

安装方式

dsh plugin --profile web add github:AwesomeHou/dsh-plugin-marketplace

配置项

配置类型说明默认值
DSH_HOME环境变量决定 web profile 目录($DSH_HOME/profiles/web)和 marketplace 源码/工作区目录~/.dsh(harness 默认)
DSH_MARKET_STALL_MS环境变量安装停滞看门狗阈值:子进程这么长时间没有任何输出或字节增长就被杀进程树并直接重连一次(秒)120

说明:以上两个环境变量都不是「必填配置」,不设就用默认值。插件本身没有独立的配置文件。

常见问题

Q: 装完之后要重启 harness 吗?

A: 要。本插件属于永久(bundle)插件,安装/更新/卸载、停用/启用、还有本插件自己的更新,都需要重启 DSH harness 才会被 Loader 真正加载,页面顶部会显示「重启后生效」的提示。

Q: 「已安装」标签页里为什么只有我自己后装的插件,harness 自带的去哪儿了?

A: 故意这样设计的。harness 自带的内置插件在 profile 模板的 dsh.profile.bundles 里,不能关闭或卸载;只有你后装进 dependencies 的第三方插件才会出现在「已安装」里,页面顶部有一行声明提醒这件事。

Q: 装某个插件卡在「解析依赖 8%」十几分钟不动,怎么回事?

A: 多数是网络问题(GitHub 不可达或过慢)。默认 120 秒无进度会被停滞看门狗自动杀掉并直接重连一次;再卡就快速失败并提示「检查网络后重试,或改用『让 agent 安装』」。想拉长等待可设环境变量 DSH_MARKET_STALL_MS=300(秒)。

Q: 「让 agent 安装」按钮什么时候出现?安全吗?

A: 直装失败时出现。它的实现是:host 先确保一个专属工作区目录存在($DSH_HOME/marketplace-install),再由 client 调 runtime 的 workspaces.create / sessions.create / sessions.open 在该工作区新开一个会话并切过去,把安装任务发给那个新会话 —— 不污染当前会话,也不用你手动选工作区。如果 runtime 的会话/工作区服务不可用,会回退为把任务发给当前会话。

Q: 插件市场怎么知道自己有新版本?会不会误判?

A: 它读自己 package.json 里声明的 repository 字段,对照 GitHub 默认分支的 version,有新版就在两个标签页顶部显示 vX → vY · 立即更新。它显式走自己的 GitHub 仓库而不是裸 npm 名 —— 因为 dsh-plugin-marketplace 这个名字在 npm registry 另有他人持有,走裸名会拉到无关包。

上手难度

入门 — 安装一行命令重启即用;遇到安装失败直接照错误文案操作或点「让 agent 安装」,无需手动改 manifest 或配置文件。

已知问题与限制

  • 仅支持 web profile 的插件管理(CLI/headless profile 不在覆盖范围)
  • 安装走 dsh plugin add -w,要求目标 profile 是有效的 pnpm workspace(需 pnpm-workspace.yaml);若不是,会给出明确报错,但本插件无法自动帮你创建工作区文件
  • 声明了 @deepseek-ai/*@^0.1.0-rc.6 这类预发布对等依赖的插件,直装会被 pnpm 拒绝(ERR_PNPM_NO_MATCHING_VERSION),需走「让 agent 安装」兜底
  • 已装插件的「最新版本」每 15 分钟缓存一次,列表加载/已装查询可能略滞后于 npm registry 或 GitHub
  • 网络极差时停滞看门狗可能误杀正常的长依赖解析(可通过 DSH_MARKET_STALL_MS 调大阈值)
  • 「让 agent 安装」需要 client runtime 的 sessions / workspaces 服务都可用;服务缺失时回退为发给当前会话,会污染当前对话

收录徽章

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/AwesomeHou/dsh-plugin-marketplace)

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

返回插件目录