Bundle
dsh-plugin-desktop
Opens the DeepSeek Harness Web UI in a native desktop window instead of a browser tab.
- Source
- kkaktus463
- License
- MIT
- Updated
- Updated 6 days ago
Readme
# dsh-plugin-desktop
English | [Русский](README.ru.md) | [中文](README.zh.md)
Opens the DeepSeek Harness Web UI in a native window instead of a browser tab.
The plugin does not start a harness of its own. By the time it loads, the
process is already listening, so the window simply attaches to it. Ownership
stays in one place: the harness outlives the window, and closing the window
never takes the server down.
## Requirements
The window itself is a separate application, [DSH Desktop](../dsh-desktop). The
plugin locates and launches it; without it the UI stays in the browser and a
warning goes to the log.
Windows only for now.
## Installation
```
dsh plugin --profile web add dsh-plugin-desktop
```
From a local directory:
```
dsh plugin --profile web add ./dsh-plugin-desktop
```
Check that the layer is in place without booting the harness:
```
dsh --profile web --dump-config
```
## Configuration
The bundle patch already takes the host and port from the `webStartup` service,
that is, from whatever the web app actually bound to.
| Field | Meaning |
|---|---|
| `port` | Harness port. Taken from `webStartup` by default. |
| `host` | Address. The window only opens for a loopback address. |
| `executable` | Full path to `dsh-desktop.exe` when the search fails. |
The search looks in `%LOCALAPPDATA%\DSH Desktop`, `%LOCALAPPDATA%\Programs\DSH
Desktop`, `%PROGRAMFILES%\DSH Desktop`, then along `PATH`.
To override the path in your own profile — `$DSH_HOME/profiles/web/cordis.patch.yml`:
```yaml
- id: desktop
config:
executable: 'C:\Tools\DSH Desktop\dsh-desktop.exe'
```
A patch replaces a row's whole `config`, so an override must restate every field
it needs, not only the changed one.
## Behaviour
- Server bound to a non-loopback address — the window does not open and the log
explains why: a browser is the right surface there.
- The app is already running — a second launch raises the existing window.
- The plugin is unloaded — the window closes, the harness keeps running.
## Licence
MIT.
Install
dsh plugin --profile web add github:kkaktus463/dsh-plugin-desktop
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 from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.