XiaoXi04-01
dsh-workstation-launcher
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
DeepSeek Harness Workstation Launcher
基于 Electron 的一键启动器:双击桌面快捷方式 → 自动拉起 dsh web 服务 → 透明鲸鱼像素动画 → 主窗口弹出,不再需要手动开终端敲命令。
A one-click Electron launcher for DeepSeek Harness: double-click a desktop shortcut, and it silently boots the dsh web service, plays a pixel-whale startup animation, then opens the harness UI.
✨ 功能 / Features
- 🚀 一键启动:检测端口(默认
3080)——已在运行则直接打开界面;未运行则静默拉起pnpm dsh web --port <port>(无黑色控制台窗口) - 🐋 透明像素鲸鱼启动动画:无边框透明浮层窗口,官方 DeepSeek 鲸鱼以像素块聚合成型、尾巴摆动游动(点击穿透,不挡操作);
minSplashMs控制展示时长,到点弹窗 - 📊 鲸鱼下方极细进度线:0→100% 随真实启动进度推进
- 🖥️ 托盘常驻:打开主界面 / 系统浏览器打开 / 重启服务 / F12 开发者工具 / 开机自启 / 退出(退出时停止服务)
- 📜 服务日志写入
logs/dsh-server.log(自动轮转),启动失败可重试 - 🎨 图标与动画素材取自 DSH 官方
favicon.svg(鲸鱼路径),快捷方式图标为官方黑色鲸鱼
📋 环境要求 / Requirements
- Windows 10/11(本项目按 Windows 设计)
- Node.js ≥ 22(与 DSH 要求一致)
- pnpm(若
usePnpm: true) - DeepSeek Harness 仓库已就绪(构建产物可用:仓库根目录执行过
pnpm run build)
🚀 安装与使用 / Quick Start
# 1. 安装依赖(首次,联网下载 Electron 约 100MB)
cd dsh-workstation-launcher
npm install
# 1b. 若 electron 二进制未自动下载成功(node_modules\electron\dist\electron.exe 不存在):
node scripts\fetch-electron.cjs
# 2. 配置(可选):`repoDir` 留空时启动器会自动探测 DSH 仓库位置
# (磁盘根目录/用户主目录下名字含 harness 的文件夹、DSH_REPO_DIR 环境变量);
# 探测不到才需要手动填写。
Copy-Item config.example.json config.json
# 编辑 config.json:如自动探测失败,把 repoDir 改为你的 DSH 仓库根目录
# 3. 创建桌面快捷方式(可选)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\make-shortcut.ps1
双击桌面上的 DeepSeek Harness Workstation 即可;或直接双击启动器目录里的 启动 DeepSeek Harness.vbs(可移植:相对本目录定位 Electron,文件夹解压到任何位置都能用,无控制台窗口)。
注意:
npm的 ps1 包装脚本在受限环境下可能有问题,请用npm.cmd。config.json含个人路径,已在.gitignore中忽略,不会误提交。
⚙️ 配置 / Config(config.json)
| 字段 | 默认 | 说明 |
|---|---|---|
repoDir | 自动探测 | DSH 仓库根目录;留空自动探测(磁盘根/用户主目录下含 harness 的目录、DSH_REPO_DIR);找不到才手动填 |
port | 3080 | 服务端口,同时传给 --port 并作为检测/打开地址 |
usePnpm | true | true 用 pnpm dsh web;false 直接用 node --import tsx/esm apps/cli/src/bin.ts web |
nodePath / pnpmPath | 自动探测 | 留 null 自动 where 探测;也可写绝对路径 |
closeToTray | true | 关窗口是否驻留托盘;false 时关窗口 = 停止服务并退出 |
openAtLogin | false | 开机自启动(托盘菜单可切换,自动写回配置) |
startTimeoutMs | 180000 | 等待服务就绪的最长时间 |
minSplashMs | 3000 | 鲸鱼动画最短展示时长(毫秒);服务秒起也会展示这么久再弹窗 |
window | 1440×900 | 主窗口尺寸 |
🎨 图标与动画 / Icons & Animation
- 素材:官方 DeepSeek 鲸鱼路径(DSH 仓库
website/public/favicon.svg),由scripts/extract-whale.cjs提取到assets/whale-path.js - 快捷方式图标(官方黑色鲸鱼,透明背景):
node_modules\electron\dist\electron.exe scripts\render-logo-icon.cjs - 像素鲸鱼图标(窗口/任务栏):
scripts\render-pixel-icon.cjs - 启动动画:
src/splash.*+src/whale-pixels.js(72~80 网格栅格化,聚合 + 摆尾 + 蛇形游动 + 水泡)
🩺 常见问题 / Troubleshooting
- 端口被占:应用检测到端口已就绪就不会再拉起新进程,直接打开界面
- 启动失败:看
logs/dsh-server.log;常见原因是repoDir不对、Node 版本不符(≥22) - 换端口:改
config.json的port即可 - 想打包成独立 exe(无需 Node 环境):用
electron-builder或electron-packager打包本目录