dsh-marketplace-entry

by yangyuehan058

0 插件市场与管理github收录于 08-23

DeepSeek Harness Web GUI 编辑器 + 按钮旁的插件市场入口

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

安装

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

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

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

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

原始 README: https://github.com/yangyuehan058/dsh-marketplace-entry/blob/main/README.md ↗