Back to home

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.cmdconfig.json 含个人路径,已在 .gitignore 中忽略,不会误提交。

⚙️ 配置 / Config(config.json)

字段默认说明
repoDir自动探测DSH 仓库根目录;留空自动探测(磁盘根/用户主目录下含 harness 的目录、DSH_REPO_DIR);找不到才手动填
port3080服务端口,同时传给 --port 并作为检测/打开地址
usePnpmtruetruepnpm dsh webfalse 直接用 node --import tsx/esm apps/cli/src/bin.ts web
nodePath / pnpmPath自动探测null 自动 where 探测;也可写绝对路径
closeToTraytrue关窗口是否驻留托盘;false 时关窗口 = 停止服务并退出
openAtLoginfalse开机自启动(托盘菜单可切换,自动写回配置)
startTimeoutMs180000等待服务就绪的最长时间
minSplashMs3000鲸鱼动画最短展示时长(毫秒);服务秒起也会展示这么久再弹窗
window1440×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.jsonport 即可
  • 想打包成独立 exe(无需 Node 环境):用 electron-builderelectron-packager 打包本目录

📄 License

MIT