dsh-plugin-market
开发工具 活跃维护

dsh-plugin-market

kimiya1010/dsh-plugin-market

Web界面的插件市场工具,支持检索GitHub开源插件仓库,提供可视化搜索入口与一键安装能力,无需复杂配置即可快速完成插件部署与本地更新。

2
Stars 标星
1
Forks 分支
2
Watchers 关注
0
Open Issues
JavaScript
主要语言
None
开源协议
23 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:kimiya1010/dsh-plugin-market
git clone https://github.com/kimiya1010/dsh-plugin-market.git
git clone git@github.com:kimiya1010/dsh-plugin-market.git
README.md master

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=<keyword> — 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#<sha>) when you want to prevent upstream changes from
silently altering behavior.

License

MIT