Plugin Markets & Managers

dsh-marketplace-entry

yangyuehan058/dsh-marketplace-entry · ★ 0

yangyuehan058

A plugin marketplace next to the composer + button in the DeepSeek Harness Web G

License
MIT
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:yangyuehan058/dsh-marketplace-entry

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Features / 功能
  2. Requirements / 环境要求
  3. Install / 安装
  4. Method A — one-click via this very market (dogfooding)
  5. Method B — standard bundle install
  6. Method C — from source (hot, no restart)
  7. Usage / 使用
  8. Configuration / 配置
  9. Reliability notes (Windows) / 可靠性说明(Windows)
  10. Development / 开发
  11. License

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 插件,一键安装。

market license

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-plugin registry (DSH-Plugins-Marketplace, ~1300 installable plugins), fetched through the stable api.github.com git-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.yml so 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; set PNPM_CMD to 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 / 使用

  1. Open a conversation in the Web GUI.
  2. Click the 🛒 button at the left end of the composer tool row (next to the "+" attach button).
  3. Search or filter the catalog, then click 安装 / Install on any plugin.
  4. 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, never cmd /c <something>.cmd. Wrapping a .cmd shim 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 (not execFileSync) 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: webServer routes (/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