DSH-Console
DeepSeek Harness local service control panel - WPF tray tool to start/stop dsh web with one click, status monitoring, auto-launch and auto-start | DSH 本地服务控制面板
- Stars
- 0
- Language
- C#
- Created
- Aug 19, 2026
- Updated
- Aug 20, 2026
Introduction
DSH-Console
DeepSeek Harness 本地服务控制 —— 一个现代轻量级的 WPF 桌面面板,用于启动、停止、监控本地的 DeepSeek Harness(dsh web)服务。
扁平化浅色/深色双主题 · 圆角卡片 · 类似系统托盘工具的竖版小面板
界面预览
| 停止态 | 运行态 |
|---|---|
![]() | ![]() |
功能特性
- 服务生命周期管理:一键启动/停止(主按钮随状态机自动切换为深灰 ▶"启动服务" / 红色 ■"停止服务"),另有重启、打开链接
- 真实进程管理:通过
cmd /c拉起 npm 全局命令dsh web,taskkill /T连进程树一起停止,杜绝孤儿 node 进程 - 智能端口:默认使用 dsh 的 3080 端口;启动前探测,被占用则自动回退到系统分配端口并在日志中提示
- 状态可视化:绿点"运行中"/灰点"已停止"、真实 URL 与 PID、3 秒一次的健康探活(服务意外退出自动回到停止态)
- 操作日志:可折叠的日志面板,实时转发 dsh 的 stdout/stderr(剥离 ANSI 颜色码),自动滚底
- 四个偏好开关:
- 启动后打开界面(服务就绪后自动用默认浏览器打开)
- 开机自启(写入 HKCU Run 键,免管理员权限)
- 自动启动服务(应用打开后立即拉起 dsh)
- 深色模式(语义色刷双调色板,切换即时生效并持久化)
- 窗口行为:无边框可拖拽、置顶开关(📍 蓝色指示)、打开时自动恢复上次关闭的位置(坐标失效时回退居中)、最小化隐藏到系统托盘(双击/右键菜单唤回,右键可直接启动/停止服务)
技术栈
| 项 | 说明 |
|---|---|
| UI | WPF + XAML,全部控件样式自绘,零第三方 UI 依赖 |
| 架构 | MVVM(手写轻量 ObservableObject + RelayCommand,无 NuGet 依赖) |
| 目标框架 | .NET Framework 4.8(Windows 10/11 系统自带,免安装运行时) |
| 托盘 | WinForms NotifyIcon(UseWindowsForms) |
运行要求
- Windows 10 1903+ / Windows 11(自带 .NET Framework 4.8 运行时)
- 已全局安装 DeepSeek Harness CLI:
npm i -g @deepseek/harness(dsh需位于 PATH)
快速开始
# 开发运行(需 .NET 8+ SDK)
dotnet run
# 仅编译
dotnet build
# 发布单目录产物
dotnet publish -c Release
产物位于 bin\Debug\net48\DSH-Console.exe,可直接拷贝到任意 Windows 机器双击运行。
💡 需要开箱即用的版本?前往 Releases 页 下载最新
DSH-Console-vX.Y.Z.exe,双击即可运行。
项目结构
DSH-Console/
├── App.xaml(.cs) # 应用入口(StartupUri,勿手写 Main)
├── MainWindow.xaml(.cs) # 面板界面;拖拽与托盘显隐等视图层职责
├── Mvvm/
│ ├── ObservableObject.cs # INotifyPropertyChanged 基类
│ └── RelayCommand.cs # 挂接 CommandManager 的命令实现
├── Services/
│ ├── DshProcessService.cs # dsh web 进程管理(启动/停止/端口发现/输出转发)
│ ├── AppIconFactory.cs # 鲸鱼几何离屏渲染为托盘图标(含原生句柄管理)
│ └── TrayIconService.cs # NotifyIcon 封装(显隐/唤回/启停服务/退出)
├── Themes/
│ ├── LightTheme.xaml # 浅色调色板(语义色刷)
│ └── DarkTheme.xaml # 深色调色板(与浅色同名键一一对应)
├── ViewModels/
│ └── MainViewModel.cs # 状态机、命令、注册表偏好、日志
└── tools/
└── verify-dsh-wrap.ps1 # dsh 启动/停止路径的端到端验证脚本
端口与偏好存储
| 项 | 位置 |
|---|---|
| 服务端口 | 首选 3080(dsh 默认),占用时回退系统分配 |
| 开机自启 | HKCU\Software\Microsoft\Windows\CurrentVersion\Run\DeepSeekHarness |
| 自动启动服务 | HKCU\Software\DeepSeekHarness\AutoLaunchService(DWORD) |
| 深色模式 | HKCU\Software\DeepSeekHarness\DarkMode(DWORD) |
| 窗口位置 | HKCU\Software\DeepSeekHarness\WindowLeft / WindowTop(DWORD) |
兼容性与环境适配
| 关注点 | 处理方式 |
|---|---|
| 运行时 | net48 为 Windows 10 1903+ / 11 自带,目标机器免安装 |
| 高 DPI | app.manifest 声明 PerMonitorV2,不同缩放/跨屏拖动均清晰渲染 |
| dsh 定位 | 无硬编码路径:应用目录 → PATH 逐级探测 dsh.cmd/.bat/.exe,未安装时启动报友好错误 |
| 端口冲突 | 启动前探测 3080,占用自动回退随机端口并在日志提示 |
| 权限 | 全部写 HKCU(无需管理员);服务仅绑 127.0.0.1,不触发防火墙弹窗 |
| 编码 | 子进程管道强制 UTF-8,不依赖系统代码页;日志剥离 ANSI 颜色码 |
| 字体 | Microsoft YaHei UI / Segoe UI / Consolas 均为 Windows 内置 |
致谢
鲸鱼图标与 DeepSeek 字形取自 deepseek-ai/deepseek-harness 的 website/public/wordmark.svg(MIT 许可)。

