Back to home

Ackow

dsh-desktop

Lightweight DeepSeek Harness desktop client - ~0.9MB native shell (WebView2 window + dsh web lifecycle manager) with auto dependency install

Stars
1
Language
C#
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

DSH Desktop

轻量级 DeepSeek Harness 桌面客户端 · A lightweight desktop client for DeepSeek Harness

一个把 DeepSeek Harness Web GUI 装进原生窗口的小壳:总体积 ≈ 0.9 MB,零捆绑运行时,免安装,双击即用。

A ~0.9 MB native shell that puts the DeepSeek Harness web GUI into a desktop window. No bundled runtimes, portable, double-click to run.

✨ 特性 Features

  • 超小体积 ≈0.9MB —— WinForms(.NET Framework 4.8, Windows 自带) + WebView2(系统预装) + dsh(本机), 不打包任何重型运行时
  • 单文件发布 —— WebView2 组件与图标全部内嵌进 exe,Release 只含一个文件;首次运行自动解出到 %LOCALAPPDATA%\DSHDesktop\lib
  • 智能服务管理 —— 端口上已有 dsh web 就复用(退出不杀);没有就自动拉起(退出自动停服);端口被占自动改用随机端口
  • 缺啥自动装 —— 缺 WebView2 运行时 → 一键下载微软官方安装包;缺 Node.js → 一键 winget 安装;缺 dsh → npx 自动下载
  • 桌面体验 —— 关窗驻留托盘、单实例激活(二次启动唤起窗口)、断线检测气泡提醒、窗口位置记忆、崩溃弹窗可见
  • 安全边界与 dsh web 一致 —— 仅访问 127.0.0.1 本地服务

📥 快速开始 Quick start

Release 中直接下载 DSHDesktop.exe(单文件,约 900KB),双击运行即可,无需安装。

要求 Windows 10/11。首次启动若缺少组件,应用会引导自动安装(WebView2 运行时 / Node.js / dsh)。

🔧 命令行参数 CLI

--selfcheck [path]   环境自检,写出 JSON 报告;exit 0 = 环境就绪
--port N             本次启动使用指定端口(一次性,不写回设置)
--close-exits        点关闭按钮直接退出(默认隐藏到托盘)
--no-tray            不显示托盘图标

数据目录:%LOCALAPPDATA%\DSHDesktop\(可用环境变量 DSH_DESKTOP_DATA 改为便携目录)。 dsh 定位环境变量:DSH_DESKTOP_DSH_BINDSH_DESKTOP_NODE

🏗️ 架构 Architecture

DSHDesktop.exe (托盘/窗口壳, ~900KB 单文件)
├─ WebView2 内嵌窗口 ──▶ http://127.0.0.1:3080  (DeepSeek Harness Web GUI)
├─ 内嵌资源: Microsoft.Web.WebView2.Core/WinForms.dll + WebView2Loader.dll + app.ico
│   (首次运行解出到 %LOCALAPPDATA%\DSHDesktop\lib,由 AssemblyResolve/LoadLibrary 加载)
└─ DshServer 服务管理
   ├─ 端口探测:已是 dsh web → 附着复用(不拥有,退出不杀)
   ├─ 端口空闲 → 定位本机 dsh 并拉起 `dsh web`(拥有,退出时停服)
   ├─ 端口被其他程序占用 → 自动改用 `--port 0` 随机端口
   └─ dsh 定位顺序:DSH_DESKTOP_DSH_BIN → PATH 的 dsh.cmd →
      npm npx 缓存中的 @deepseek-ai/dsh(取最新版)→ npx 在线下载(需确认)

📦 体积对比 Why so small

方案体积
Electron 打包 web UI≥100 MB
Tauri(Rust)~3-10 MB
打包整个 dsh node_modules数百 MB
本方案(复用系统/本机组件)≈0.9 MB

🛠️ 构建 Build

前置:Windows 10/11 + .NET SDK(仅用 Roslyn 编译器)+ Node.js(生成图标)+ .NET Framework 4.8 引用程序集(系统自带)。

.\build.ps1

产物输出到 bin\。构建完全离线,无 NuGet 依赖。CI 见 .github/workflows/build.yml

📁 目录结构

bin\DSHDesktop.exe           # 发布产物:单文件 exe(内嵌 WebView2 组件 + 图标,≈900KB)
src\                        # C# 源码(net48):服务管理 / WebView2 窗口 / 内嵌资源加载 / 自动修复 / 自检
lib\                        # WebView2 组件(构建时嵌入 exe 的原料)
tools\make-icon.js          # 图标生成器(渲染官方鲸鱼路径 → 多尺寸 ICO/PNG)
assets\app.ico              # 蓝色鲸鱼图标(另有 app-black.ico 黑色款)
build.ps1                   # 一键构建脚本

🐳 图标与商标

icon preview

蓝盘白鲸(默认)与黑盘白鲸两款图标,实底圆角底板保证在任务栏/托盘任何配色下清晰可见, 含 16/32/48/256 四档尺寸。鲸鱼路径取自 DeepSeek Harness 官方 favicon。 DeepSeek 名称与标志的权利归 DeepSeek 所有。

⚖️ 许可 License

MITMicrosoft.Web.WebView2.*WebView2Loader.dll 版权归 Microsoft (WebView2 SDK 组件,按 SDK 条款随应用再分发)。