Development & Runtime

dsh-plugin-market

hskelp9527-pixel/dsh-plugin-market · ★ 1

hskelp9527-pixel

DSH (DeepSeek Harness) plugin market tab: deepseek-harness GitHub catalog with Chinese-translated descriptions

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:hskelp9527-pixel/dsh-plugin-market

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

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Install
  2. Uninstall
  3. How it works
  4. Development
  5. License

English | 简体中文

A Plugin market tab plugin for the DSH (DeepSeek Harness) Web settings.

The catalog merges three sources:

  1. Official — the deepseek-ai/deepseek-harness GitHub repository (every packages/*/*/package.json);
  2. Community picks — the registry (data endpoint the community catalog/plugins.json), hundreds of community plugins with bilingual descriptions and install commands;
  3. Community registry — the PLUGINS.md table of .
  • Plugin names stay as-is; Chinese descriptions come first with the English original on hover.
  • Every card shows its source (official / community pick / registry) with a direct GitHub link for community plugins.
  • Category filter: chips with counts that always sum to the catalog total; combines with search.
  • Live refresh: a refresh button plus a "fetched at HH:MM:SS" timestamp; auto-refresh every 10 minutes while the tab stays open; host-side catalogs are cached for 10 minutes.
  • One-click install: the install button really runs dsh plugin --profile <name> add <spec> (npm and github: specs both work), appends the loader config on success and prompts for a restart.
  • One-click uninstall: profile-installed plugins can be removed (dsh plugin --profile <name> remove <pkg>) together with their loader rows; in-box official packages can only be disabled.
  • Performance: the 1000+ item catalog renders in slices with a host-side 10-minute cache; filtering and search stay instant.
  • Installed plugins can be enabled / disabled with one click (written to the profile's cordis.patch.yml, applied after restart).
  • Falls back to the locally installed official packages when GitHub is unreachable.

Install

dsh plugin --profile web add github:hskelp9527-pixel/dsh-plugin-market

Restart dsh web, then open Settings → Plugins → Plugin market.

Uninstall

dsh plugin --profile web remove dsh-plugin-market

How it works

Host half (lib/index.js): PluginMarketService extends TypertRemoteService and exposes three plain-JSON RPCs:

  • pluginMarket/listCatalog — fetch the GitHub catalog (trees API + each package.json), merge local install state, apply the Chinese dictionary
  • pluginMarket/setPluginEnabled — write a disabled override into cordis.patch.yml
  • pluginMarket/installPlugin — insert a loader row for packages already present in local node_modules

The remote surface is intentionally SRC (source-reflection) only — no generated typert artifact is required.

Browser half (lib/client.js): registers the market tab into the settings.plugins.tab slot; zh/en dictionaries go through the official locale service.

Chinese dictionary (DESCRIPTION_ZH): covers every @deepseek-ai/* package in the official repo (~190 entries); untranslated entries fall back to English — contributions welcome.

Development

No build step: the two files under lib/ are the source. Syntax check:

node --check lib/index.js && node --check lib/client.js

License

MIT