deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
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.
registry/plugins/<id>/plugin.json)
reviewed through a normal GitHub PR. No database, no server to run.web, headless, custom), honoring DSH's real plugin mechanism:
dsh plugin --profile <name> add <spec>.github:owner/repo), and local paths.verified after review,
following a governance model similar to curated marketplace projects.npm run build, then host web/dist anywhere
(GitHub Pages, Netlify, Nginx, etc.).index.json.plugin/client/) that renders a Marketplace tab inside Settings → Plugins
of the DSH web GUI, so you can browse the catalog from within the harness itself.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.
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
├── plugin/
│ └── client/ # DSH client plugin — Marketplace tab in the web GUI settings
└── .github/workflows/ # CI: validate, build, deploy to GitHub Pages
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.
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.
The repository ships a real DSH client plugin under plugin/client/
that renders a Marketplace tab inside Settings → Plugins of the running web
GUI. It mounts into the shared settings.plugins.tab slot and shows the embedded
catalog with search and per-plugin install commands — fully offline.
To install it into a profile (e.g. web):
pnpm add file:./plugin/client # from the repo root
# then add a plugin row to "$DSH_HOME/profiles/web/cordis.patch.yml":
# - insert:
# - id: dsh-market
# name: '@dsh-marketplace/dsh-market'
# and restart the web profile (pnpm dsh web)
Client plugin metadata is cached until restart, so a profile restart is required
after adding it. Building the bundle from source requires the DSH workspace
toolchain (tsdown + the @deepseek-ai workspace packages); the built
lib/client.js is committed so install works without a rebuild. See
plugin/client/README.md.
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).
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.
This project synthesizes good ideas from the growing community around DSH:
dsh-plugin-marketplace) that gate listings behind review.dsh plugin add install path.superpowers-dsh.dsh-plugin topic discoverability — lifted from the official DSH contributing guide.Yes, please! Add your plugin, improve the UI, or fix docs.
registry/plugins/<id>/plugin.json and open a PR. Full guide in
CONTRIBUTING.md.verified are assigned by maintainers after review; a successful
CI run (npm run verify) is required to merge.MIT. See LICENSE.
dsh-plugin topic — community plugin discoverabilityCLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: plugin-marketplace。