Nexus-Aethra/DSH-plugin-switch ↗★ 1
dsh-plugin-switch
DSH plugin marketplace: browse the GitHub dsh-plugin topic, view manifests, and install community plugins.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Nexus-Aethra/DSH-plugin-switch说明文档
阅读完整 README ↗dsh-plugin-switch
A marketplace for community DeepSeek Harness plugins. The plugin adds a Marketplace tab inside Settings → Plugins, browses the official dsh-plugin GitHub topic, and installs chosen repositories through dsh plugin add.
Before installing, Marketplace reads the repository's Git tree. Repositories with cordis.patch.yml are installed as profile plugins. Repositories with a root SKILL.md, .dsh/skills//SKILL.md, or .agents/skills//SKILL.md are installed as DSH skills under ~/.dsh/skills//; no package lifecycle scripts run for this path.
Status
This iteration ships both halves:
- Host (
src/index.ts) — talks to GitHub REST, caches the search for ten minutes, reads each repo's optionalplugin.json, and spawnsdsh plugin addas a child process for installs. Exposesctx.marketplacefor the client. - Client (
src/client/) — registers a tab into the officialsettings.plugins.tabslot , renders the search box + repo list + install buttons, and calls the host service through the cordis DI proxy.
pnpm install && pnpm build succeeds end-to-end on this checkout:
[CJS] lib/client.js 9.91 kB │ gzip: 3.30 kB
[ESM] lib/index.js 5.13 kB │ gzip: 2.18 kB
[ESM] lib/invariant.js 0.73 kB │ gzip: 0.43 kB
Architecture
DSH-plugin-switch/
├── package.json # npm package + dsh.bundle + dsh.client manifest
├── pnpm-workspace.yaml # own workspace; allowBuilds for the prepare hook
├── cordis.patch.yml # the layer applied when a profile lists this bundle
├── tsconfig.json # ESM + JSX, no monorepo paths
├── tsdown.config.ts # host (ESM Node) + client (CJS browser) builds
├── src/
│ ├── index.ts # host half: GitHub fetch, cache, ctx.provide('marketplace')
│ ├── invariant.ts # companion; no runtime invariant (see file JSDoc)
│ └── client/
│ ├── index.tsx # client half: registers settings.plugins.tab
│ ├── MarketplaceTab.tsx # UI body (search + list + install)
│ ├── MarketplaceTab.module.css
│ └── css-modules.d.ts
└── README.md
Why host + client
DSH plugins are roles in capability seams . This plugin needs both roles: