kimiya1010/dsh-plugin-market0

dsh-plugin-market

DeepSeek Harness 插件市场:支持直接在网页端搜索并一键安装或卸载 GitHub 上的 DSH 插件。

AI 分析

核心用途是免去命令行操作,实现插件的可视化管理。适合希望快速发现、安装和卸载第三方 DSH 插件的普通用户。

套件
dsh-plugin-market
版本
0.1.0
最近更新
2026年8月15日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kimiya1010/dsh-plugin-market

dsh-plugin-market

English | 简体中文

A DeepSeek Harness (DSH) plugin that lets users search for and install other plugins directly from the web GUI — no need to drop to a command line.

It adds a "Plugin market" tab under Settings → Plugins:

  • 🔍 Search GitHub repositories tagged dsh-plugin (sorted by stars)
  • 📋 Show each plugin's name, description, and star count, with a link to its GitHub repo
  • ⚡ One-click install (internally runs dsh plugin --profile web add github:owner/repo)
  • 🗑️ One-click uninstall of installed third-party plugins
  • 📦 List the plugins currently installed in the profile (dsh.profile.bundles)

Install

Install it like any other DSH bundle:

# Install into your web profile straight from GitHub
dsh plugin --profile web add github:kimiya1010/dsh-plugin-market

# Restart the web GUI to activate it
dsh web

Or from a local checkout:

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

Note: this plugin is plain JavaScript with no prepare build script, so a github: install needs no allowedBuilds entry — it works out of the box.

Directory layout

dsh-plugin-market/
├── package.json        # dsh.bundle (patch layer) + dsh.client (browser half) declaration
├── cordis.patch.yml    # inserts the loader row into the composition
├── index.js            # Host half: registers the /api/plugin-market HTTP bridge + search/install/uninstall
└── client.js           # Client half: Settings "Plugin market" tab UI

How it works

  • Host half (index.js): injects the webServer service and registers a same-origin prefix route /api/plugin-market:
    • GET /api/plugin-market/search?q= — calls the GitHub Search API (topic:dsh-plugin)
    • POST /api/plugin-market/install (body { "spec": "github:owner/repo" }) — runs dsh plugin add
    • GET /api/plugin-market/list — reads the profile's dsh.profile.bundles
    • POST /api/plugin-market/remove (body { "name": "…" }) — runs dsh plugin remove
  • Client half (client.js): registers the "Plugin market" page into the settings.plugins.tab slot and calls the HTTP bridge over same-origin fetch, rendering the search box, result list, install/uninstall buttons, and the installed list.

Because the bridge lives on the port the web GUI itself listens on (same origin), there is no cross-origin issue and no change to the framework's own Remote descriptors.

Publishing your own fork

Push this repo to your own GitHub and tag it with dsh-plugin so other users' plugin markets can find it. You can also publish to npm:

npm publish --access public

Security note

Installing a third-party plugin runs its author's code on your machine (a prepare script may run at install time, and the bundle is loaded at runtime). Only install plugins from sources you trust, and pin to a commit (github:owner/repo#) when you want to prevent upstream changes from silently altering behavior.

License

MIT


简体中文

一个 DeepSeek Harness(DSH)插件:让使用者在 Web 界面里直接搜索并安装其他插件,无需离开界面去敲命令行。

它在「设置 → 插件」里新增一个 「插件市场」 标签页:

  • 🔍 搜索 GitHub 上带 dsh-plugin 主题的插件仓库(按 star 排序)
  • 📋 展示插件名称、描述、星标数,可跳转到 GitHub 仓库
  • ⚡ 一键安装(内部等价于 dsh plugin --profile web add github:owner/repo
  • 🗑️ 一键卸载已安装的第三方插件
  • 📦 展示当前 profile 已安装的插件(dsh.profile.bundles

安装

像安装任何其他 DSH bundle 一样:

# 从 GitHub 安装到本地 web profile
dsh plugin --profile web add github:kimiya1010/dsh-plugin-market

# 重启 web 界面后生效
dsh web

或者本地 checkout 安装:

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

说明:本插件是纯 JavaScript、prepare 构建脚本,从 github: 安装时无需在 pnpm-workspace.yaml 中放行任何构建,开箱即用。

目录结构

dsh-plugin-market/
├── package.json        # dsh.bundle(补丁层)+ dsh.client(浏览器半程)声明
├── cordis.patch.yml    # 把 loader 行 insert 进组合
├── index.js            # Host 半程:注册 /api/plugin-market HTTP 桥 + 搜索/安装/卸载
└── client.js           # Client 半程:设置页「插件市场」标签页 UI

工作原理

  • Host 半程index.js):注入 webServer 服务,注册一个同源前缀路由 /api/plugin-market,提供四个端点:
    • GET /api/plugin-market/search?q= — 调 GitHub Search API(topic:dsh-plugin
    • POST /api/plugin-market/install(body { "spec": "github:owner/repo" })— 执行 dsh plugin add
    • GET /api/plugin-market/list — 读取当前 profile 的 dsh.profile.bundles
    • POST /api/plugin-market/remove(body { "name": "…" })— 执行 dsh plugin remove
  • Client 半程client.js):在 settings.plugins.tab 槽位注册「插件市场」页,用 同源 fetch 调用上面的 HTTP 桥,渲染搜索框、结果列表、安装/卸载按钮与已安装清单。

因为 HTTP 桥挂在 Web 界面自己监听的端口上(同源),不存在跨域问题,也不需要改动框架自身的 Remote 描述符。

发布你自己的版本

把本仓库推到你自己的 GitHub,并给它加上 dsh-plugin 主题,就能被其他用户的插件市场搜索到。也可以发布到 npm:

npm publish --access public

安全提示

安装第三方插件意味着其作者的代码会在你的机器上执行(安装期可能跑 prepare,运行期加载 bundle)。 请只安装你信任来源的插件,必要时固定到某个 commit(github:owner/repo#)以避免上游改动静默变更行为。

License

MIT