Back to home@limbo947

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
GitHub repo

Introduction

DSH-Console

DeepSeek Harness 本地服务控制 —— 一个现代轻量级的 WPF 桌面面板,用于启动、停止、监控本地的 DeepSeek Harnessdsh web)服务。

扁平化浅色/深色双主题 · 圆角卡片 · 类似系统托盘工具的竖版小面板

Releases License

界面预览

停止态运行态
停止态运行态

功能特性

  • 服务生命周期管理:一键启动/停止(主按钮随状态机自动切换为深灰 ▶"启动服务" / 红色 ■"停止服务"),另有重启、打开链接
  • 真实进程管理:通过 cmd /c 拉起 npm 全局命令 dsh webtaskkill /T 连进程树一起停止,杜绝孤儿 node 进程
  • 智能端口:默认使用 dsh 的 3080 端口;启动前探测,被占用则自动回退到系统分配端口并在日志中提示
  • 状态可视化:绿点"运行中"/灰点"已停止"、真实 URL 与 PID、3 秒一次的健康探活(服务意外退出自动回到停止态)
  • 操作日志:可折叠的日志面板,实时转发 dsh 的 stdout/stderr(剥离 ANSI 颜色码),自动滚底
  • 四个偏好开关
    • 启动后打开界面(服务就绪后自动用默认浏览器打开)
    • 开机自启(写入 HKCU Run 键,免管理员权限)
    • 自动启动服务(应用打开后立即拉起 dsh)
    • 深色模式(语义色刷双调色板,切换即时生效并持久化)
  • 窗口行为:无边框可拖拽、置顶开关(📍 蓝色指示)、打开时自动恢复上次关闭的位置(坐标失效时回退居中)、最小化隐藏到系统托盘(双击/右键菜单唤回,右键可直接启动/停止服务)

技术栈

说明
UIWPF + XAML,全部控件样式自绘,零第三方 UI 依赖
架构MVVM(手写轻量 ObservableObject + RelayCommand,无 NuGet 依赖)
目标框架.NET Framework 4.8(Windows 10/11 系统自带,免安装运行时)
托盘WinForms NotifyIconUseWindowsForms

运行要求

  • Windows 10 1903+ / Windows 11(自带 .NET Framework 4.8 运行时)
  • 已全局安装 DeepSeek Harness CLI:npm i -g @deepseek/harnessdsh 需位于 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 自带,目标机器免安装
高 DPIapp.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-harnesswebsite/public/wordmark.svg(MIT 许可)。