Skip to content
dsh.fish
Bundle

dsh-plugin-list-plus

An elevated Plugin list for DeepSeek Harness Web Settings — trust tiers, collapsible groups, and complete per-plugin detail

Source
yibiner
stars
2 stars
License
MIT
Updated
Updated 10 days ago

Readme

# dsh-plugin-list-plus

An elevated Plugin list for [DeepSeek Harness](https://github.com/deepseek-ai/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

```sh
# 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/<name>/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

```sh
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

Install

dsh plugin --profile web add github:yibiner/dsh-plugin-list-plus#f62e6ba7be47f42accae372bb84dc879972d071a

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source