DeepSeek Harness Launcher
DeepSeek Harness Launcher(简称 DSHL)是一款使用 Rust 和 Tauri 开发的桌面 启动器,用于启动 dsh Web 服务并在原生窗口中打开 DeepSeek Harness Web UI。
它将以下命令行流程封装为桌面应用:
dsh web用户不需要每次打开终端、手动等待服务启动或单独管理日志。启动器会自动解析 dsh 运行方式,启动本地服务,等待 HTTP 接口就绪,然后加载 Web UI。
核心功能
自动启动 dsh
启动器优先使用系统 PATH 中的全局 dsh。如果没有检测到全局命令,则回退到:
npx -y @deepseek-ai/dshWindows 使用隐藏的 cmd /d /c 处理 npm 命令 shim,Linux 和 macOS 直接启动
dsh 或 npx。
服务就绪检测
DSHL 不会在进程刚创建时立即加载 Web UI,而是持续检查本地 HTTP 接口。只有 服务能够响应后,窗口才会进入 Web 页面。
默认服务地址为:
http://127.0.0.1:3080启动器只接受 loopback 地址,不管理远程地址或 HTTPS 地址。
日志和错误提示
服务日志默认保存到:
~/.dsh/dsh-launcher/dsh.log如果 dsh 在启动期间退出,界面会显示错误信息和日志尾部,便于定位 Node.js、 插件、端口或配置问题。
端口冲突处理
当配置端口已被其他进程占用时,启动器会显示端口冲突状态,并提供结束监听进程 后重试的入口。该操作只应在确认目标进程可以终止时使用。
系统托盘和进程生命周期
关闭主窗口时,应用默认隐藏到系统托盘,后台 dsh 服务继续运行。通过托盘菜单 选择 Exit 时,启动器会停止服务并退出应用。
DSHL 自身也只允许运行一个实例。如果应用已经隐藏在后台,再次点击启动器时, 不会留下第二个常驻 DSHL 实例,也不会重复启动 dsh;系统会把这次启动请求交给 已有实例,由已有实例显示、取消最小化并聚焦主窗口。
Windows 使用 taskkill /F /T 终止命令包装进程及其子进程。启动器还会保存服务
PID 和端口,在异常退出后尝试识别并接管上一次留下的服务,避免重复启动。
窗口状态和诊断
应用会保存窗口位置、尺寸和最大化状态,支持多显示器环境。诊断功能会导出经过 脱敏处理的 ZIP 文件,敏感环境变量和凭据不会直接写入诊断内容。
插件管理
DSHL 不负责安装或更新 DSH 插件。插件仍由 dsh CLI 和 pnpm 管理,profile、锁文件、 插件依赖和 profile layer 均由 dsh 维护。
准备 pnpm:
corepack enable
corepack prepare pnpm@latest --activate
pnpm --version安装 web profile 插件:
dsh plugin --profile web add <plugin-package>例如:
dsh plugin --profile web add @openma/deepseek-harness-tui@0.2.1没有全局 dsh 时,可以使用 npm 回退包:
npx -y @deepseek-ai/dsh plugin --profile web add <plugin-package>根据当前 dsh CLI 契约,插件只有在 manifest 中声明 dsh.bundle.patch 时,才会
自动加入 profile layer。DSHL 不会改写用户的 profile、package.json、锁文件或
插件目录。
技术实现
- Rust:负责服务进程、日志、状态文件、端口检测和平台相关逻辑。
- Tauri 2:负责原生窗口、系统托盘、窗口状态和前后端通信。
- WebView:加载 dsh Web UI,前端页面位于
web/index.html。 - 本地 IPC:前端通过 Tauri commands 调用服务启动、停止、状态检测和诊断功能。
项目不重新实现 dsh,也不将 Node.js、dsh 或 DSH 插件打包进安装包。这样可以 保留用户已有的 dsh profile,同时减少启动器与 dsh 版本和插件生态之间的耦合。
运行源码
环境准备:
- Rust 和 Cargo
- Node.js 18+、npm/npx
- 全局 dsh,或允许启动器使用 npm 回退方案
- Windows 需要 WebView2 Runtime
在项目根目录执行:
cargo run --manifest-path src-tauri/Cargo.toml构建 Release 二进制:
cargo build --release --manifest-path src-tauri/Cargo.toml构建安装包
安装 Tauri CLI:
cargo install tauri-cli --version "^2"构建当前平台可用的安装包:
cargo tauri buildWindows 安装包通常位于:
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*-setup.exe只构建某一种 Windows 安装包:
cargo tauri build --bundles nsis
cargo tauri build --bundles msi平台支持
本软件理论上支持 Windows、Linux 和 macOS。
当前开发和验证环境为 Windows,已完成 Windows 的源码编译、测试、格式检查、 Clippy 和 Release 构建验证。当前没有 Linux 或 macOS 设备,因此这两个平台的 原生构建和运行行为尚未验证。Linux/macOS 用户需要在对应原生系统上自行构建和 进行冒烟测试。
Linux 和 macOS 的构建命令与 Windows 相同:
cargo build --release --manifest-path src-tauri/Cargo.toml生成应用包时使用:
cargo tauri build免责声明
DeepSeek Harness Launcher 是独立的第三方开源软件,与 DeepSeek Harness、 DeepSeek、深度求索公司及其关联方不存在任何关联、授权、赞助、合作或官方关系。 本项目不代表上述组织。相关名称、商标和其他知识产权归各自权利人所有。