1lyygit
dsh-launcher
Windows launcher for DeepSeek Harness running in WSL2 (dsh)
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
DeepSeek Harness Launcher
一个 Windows 桌面端,用来一键启动 / 关闭跑在 WSL2 Ubuntu 里的 DeepSeek Harness(dsh)。
为什么要做它
dsh 本身是命令行 + Web UI(dsh web),官方没有桌面端。本项目只做一件事:
- 双击快捷方式 → 自动在 WSL2 Ubuntu 里拉起 dsh(复用你已有的
~/dsh-app安装和数据目录~/.dsh)→ 弹出窗口加载 Web UI; - 点窗口右上角 X → 把 WSL 里的 dsh 进程和端口一并清干净,不留下后台服务。
没有加载页、没有多余功能,就是一个干净的"启动器 + 窗口壳"。
环境要求
- Windows 10/11(需自带 WSL2)
- WSL2 发行版
Ubuntu,且里面已有 dsh 安装:- 入口:
~/dsh-app/node_modules/@deepseek-ai/dsh/lib/bin.js - 数据目录:
~/.dsh - 端口:
5306
- 入口:
- Node.js 18+(仅开发 / 打包时需要,日常使用不需要)
快速开始
npm install
npm start
打包成单个 exe(双击即用,可拷走):
npm run dist
产物在 dist/DeepSeek-Harness-Launcher-1.0.0.exe。
工作原理
Windows 侧 WSL2 Ubuntu 侧
─────────── ──────────────
双击 exe dsh web 服务
│ ── wsl.exe 调 scripts/start ──► node bin.js --profile web --port 5306
▼ │
Electron 窗口 ◄── localhost:5306 ──────┘
│
点 X ── wsl.exe 调 scripts/stop ──► 杀 dsh 进程,清空 5306
启动 / 停止脚本全部使用绝对路径,绕开了 wsl.exe 会把 Windows 的 HOME / PATH 传进 WSL
导致命令失效的坑,并用 setsid + </dev/null + 短暂等待保证后台服务稳定存活。
配置
开箱即可用,不写死任何用户名或路径:
- dsh 入口自动发现:依次查找
~/dsh-app/node_modules/@deepseek-ai/dsh/lib/bin.js、~/node_modules/@deepseek-ai/dsh/lib/bin.js、npm 全局目录、PATH里的dsh命令; - WSL 用户自动识别:通过
getent passwd取当前用户真实家目录,不受 Windows 环境变量污染; - 端口:默认
5306。
需要覆盖时,设置 Windows 用户环境变量即可:
| 环境变量 | 作用 |
|---|---|
DSH_ENTRY | 指定 dsh 入口文件 / 命令的绝对路径 |
DSH_PORT | 修改端口(默认 5306) |
DSH_LOG | 修改 dsh 日志路径(默认 ~/.dsh/dsh-wsl.log) |
WSL 发行版名不是 Ubuntu 时,改 main.js 顶部的 DISTRO。
日志
WSL 里 dsh 的日志在 ~/.dsh/dsh-wsl.log,启动失败时看它。
致谢
- 图标提取自 DeepSeek Harness 官方 Windows 桌面端;
- 本项目与 DeepSeek 官方无隶属关系,是社区工具。
License
MIT