Plugin Markets & Managers
dsh-marketplace-entry
yangyuehan058/dsh-marketplace-entry · ★ 0
A plugin marketplace next to the composer + button in the DeepSeek Harness Web G
安装
dsh plugin --profile web add github:yangyuehan058/dsh-marketplace-entryGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
A plugin marketplace right next to the "+" button in the DeepSeek Harness Web GUI — browse GitHub-sourced dsh community plugins and install them with one click.
一个放在 DeepSeek Harness 对话框 加号旁边的插件市场:浏览 GitHub 社区 分享的 dsh 插件,一键安装。
Features / 功能
- 🛒 Entry button beside the "+" — a market icon in the composer tool row,
exactly where the attach "+" lives (slot
conversation.input.left). - 🖼️ Browse the GitHub plugin sharing — the catalog is the aggregated
GitHub
topic:dsh-pluginregistry (DSH-Plugins-Marketplace, ~1300 installable plugins), fetched through the stableapi.github.comgit-trees → git-blobs path with a jsDelivr CDN fallback. - 🔍 Search + category filter + installed filter — 12 categories (vision / memory / coding / model / agent / conversation / …), sorted by ⭐.
- ⚡ One-click install — installs into the active profile via pnpm,
registers the bundle layer, and hot-patches
cordis.patch.ymlso the plugin activates without a restart. - ✅ Installed badges — reads the profile manifest and marks what you already have.
Requirements / 环境要求
- DeepSeek Harness Web GUI (
dsh web) - Node.js ≥ 18 (global
fetch) — pnpm is auto-detected (corepack preferred, then PATH pnpm; setPNPM_CMDto override) - Git (for GitHub-source installs)
Install / 安装
Method A — one-click via this very market (dogfooding)
# once this plugin is installed, use its own 🛒 button to install any other
dsh plugin — including itself from a local path.
Method B — standard bundle install
cd ~/.dsh/profiles/web
corepack pnpm add dsh-marketplace-entry
then add the loader entry to cordis.patch.yml (or run dsh plugin --profile web add dsh-marketplace-entry and restart).
Method C — from source (hot, no restart)
cd ~/.dsh/profiles/web
corepack pnpm add /path/to/dsh-marketplace-entry
# append the loader entry to cordis.patch.yml:
# - insert:
# - id: dsh-marketplace-entry
# name: 'dsh-marketplace-entry'
The loader hot-reloads the patch, so the 🛒 button appears immediately.
Usage / 使用
- Open a conversation in the Web GUI.
- Click the 🛒 button at the left end of the composer tool row (next to the "+" attach button).
- Search or filter the catalog, then click 安装 / Install on any plugin.
- The install runs pnpm in the background; on success the plugin is hot-activated — refresh the page to use it.
Configuration / 配置
| field | default | meaning |
|---|---|---|
profile |
web |
profile that installs target (loader entry config) |
Example loader entry:
- id: dsh-marketplace-entry
name: 'dsh-marketplace-entry'
config:
profile: web
Reliability notes (Windows) / 可靠性说明(Windows)
- pnpm is always launched through its real JS entry via
node, nevercmd /c <something>.cmd. Wrapping a.cmdshim in cmd.exe on Windows can crash the child with the libuv assertion!(handle->flags & UV_HANDLE_CLOSING) ... src\win\async.c. - Before running pnpm the npm registry metadata is probed: packages whose latest dist-tag points at a broken/missing version (unpublished or corrupted metadata) fail with a clean message instead of a crash.
spawnSync(notexecFileSync) is used so nonzero exits are normal results, and assertion noise on stderr is filtered out of user-facing messages.
Development / 开发
npm install # install dev deps (none required beyond peer)
node --test test/ # unit tests for core.js
Structure:
lib/index.js— Cordis host plugin:webServerroutes (/dsh-marketplace/registry,/dsh-marketplace/installed,/dsh-marketplace/install)lib/core.js— pure logic: registry fetch, npm probe, pnpm launch, profile reconcile + hot patch (no cordis imports, unit-testable)client/client.js— hand-authored CJS browser bundle (React, no build step)cordis.patch.yml— bundle loader patch
License
MIT