Bundle
dsh-plugin-desktop-installer
在设置中添加按地址安装插件(可选 web/desktop profile)、第三方插件管理(启用/停用/卸载/版本检测更新)并一键重启 Desktop 的界面
- Source
- deronghe
- License
- MIT
- Updated
- Updated 7 days ago
Readme
# dsh-plugin-desktop-installer
在 DSH Desktop 的「设置」里提供三个能力:
- **重启 Desktop 按钮** —— 显示在设置面板右上角(关闭按钮旁),一键重启 Electron 桌面版。
- **按地址安装插件** —— 在「设置 → 插件 → 安装插件」标签页里,输入仓库地址并选择目标 profile(`desktop` / `web`)即可安装,装完可直接重启。
- **第三方插件管理** —— 在「设置 → 插件 → 第三方插件」标签页里,列出当前 profile 里从第三方安装的插件(内置 bundle 之外),并支持一键卸载、启用、停用,以及版本检测(已是最新则提示,有新版可确认更新到最新)。
底层复用 DSH Desktop 已有的原生能力:重启走 `desktopRuntime.requestRestart()`;安装/卸载走权威命令 `dsh plugin --profile <name> add|remove <spec>`(等价于 pnpm add/remove + 自动把 bundle reconcile 进 `dsh.profile.bundles`)。启用/停用直接编辑 profile 的 `package.json` 里的 `dsh.profile.bundles` 列表(加入/移除插件名),重启后生效。
## 安装
```sh
dsh plugin --profile desktop add github:deronghe/dsh-plugin-desktop-installer
```
地址支持两种格式:
- GitHub:`github:owner/repo` 或 `github:owner/repo#ref`
- npm:`包名` 或 `@scope/包名`(可选 `@version`)
安装后重启 Desktop 生效。
## 结构
- `lib/index.js` —— Host 半:注册 `/api/dsh-plugin-installer/{profiles,install,restart,installed,uninstall,set-enabled,check-updates,update}` 八个 HTTP 接口。
- `lib/client.js` —— 浏览器半:设置里的重启按钮、安装表单与第三方插件管理列表。
- `cordis.patch.yml` —— 把本插件插入 profile 组合。
## 限制
- 安装/卸载/更新能力依赖桌面版独有的 `desktopPnpmBootstrap`;纯 `web` profile(`dsh --profile web`)下没有这些服务,会提示「缺少安装能力」。启用/停用与列表只需读写 profile 的 `package.json`,不依赖桌面服务。
- 版本检测需要联网:npm 插件查 `registry.npmjs.org`,`github:` 插件查 GitHub API(有 `GITHUB_TOKEN` 环境变量时会带上,避免匿名限流)。
- 操作写入的是 `$DSH_HOME/profiles/<name>`,只对本机该 profile 生效。
Install
dsh plugin --profile web add github:deronghe/dsh-plugin-desktop-installer
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-desktop-installer from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.