# dsh-plugin-desktop [English](README.md) | Русский | [中文](README.zh.md) Открывает Web UI DeepSeek Harness в нативном окне вместо вкладки браузера. Плагин не поднимает свой харнесс. К моменту его загрузки процесс уже слушает порт, поэтому окно просто подключается к нему. Владение остаётся в одном месте: харнесс живёт дольше окна, и закрытие окна никогда не роняет сервер. ## Требования Само окно — отдельное приложение [DSH Desktop](../dsh-desktop). Плагин его находит и запускает; без него UI просто остаётся в браузере, и в журнал уходит предупреждение. Пока только Windows. ## Установка ``` dsh plugin --profile web add dsh-plugin-desktop ``` Из локальной папки: ``` dsh plugin --profile web add ./dsh-plugin-desktop ``` Проверить, что слой встал, не запуская харнесс: ``` dsh --profile web --dump-config ``` ## Настройка Патч бандла уже берёт адрес и порт из сервиса `webStartup`, то есть из того, на чём web-приложение реально забиндилось. | Поле | Смысл | |---|---| | `port` | Порт харнесса. По умолчанию из `webStartup`. | | `host` | Адрес. Окно открывается только для петлевого адреса. | | `executable` | Полный путь к `dsh-desktop.exe`, если автопоиск не нашёл. | Автопоиск смотрит в `%LOCALAPPDATA%\DSH Desktop`, `%LOCALAPPDATA%\Programs\DSH Desktop`, `%PROGRAMFILES%\DSH Desktop`, затем по `PATH`. Переопределить путь в своём профиле — `$DSH_HOME/profiles/web/cordis.patch.yml`: ```yaml - id: desktop config: executable: 'C:\Tools\DSH Desktop\dsh-desktop.exe' ``` Патч заменяет `config` строки целиком, поэтому при переопределении нужно перечислить все нужные поля, а не только изменённое. ## Поведение - Сервер забинден не на петлевой адрес — окно не открывается, в журнал уходит сообщение: там правильная поверхность всё-таки браузер. - Приложение уже запущено — повторный запуск поднимает существующее окно. - Плагин выгружен — окно закрывается, харнесс продолжает работать. ## Лицензия MIT.