Bundle
dsh-plugin-manager-community
DSH Settings plugin manager bundle for Desktop and native Web profiles
- Source
- TAOxxx7
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 hours ago
Readme
# DSH Plugin Manager <div align="right"> [English](README.md) · [中文](README.zh.md) </div> An independently publishable DSH bundle that adds a categorized plugin manager to **Settings → Plugins**. This repository is intentionally shaped like a normal DSH community plugin: - the root `package.json` is the installable npm package; - `dsh.bundle.patch` mounts the Host gateway; - `dsh.client` loads the browser Settings tab in native Web clients; - `lib/` contains the already-built Host and Client artifacts; - GitHub is the source, documentation, and `dsh-plugin` market-discovery page; - npm is the normal installation and update channel. ## Screenshots   ## What it provides - categories for every installed profile package; - GitHub `dsh-plugin` market search; - duplicate-install detection; - npm-first installation when a market repository publishes a DSH bundle; - GitHub fallback for unpublished repositories; - uninstall, single-package update, update checking, and startup checks; - GitHub Release checks for source-installed plugins with semver tags, with commit-head fallback for unpinned sources; - explicit pnpm build approval/retry with captured diagnostics; - an install-complete restart prompt for Desktop and native Web; - the same active-profile behavior in DSH Desktop and `npx @deepseek-ai/dsh web`. ## Install after publishing Replace the package name below if the publisher renames it: ```sh dsh plugin --profile desktop add dsh-plugin-manager-community@latest # Native Web profile npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-manager-community@latest npx -y @deepseek-ai/dsh web ``` After installing a newer package version, restart the current DSH process so the new bundle layer is loaded. The Settings tab asks about restarting after a successful market install. The native Web restart intentionally replaces the running Node process. Depending on browser timing, the HTTP request that triggered the restart can still surface as `Failed to fetch`; the current `lib/client.js` recognizes that Web-only disconnect as an expected restart and displays a reconnecting status. Publish `lib/index.js` and `lib/client.js` from the same release. ## Compatibility The plugin manager is verified against **DeepSeek Harness (DSH) Desktop** and the native Web profile of the same application. The `dsh.client.platform: "web"` declaration describes the browser face; it is not a GitHub-only installation mode. A remote browser still controls the Host/profile running the DSH process, so package operations occur on that machine. On Windows native Web, the Host resolves pnpm in this order: `DSH_PNPM_BIN`, the active profile/shared DSH pnpm package, `PNPM_HOME`/npm global directories, PATH, and finally Node.js Corepack. Direct `.exe`/pnpm-script launches avoid shell splitting of paths such as `C:\\Program Files`; `.cmd` shims are quoted when needed. Command output uses UTF-8 with a GB18030 fallback so Chinese `cmd.exe` diagnostics remain readable. If none of those locations is available, install Node.js/Corepack or set `DSH_PNPM_BIN` to the full `pnpm.cmd` path, then restart the Web process. ## Development note `lib/` is the release artifact copied from the verified Harness build. `src/` is included for review and future maintenance. The current source mirror is kept aligned with the Harness implementation; the handoff instructions publish the verified artifact directly and do not require a Harness monorepo checkout. See [`HANDOFF.md`](HANDOFF.md) and [`PUBLISH.md`](PUBLISH.md) for the exact publishing checklist.
Install
dsh plugin --profile web add github:TAOxxx7/dsh-plugin-manager
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plugin-manager-community from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.