Chen-YiY
dsh-app
Unofficial DeepSeek Harness desktop app — native window + system tray, no terminal needed (Rust/wry WebView2 shell, ~900KB)
- Stars
- 0
- Language
- PowerShell
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-app — DeepSeek Harness 桌面应用
Unofficial desktop app for DeepSeek Harness · 原生窗口 + 系统托盘,双击即用,告别「开终端敲
dsh web+ 开浏览器」。
English intro: dsh-app wraps the DeepSeek Harness web UI (dsh web) into a standalone
native Windows application — a Rust + WebView2 shell (~900 KB exe) with a system tray,
automatic backend management, and zero terminal windows. Chinese documentation below.
它解决什么问题
用 DeepSeek Harness 的日常是:打开终端 → 敲 dsh web → 等服务起来 → 开浏览器 →
输入 127.0.0.1:3080。用完还得记得回去 Ctrl+C。
装上 dsh-app 之后:双击桌面图标,直接进入应用窗口。完事点 ✕ 缩到托盘, 下次双击秒开;托盘右键「退出」干净收场,不留任何后台进程。
功能
- 双击即开 —— 原生窗口内嵌 WebView2 渲染 dsh web UI,无需终端、无需浏览器
- 服务自管理 ——
127.0.0.1:3080已有dsh web在跑就直接复用;没有就自动 隐藏拉起(完全无窗口),首窗多等 2–5 秒 - 系统托盘 —— ✕ = 最小化到托盘(应用与服务继续运行);左键单击恢复窗口; 右键菜单「打开 / 退出」
- 单实例 —— 重复双击只会唤起已有窗口,不会开出第二个图标
- 退出即清理 —— 退出时看门狗(
wt.js)把「它自己拉起的」服务整树回收; 你手动开的服务不受影响 - 会话互通 —— 会话存在服务端(
~/.dsh/sessions),浏览器与桌面应用连同一 服务,看到的是同一份记录 - 无终端闪框 —— GUI 子系统编译 + 子进程全部
CREATE_NO_WINDOW - 鲸鱼图标 —— 取自 DeepSeek Harness 官方 favicon(MIT),黑白双色版 (白身黑描边、透明底),深浅色任务栏都清晰
系统要求(前置环境依赖)
| 依赖 | 必需性 | 安装方式 |
|---|---|---|
| Windows 10/11 x64 | 必须 | — |
| WebView2 运行时 | 必须(窗口渲染) | Win10/11 一般自带;缺失时从 微软官网 装 Evergreen Runtime |
| Node.js ≥ 20 | 必须(运行 dsh 本体) | nodejs.org 装 LTS |
DeepSeek Harness(dsh) | 必须 | npm i -g @deepseek-ai/dsh,确认 dsh -V 可用 |
三个依赖是否就绪无需手动逐个检查——install.ps1 安装时会自动检测并给出
缺项指引(缺失只提示、不阻断安装,补齐后直接运行应用即可)。
下载使用
- 到 Releases 下载最新
dsh-app-v*-windows-x64.zip - 解压到任意目录(文件保持在同一目录)
- 双击
dsh-app.exe即用
推荐——运行安装脚本(自动做前置检查 + 交互选择安装路径 + 创建桌面快捷方式):
powershell -ExecutionPolicy Bypass -File install.ps1
运行后会依次:
- 前置环境检查:Node.js / dsh / WebView2 逐项打勾,缺了给安装指引
- 选择安装目录:直接回车用默认
%LOCALAPPDATA%\Programs\dsh-app, 或输入自定义路径(如D:\Apps\dsh-app,支持环境变量) - 复制文件 + 创建桌面快捷方式(鲸鱼图标)
其他用法:
# 静默安装(直接指定目录,不询问,适合脚本调用)
powershell -ExecutionPolicy Bypass -File install.ps1 -InstallDir "D:\Apps\dsh-app"
# 同时加开始菜单快捷方式
powershell -ExecutionPolicy Bypass -File install.ps1 -StartMenu
# 卸载(停进程、删快捷方式、删目录、清 WebView2 数据)
powershell -ExecutionPolicy Bypass -File install.ps1 -Uninstall
命令行参数:dsh-app.exe --port 4000(默认 3080)。
工作原理
dsh-app.exe (Rust ~25MB 内存)
├─ 窗口: tao + wry → WebView2 加载 http://127.0.0.1:3080
├─ 托盘: tray-icon(左键唤窗 / 右键菜单)
└─ 服务: 端口就绪→复用;否则 CREATE_NO_WINDOW 拉起 node wt.js
└─ wt.js: spawn `node <dsh>/lib/bin.js web --port 3080`
+ 看门狗: 父进程消失 → taskkill /T 整树清理
不修改 DSH 源码、不碰你的 profile 与插件;只是把「终端 + 浏览器」包成一个应用。 WebView2 渲染组的内存(~450 MB)与 Chrome/Edge 打开同一页面同量级——这是浏览器 内核的固有成本,应用壳本体只有 ~25 MB。
从源码构建
git clone https://github.com/Chen-YiY/dsh-app.git
cd dsh-app
cargo build --release # 产物 target/release/dsh-app.exe
前置:Rust stable(MSVC 工具链)+ Windows SDK(rc.exe,用于嵌图标;缺失时仅
无图标资源,不影响功能)。重新生成图标资产:
powershell -ExecutionPolicy Bypass -File gen-icons.ps1。
致谢
- DeepSeek Harness(MIT)—— 平台本体,以及应用图标复刻自其 web favicon 鲸鱼
- wry / tao / tray-icon —— Tauri 系核心库
License
MIT © Chen-YiY