packages/dsh-plugin-manager
zhu1090093659/dsh-web设置 → 插件 分区里的插件管理 Tab:从 npm/git 安装带进度、下次启动生效的启停开关、安装冲突对账可撤销、失败一键转交修复会话。
DeepSeek Harness 插件市场:在 Web 界面里搜索并一键安装 GitHub 上的 dsh-plugin 插件。
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:
dsh-plugin (sorted by stars)dsh plugin --profile web add github:owner/repo)dsh.profile.bundles)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
preparebuild script, so agithub:install needs noallowedBuildsentry — it works out of the box.
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
index.js): injects the webServer service and registers a same-origin
prefix route /api/plugin-market:
GET /api/plugin-market/search?q=<keyword> — calls the GitHub Search API (topic:dsh-plugin)POST /api/plugin-market/install (body { "spec": "github:owner/repo" }) — runs dsh plugin addGET /api/plugin-market/list — reads the profile's dsh.profile.bundlesPOST /api/plugin-market/remove (body { "name": "…" }) — runs dsh plugin removeclient.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.
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
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#<sha>) when you want to prevent upstream changes from
silently altering behavior.
MIT