kun2-5code/dsh-plugin-installer

DeepSeek Harness (dsh) plugin: install/remove profile plugins straight from the web GUI (Settings → Plugins →

Puts an install/remove UI inside the DSH web GUI. The host half registers POST /dsh-plugin-installer/api on the web server — the same operation as dsh plugin --profile <name> add/remove, forwarding to pnpm inside the profile directory and reconciling the dsh.profile.bundles layer stack — while the client half contributes an Install tab (Settings → Plugins → 安装). The README documents no-restart "hot activation" (the installer rewrites the running tree's root-include patch list so new bundle rows apply transactionally), a disable/enable toggle for every non-built-in bundle via a marker-delimited managed block in the profile's cordis.patch.yml, and the deliberate rule that built-in @deepseek-ai/* bundles (the harness core and the GUI itself) cannot be disabled or removed. It also documents publishing paths (npm, tarball, git) and the fork/rename checklist.

Web UI Enhancements ★ 0 updated 2026-08-15 ✅ runtime-tested
View on GitHub ↗

Install

dsh plugin --profile web add /path/to/dsh-plugin-installer

README quick start, local-directory form quoted verbatim: build the checkout first (a local-directory install does not run the prepare script), then dsh plugin --profile web add /path/to/dsh-plugin-installer. The README also documents a GitHub form with an owner placeholder — dsh plugin --profile web add github:you/dsh-plugin-installer — substitute your own fork. Note the README's caveat that a --patch overlay only loads the plugin's host half (module resolution cannot reach package-level declarations), so the browser-half Install tab needs the full profile install. The npm name dsh-plugin-installer resolves to 2.0.1 with no repository field (registry-verified 2026-09-12) — it is not evidenced as this project, so it is not claimed here.

Compatibility

DeepSeek Harness web profile with Node.js and pnpm on PATH. The README states the install route is loopback-only (the web server binds 127.0.0.1) and that running it executes pnpm on your machine — the same trust boundary as running dsh plugin add yourself.

Details

Recent updates

The README documents behaviour and invariants rather than a release history: hot-applied bundle rows are appended to the end of the running patch list (hand edits before a restart do not apply to them), the managed block in cordis.patch.yml writes { id, disabled: true/false } overrides, and the route is loopback-only. It also notes that after a restart the bundle-layer order takes over and id-targeted overrides work normally.

FAQ

How do I install dsh-plugin-installer?
From a local build: dsh plugin --profile web add /path/to/dsh-plugin-installer (build first — a local-directory install does not run prepare). The README also gives a GitHub form with an owner placeholder to substitute your fork.
Do installs require a restart?
No by default — the README documents hot activation that rewrites the running tree's root-include patch list. If you hand-edit cordis.patch.yml before a restart, those edits do not apply to hot-installed rows.
Can I remove built-in plugins with it?
No. The README states built-in @deepseek-ai/* bundles carry a built-in badge and are not open to disable or removal because they are not profile dependencies and removing them breaks the profile.

Alternatives

liustack/modlens · omdsh-dev/DSH-better-sidebar · ccch1mneyyy/dsh-TUI

More plugins in Web UI Enhancements

Browse more in Web UI Enhancements

Guides for Web UI Enhancements plugins