Back to home

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 + 开浏览器」。

Windows Rust License: MIT

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 安装时会自动检测并给出 缺项指引(缺失只提示、不阻断安装,补齐后直接运行应用即可)。

下载使用

  1. Releases 下载最新 dsh-app-v*-windows-x64.zip
  2. 解压到任意目录(文件保持在同一目录)
  3. 双击 dsh-app.exe 即用

推荐——运行安装脚本(自动做前置检查 + 交互选择安装路径 + 创建桌面快捷方式):

powershell -ExecutionPolicy Bypass -File install.ps1

运行后会依次:

  1. 前置环境检查:Node.js / dsh / WebView2 逐项打勾,缺了给安装指引
  2. 选择安装目录:直接回车用默认 %LOCALAPPDATA%\Programs\dsh-app, 或输入自定义路径(如 D:\Apps\dsh-app,支持环境变量)
  3. 复制文件 + 创建桌面快捷方式(鲸鱼图标)

其他用法:

# 静默安装(直接指定目录,不询问,适合脚本调用)
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

致谢

License

MIT © Chen-YiY