yibiner/dsh-plugin-list-plus1

dsh-plugin-list-plus

DSH 网页设置中的增强版插件列表:提供信任等级分类、可折叠分组以及详尽的单插件信息卡片。

AI 分析

核心用途是提升插件列表的可读性与管理体验。适合安装了较多第三方插件、需要清晰辨别插件来源与版本的用户。

包名
dsh-plugin-list-plus
版本
0.1.0
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yibiner/dsh-plugin-list-plus

dsh-plugin-list-plus

An elevated Plugin list for DeepSeek Harness Web Settings — trust tiers, collapsible groups, and complete per-plugin detail. It adds a Plugin list Plus tab beside the official Plugin list tab, offering:

  • Trust tiers — plugins are grouped into Official / Organization / Personal: the @deepseek-ai scope and cordis: builtins are official, any other npm scope is an organization, and unscoped or local-file plugins are personal.
  • Collapsible groups — a dense tier folds from its header so the others stay in reach without scrolling.
  • Full details — one card per plugin: display name, version, git commit, developer, description, license, homepage, repository, bundle patch, configuration status, and Cordis mount status.
  • Search & sort — filter by name, description, developer, and other fields; each tier keeps a stable name order.

Install

# from the built tarball
dsh plugin --profile web add ./dsh-plugin-list-plus-0.1.0.tgz
# or from npm once published
dsh plugin --profile web add dsh-plugin-list-plus

Restart dsh web, then open Settings → Plugins → Plugin list Plus — a new tab beside the official Plugin list.

How it works

One package, two halves, and a self-registered data route:

  • Node half (src/index.ts, the package main): reads the Loader tree and installed package.json files, computes the trust-tiered snapshot, and serves it at GET /plugins/dsh-plugin-list-plus/list — an exact route, so it never shadows the plugin's own browser bundle under /plugins//client.js.
  • Browser half (src/client/, the package ./client): registers its own Plugin list tab (settings.plugins.tab id plus, order 20) beside the official one and renders the enhanced list.

Because DeepSeek Harness has a tab-projection bug (ui-settings-plugins reads entries() instead of entriesOfSlot(), so shadowing the official tab would show a duplicate) and accepts no external changes to fix it, this plugin ships as a separate tab.

Development

pnpm install
pnpm run build     # tsc (d.ts) + tsdown (lib/index.mjs + lib/client.js)
pnpm test          # vitest (node half + browser half + components)
pnpm run typecheck # strict typecheck of src and tests

The browser half bundles to the harness client-bundle contract (window.__ModuleLoader__.load), resolving react, react/jsx-runtime, and @deepseek-ai/dsh-client-ui-primitives from the runtime module table.

License

MIT