# dsh-plugin-desktop [English](README.md) | [Русский](README.ru.md) | 中文 在原生窗口中打开 DeepSeek Harness Web UI,而不是浏览器标签页。 该插件不会自行启动 harness。它加载时进程已经在监听端口,因此窗口只是连接过去。 归属权保持在一处:harness 的生命周期长于窗口,关闭窗口绝不会让服务器停止。 ## 前置条件 窗口本身是独立的应用 [DSH Desktop](../dsh-desktop)。插件负责找到并启动它;若不 存在,界面仍留在浏览器中,同时向日志写入一条警告。 目前仅支持 Windows。 ## 安装 ``` dsh plugin --profile web add dsh-plugin-desktop ``` 从本地目录安装: ``` dsh plugin --profile web add ./dsh-plugin-desktop ``` 不启动 harness,仅确认配置层已生效: ``` dsh --profile web --dump-config ``` ## 配置 组合包的 patch 已经从 `webStartup` 服务读取地址和端口,也就是 web 应用实际绑定的 值。 | 字段 | 含义 | |---|---| | `port` | harness 端口,默认取自 `webStartup`。 | | `host` | 地址。仅在回环地址上才会打开窗口。 | | `executable` | 自动查找失败时,`dsh-desktop.exe` 的完整路径。 | 查找顺序为 `%LOCALAPPDATA%\DSH Desktop`、`%LOCALAPPDATA%\Programs\DSH Desktop`、 `%PROGRAMFILES%\DSH Desktop`,随后是 `PATH`。 在自己的 profile 中覆盖路径 —— `$DSH_HOME/profiles/web/cordis.patch.yml`: ```yaml - id: desktop config: executable: 'C:\Tools\DSH Desktop\dsh-desktop.exe' ``` patch 会替换该配置行的整个 `config`,因此覆盖时必须重述所有需要的字段,而不只是 被修改的那一个。 ## 行为 - 服务器绑定在非回环地址上 —— 不打开窗口,并在日志中说明原因:此时浏览器才是合适 的载体。 - 应用已在运行 —— 再次启动会唤起已打开的窗口。 - 插件被卸载 —— 窗口关闭,harness 继续运行。 ## 许可证 MIT。