
DSH Marketplace
☆ 0An open-source plugin marketplace for DeepSeek Harness (DSH). Browse, search, and install community plugins with one dsh command.
Get this plugin
Review the source, then continue to the publisher.
About this plugin
Source snapshot 8/15/2026DSH Marketplace
An open-source plugin marketplace for DeepSeek Harness (DSH).
Browse, search, and install community plugins with one copy-paste dsh command.
Everything in DSH is a plugin. This marketplace is the storefront: a verified, auditable index of plugins you can install straight into your
dshprofiles.
✨ Features
- Static, auditable registry — every plugin is a small JSON file (
registry/plugins/<id>/plugin.json) reviewed through a normal GitHub PR. No database, no server to run. - One-command install — every plugin card gives you the exact install command with your
choice of profile (
web,headless, custom), honoring DSH's real plugin mechanism:dsh plugin --profile <name> add <spec>. - Supports all DSH install sources — npm packages, Git-hosted plugins
(
github:owner/repo), and local paths. - Verified badge — maintainers/community can mark a plugin
verifiedafter review, following a governance model similar to curated marketplace projects. - Search & categories — instant client-side search over names, descriptions, tags, and maintainers, plus category filtering (Skills, Tools, Web, Infrastructure, Integration, Workflow, Experimental).
- Self-hostable — pure static site.
npm run build, then hostweb/distanywhere (GitHub Pages, Netlify, Nginx, etc.). - Fast — the UI loads a single gzipped
index.json.
🧩 How DSH plugins work (the model we build on)
DSH is built on Cordis: everything is a plugin. Plugins are npm packages managed by pnpm in a profile directory. To install one:
# npm package
dsh plugin --profile web add some-plugin-package
# Git-hosted plugin
dsh plugin --profile web add github:owner/repo
A plugin contributes a config layer by declaring "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
in its package.json; when installed, dsh wires that patch into the profile's dependency
stack automatically. Discoverability uses the dsh-plugin
GitHub topic. This marketplace indexes those plugins so people can find them.
📦 Project structure
dsh-marketplace/
├── registry/
│ ├── plugins/
│ │ └── <id>/plugin.json # one manifest per plugin (the auditable source of truth)
│ └── ...
├── schema/
│ └── plugin.schema.json # JSON Schema for plugin manifests
├── scripts/
│ ├── validate-registry.mjs # validate all manifests (schema + invariants)
│ ├── build-registry.mjs # aggregate manifests -> web/public/index.json (+ .gz)
│ └── build-meta.mjs # write web/public/meta.json build metadata
├── web/
│ ├── src/ # React app (search, categories, detail view)
│ ├── public/ # generated index.json, favicon
│ └── vite.config.js
└── .github/workflows/ # CI: validate, build, deploy to GitHub Pages
🚀 Getting started
Requires Node.js ≥ 18 and a recent dsh installation.
# 1. Install dev dependencies (Vite + React)
npm install
# 2. Validate the registry
npm run validate
# 3. Regenerate the combined index and build the static site
npm run build
# 4. Serve the built site locally
npm run serve # dev server on :5173
npm run preview # preview the production build on :4173
Open http://localhost:5173 in a browser.
Deploying
The build outputs a fully static site to web/dist. Host it anywhere static files are served:
npm run build
# then upload web/dist/ to your host, or use the included GitHub Actions workflow
The homepage and plugin entries live in registry/. The index.json (and .gz companion)
are regenerated on npm run build and can be committed so the site works immediately after clone.
🧱 Verifying install commands
Install commands are synthesized from each manifest's install field. Under the hood DSH
resolves them to real dsh plugin --profile <name> add <spec> calls, which forward to pnpm.
Git-hosted plugins that ship sources build during install via their prepare script; if a
pnpm allow-build prompt appears, copy the printed key into the profile's pnpm-workspace.yaml
and re-run (see the DSH reference docs).
📐 Registry schema
Each registry/plugins/<id>/plugin.json follows schema/plugin.schema.json.
Minimal example:
{
"id": "my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"description": "What it does.",
"author": { "name": "you", "url": "https://github.com/you" },
"license": "MIT",
"category": "tools",
"tags": ["example"],
"compatibility": { "dsh": ">=0.1.0", "platforms": ["linux", "macos", "windows"] },
"install": {
"target": "npm",
"spec": "my-plugin",
"command": "dsh plugin --profile {profile} add my-plugin"
},
"verified": false,
"repository": "https://github.com/you/my-plugin"
}
install.target is one of npm | git | local. {profile} is replaced by the user's
profile of choice (default: web). See CONTRIBUTING.md to add a plugin.
🌱 Design inspiration
This project synthesizes good ideas from the growing community around DSH:
- Verified / auditable registry — inspired by curated plugin-marketplace efforts
(
dsh-plugin-marketplace) that gate listings behind review. - Static, PR-reviewable JSON index — from the "thin console over a static registry" approach used by community registry tooling, keeping the source of truth in Git.
- Visual browse/search/install UI — from visual plugin marketplaces, adapted to DSH's
real
dsh plugin addinstall path. - Scenario-first categories (skills like TDD/debugging/planning) — from curated skill
collections such as
superpowers-dsh. dsh-plugintopic discoverability — lifted from the official DSH contributing guide.
🤝 Contributing
Yes, please! Add your plugin, improve the UI, or fix docs.
- Add a plugin: create
registry/plugins/<id>/plugin.jsonand open a PR. Full guide inCONTRIBUTING.md. - Governance: statuses like
verifiedare assigned by maintainers after review; a successful CI run (npm run verify) is required to merge.
📄 License
MIT. See LICENSE.
🔗 Related
- DeepSeek Harness — the harness itself
dsh-plugintopic — community plugin discoverability