cyber-moshen/dsh-plugin-market
Plugin Workshop for the DeepSeek Harness web GUI — a curated plugin catalog that lives in this very repo.
catalog 简介 / catalog descriptioncatalog description:DSH插件市场,自动更新,热重载插件,多种排序方案,快速管理和安装插件
项目介绍Project Overview
DSH 插件市场为 DeepSeek Harness 网页界面提供“插件工坊”页面,集中展示 data/plugins.json 中的社区插件。它支持按名称、作者、标签搜索与筛选,提供一键安装/更新(通过 dsh plugin CLI)、实时 GitHub 星级与维护状态、GitHub 仓库跳转、GitHub Token 提升 API 限额、启动自动更新、纯 JS 插件热重载,以及含预安装审计、引导组合校验和自动回滚的安全网。需注意:原生模块插件仍需重启方可生效。
DSH Plugin Market adds a "Plugin Workshop" page to the DeepSeek Harness web GUI, serving a curated catalog from this repo's data/plugins.json. It offers name/author/tag search, one-click install/update via the dsh plugin CLI, live GitHub stars and maintenance signals, a GitHub repo shortcut, an optional GitHub Token for higher rate limits, boot-time auto-update, hot-reload of pure-JS plugins, and a three-layer safety net (pre-install audit, boot-composition check, automatic rollback). Caveat: plugins shipping native .node modules still require a restart.
请帮我了解并安装插件:【dsh-plugin-market】【https://github.com/cyber-moshen/dsh-plugin-market】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add @cyber-moshen/dsh-plugin-market
把 cyber-moshen/dsh-plugin-market 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
@cyber-moshen/dsh-plugin-market
Plugin Workshop for the DeepSeek Harness web GUI — a curated plugin catalog that lives in this very repo.
What it is
A Settings → Plugin Workshop (插件工坊) page with:
- a card grid of community plugins — each card shows tags (click a tag to search it), GitHub stars, last-commit freshness with a colored maintenance signal, and the installed version / update state;
- search across names, authors and tags, plus an always-visible filter bar (installed state, sort by stars/commit, maintenance state);
- one-click install / update (runs the real
dsh pluginCLI in the background); - a GitHub icon button on every card jumping straight to the repo;
- a settings modal with a GitHub Token field (lifts API rate limits) and a startup auto-update toggle;
- the whole workshop follows the app's own language (Settings → General → Language: 中文 / English);
- a frame-wide toast after a boot-time auto-update — pure-JS plugins hot-reload in place, plugins with native modules ask for a restart.
- hot reload — installing/updating/uninstalling a pure-JS plugin applies it to the running process immediately and refreshes the page; no restart needed. Plugins shipping native modules (
.node) are detected and prompt for a restart instead. - boot-safety net on every install — a pre-install dependency audit plus an automatic post-install boot-composition check with rollback, so a broken plugin can never leave the profile unbootable (see Safety net).
The catalog is this repo's own data/plugins.json — anyone can add a plugin by opening a pull request (see Submitting a PR). The plugin fetches it live at runtime; there is no offline cache or snapshot.
Install
One command from anywhere (once published to npm):
dsh plugin --profile web add @cyber-moshen/dsh-plugin-market
From a local checkout:
dsh plugin --profile web add ./dsh-plugin-market -w
Restart the web server, then open Settings → Plugin Workshop. After that, installing/updating pure-JS plugins needs no restart.
Usage
The workshop page
- Open Settings → Plugin Workshop.
- Search — matches plugin name, author and tags. Click a
#tagon a card to search that tag. - Filter bar (always visible under the search box):
- Installed — All / Installed / Not installed
- Sort — Stars ↑ · Stars ↓ · Commit ↑ · Commit ↓
- Maintenance — All / Active / Stale / Unmaintained / Unknown
- Card actions:
- ⭐ Stars and 🕓 last commit are fetched live from the GitHub API; the maintenance tile is colored: green = pushed within 3 months, amber = within a year, red = older / archived.
- Not installed →
Installbutton (installs via the npm package). - Installed, newer version available →
Installed vX+Update → vY. - Installed, current → just
Installed vX. - Installed plugins also get an Uninstall button next to
Update. - The GitHub icon (top-right) opens the repo page.
Settings modal (the Settings button next to the search box)
- GitHub Token (optional) — paste a token to raise the API rate limit from 60 requests/hour to 5000/hour. See How to get a token. The
GITHUB_TOKEN/GH_TOKENenvironment variables take precedence. Saving an empty box never clears a stored token; use theClearbutton to remove it. - Auto-update installed plugins on startup — when enabled, the web server checks installed plugins after boot and updates any with newer versions; pure-JS plugins hot-reload in place, native ones show a restart toast.
Safety net
Installing a bad plugin that bricks DSH at the next boot is the deadliest failure mode for a market tool. dsh plugin automatically mounts every dependency that declares dsh.bundle as its own profile layer, so "kitchen-sink" aggregate plugins (e.g. the dsh-web-ui family) routinely duplicate loader entries (duplicate loader entry id: ui-skin-center) and kill the whole process on startup. The workshop defends against this on three levels:
- Pre-install dependency audit (bundle fan-out detection) — before installing, the target's dependency tree is fetched and every package that also declares
dsh.bundleis listed. If "fan-out" is detected (one plugin would enable many profile layers at once), a clear warning is shown and the install requires an explicit "I understand the risk" confirmation. - Post-install boot-composition check (the authoritative gate) — after
pnpmfinishes and before any hot-apply, the new bundle stack is composed in a throwaway subprocess with the exact same loader/include machinery the real boot uses (scripts/compose-check.mjs). Duplicate loader ids, invalid config, and missing packages all surface there. - Automatic rollback — when the check fails, the profile's
package.jsonis restored from a pre-op snapshot and the package is uninstalled; the task shows "auto-rolled back" with the reason. The profile is never left in an unbootable state, no matter what was installed.
There is also an offline repair script for profiles that are already broken (e.g. a plugin installed from the CLI directly):
node <dsh-plugin-market checkout>/scripts/repair.mjs --profile web
It repeatedly runs the composition check and removes non-base bundle layers until the profile composes again.
How to get a GitHub Token
- Go to https://github.com/settings/tokens (Settings → Developer settings → Personal access tokens).
- Click Generate new token (classic).
- Give it a name (e.g.
dsh-plugin-market), set an expiry. - Tick the
reposcope (that is all this plugin needs). - Click Generate token and copy it now (it is shown only once).
- Paste it into the workshop Settings modal and press Save. A
✓ Token saved (···xxxx)line appears once a token is stored.
Keep the token private — it grants write access to your repositories.
Submitting a PR to add your plugin
The catalog is a single JSON file: data/plugins.json.
- Open
data/plugins.jsonin this repo on GitHub. - Click the pencil (Edit) button.
- Copy an existing entry, change it to your plugin, insert it inside
"plugins": [...]. - Commit changes… → Propose changes → Create pull request.
A validation workflow runs on every PR and fails on malformed JSON or missing fields (run it locally with node scripts/validate.mjs data/plugins.json).
Entry shape (keep it simple — everything else is derived from the URL):
{
"url": "https://github.com/you/your-plugin", // your repo URL (required, unique)
"tags": ["记忆增强", "UI美化"], // 0-5 searchable tags (optional)
"npm": "your-npm-package" // required — install/update go through the npm package
}
The card name, author and stats are all derived from url; npm is required — installation and updates go through the npm package (GitHub installs are not used).
See CONTRIBUTING.md for details.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS