Skip to content
dsh.fish
Bundle

dsh-plugin-installer-ui

插件管理器:在「设置 → 插件」中新增「安装插件」页签,输入 dsh plugin 命令即可添加/移除插件

Source
chuyue-yue
License
MIT
Updated
Updated 21 days ago

Readme

# dsh-plugin-installer-ui

> [中文](README.zh-CN.md)

A plugin manager for DSH (DeepSeek Harness): adds an **Install Plugins** tab under
**Settings → Plugins**, letting you add or remove plugins by typing a `dsh plugin`
command or a package name — no manual config editing required.

## Features

- **Install / remove plugins online**: in the **Settings → Plugins → Install Plugins** tab,
  type a package name or a full command and run it with one click —
  `dsh plugin --profile web add/remove <spec>` is executed with live output and result status.
- **Host side**: registers `POST /api/plugin-manager/install` and `GET /api/plugin-manager/status`
  HTTP routes that proxy `dsh plugin` (command parsing, package-name safety validation, timeout protection).
- **Client side**: injects the **Install Plugins** tab into the Settings → Plugins tab group
  (input box + Add / Remove buttons + execution output).
- **Environment diagnostics**: the tab footer shows the node version, target profile, and DSH_HOME path.

## Requirements

- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) installed
- [pnpm](https://pnpm.io/) (`dsh plugin` is a thin pnpm forwarder)

## Installation

```bash
dsh plugin --profile web add dsh-plugin-installer-ui
```

Or install directly from GitHub (no npm publish required):

```bash
dsh plugin --profile web add github:chuyue-yue/dsh-plugin-manager
# or pin a version:
dsh plugin --profile web add https://github.com/chuyue-yue/dsh-plugin-manager/archive/refs/tags/v1.0.0.tar.gz
```

After installation, **restart the dsh web service** and refresh the page — the **Install Plugins**
tab appears under **Settings → Plugins**.

## Usage

In the tab, the input accepts three formats:

| Input | Effect |
| --- | --- |
| `dsh plugin --profile web add <package>` | Install a plugin (full command) |
| `<package>` | Install a plugin (add is the default) |
| `remove <package>` | Remove a plugin |

> Installation requires network access and pnpm; if pnpm is not found, install it first and retry.

## Uninstall

```bash
dsh plugin --profile web remove dsh-plugin-installer-ui
```

## Development

```
dsh-plugin-installer-ui/
├── lib/
│   ├── index.js      # host side: HTTP routes (install / status)
│   └── client.js     # client side: Install Plugins tab
├── cordis.patch.yml  # bundle activation layer (auto-mounted after `dsh plugin add`)
└── package.json
```

- `dsh.client` declares the client-side injection (`platform: web`, `immediately: true`);
- `dsh.bundle.patch` declares the bundle activation layer — `dsh plugin add` appends this
  package to `dsh.profile.bundles` automatically, no manual `cordis.patch.yml` editing.

## License

MIT

Install

dsh plugin --profile web add github:chuyue-yue/dsh-plugin-manager

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source