Bundle
dsh-wake
Wake up DeepSeek Harness: one-click desktop/taskbar/startup shortcuts that start the dsh web server (hidden) and open the GUI, a cold-start whale-girl dance overlay, and a close-button overlay with a fully-quit / close-window dialog.
- Source
- RickDeng005
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 13 days ago
Readme
# dsh-wake
> DeepSeek Harness (dsh) 唤醒插件 —— 点一下快捷方式,服务自动拉起、窗口自动打开,不用再敲 `npx @deepseek-ai/dsh web`。
`dsh-wake` 是一个 **DeepSeek Harness 宿主插件**(Host + Client),为 Windows 上的 dsh Web GUI 提供一套"开机即用"的桌面体验:
- **一键启动**:桌面 / 任务栏 / 开机自启快捷方式,点击即启动隐藏的 `dsh web` 服务并打开 GUI,全程无终端窗口。
- **冷启动动画**:服务未运行、首次启动较慢时,屏幕正中央弹出**鱼娘跳舞**的透明悬浮窗(自带素材,不依赖 whale-girl 插件)。
- **关闭弹窗**:在 GUI 窗口右上角 X 按钮上挂一个透明悬浮层,点 X 弹出「彻底关闭 / 关闭窗口 / 取消」对话框(DSH 设计语言风格)。
- **设置项**:在「设置 → 通用设置」里提供**开机启动**下拉开关(开启 / 关闭)。
---
## ✨ 功能
### 1. 一键启动(快捷方式)
点桌面 / 任务栏 / 启动文件夹里的 **DeepSeek Harness** 快捷方式:
1. 检测 `http://127.0.0.1:3080` 服务是否在运行
2. 未运行 → 后台隐藏窗口拉起 `dsh web`(等价于你手动敲的命令,离线直接调 node,更快)
3. 等就绪 → 打开 GUI 窗口(优先复用你的 Edge 应用窗口)
4. 已运行 → 直接打开窗口(幂等,随便双击)
### 2. 冷启动加载动画
服务未运行时(如开机后第一次点),屏幕正中央显示**鱼娘(whale-girl)跳舞动画**的透明置顶悬浮窗,几秒后服务就绪自动消失并打开 GUI。素材已打包进插件(`assets/celebrate.png`,MIT 许可),**不需要用户额外安装 whale-girl**;万一素材缺失则退化为 🐳 表情摆动动画。
### 3. 关闭悬浮层 + 二选一弹窗
GUI 窗口右上角的 **X** 上盖了一个透明悬浮层(轮询跟随窗口位置):
- 点 X → 弹出 DSH 风格对话框:
- **彻底关闭** —— 停止后台 `dsh web` 服务并释放内存
- **关闭窗口** —— 只关 GUI 窗口,后台服务继续运行,下次秒开
- **取消**
- 悬浮层可无限次使用(每次点击新建弹窗,不会"点一次就消失")。
### 4. 设置项:开机启动
「设置 → 通用设置」里的 **开机启动 DeepSeek Harness** 下拉框(开启 / 关闭),与语言选择器等原生选择器同款样式(浅灰胶囊 + 设计系统主题色)。关闭后移除启动文件夹快捷方式;状态持久化在 `~/.dsh/launcher/state.json`。
---
## 📦 安装
### 从本地目录安装(开发 / 使用)
```sh
dsh plugin --profile web add file:<path-to-dsh-wake>
```
### 从 npm 安装(发布后)
```sh
dsh plugin --profile web add dsh-wake
```
安装后**重启 dsh web**(或点桌面快捷方式冷启动)生效。首次激活会自动生成启动器脚本与快捷方式(桌面 + 启动文件夹)。
> 注意:插件声明了 `dsh.bundle`,安装后通过 `dsh plugin` 的 reconcile 自动加入 profile 层;带 `config` 的 patch 需要重启激活,纯 insert patch 可热挂载。
---
## 🖥️ 使用
| 操作 | 效果 |
|---|---|
| 点桌面 / 任务栏「DeepSeek Harness」 | 启动服务(如未运行)+ 打开 GUI |
| 冷启动等待时 | 屏幕中央鱼娘跳舞动画 |
| 点 GUI 右上角 X | 弹出 彻底关闭 / 关闭窗口 / 取消 |
| 设置 → 通用 → 开机启动 | 下拉开启 / 关闭开机自启 |
**任务栏固定**(Windows 限制,需手动):右键桌面快捷方式 → 固定到任务栏。
---
## ⚙️ 配置与 HTTP 接口
插件自动检测环境(node 路径、dsh 入口、工作区、端口、Edge 应用窗口),通常无需配置。可用 `config` 覆盖(需要重启激活):
| 配置项 | 说明 | 默认 |
|---|---|---|
| `workspace` | 服务启动目录 | 工作区注册表路径 |
| `port` | GUI 端口 | `3080` |
| `nodeExe` / `dshEntry` | 服务启动入口 | 自动检测 |
| `scriptDir` | 启动器脚本目录 | `~/.dsh/launcher` |
| `autoSetup` | 激活时自动生成脚本+快捷方式 | `true` |
HTTP 路由(同源 POST 需带 Origin):
| 路由 | 方法 | 说明 |
|---|---|---|
| `/dsh-wake/status` | GET | 当前状态(脚本、快捷方式、开机启动开关) |
| `/dsh-wake/setup` | POST | 重新生成脚本 + 刷新快捷方式 |
| `/dsh-wake/startup` | POST | `{enabled: true/false}` 开/关开机自启 |
| `/dsh-wake/remove` | POST | 移除快捷方式(保留脚本) |
| `/dsh-wake/log` | GET | 启动器日志尾部 |
---
## 📁 项目结构
```
dsh-wake/
├── package.json # 包声明(dsh.bundle / dsh.client / exports)
├── cordis.patch.yml # 纯 insert patch(可热挂载)
├── lib/
│ ├── index.js # 宿主插件入口:路由 / 自动 setup
│ └── launcher.js # 环境检测、脚本生成、快捷方式管理、悬浮窗生成
├── client/
│ └── client.js # 客户端 bundle:通用设置「开机启动」下拉
├── assets/
│ └── celebrate.png # whale-girl 跳舞精灵图(内置,MIT)
├── README.md
└── LICENSE
```
启动时在 `~/.dsh/launcher/` 生成:
- `dsh-launcher.ps1` —— 一键启动脚本(隐藏拉起服务 + 打开 GUI)
- `dance.ps1` —— 鱼娘跳舞悬浮窗
- `close-overlay.ps1` —— X 按钮悬浮层 + 关闭对话框
- `state.json` —— 持久化状态(开机启动开关)
- `dsh-launcher.log` —— 启动器日志
---
## 🛠️ 开发
```sh
# 修改源码后同步到已安装的插件(file: 安装为副本)
copy lib\*.js %DSH_HOME%\profiles\web\node_modules\dsh-wake\lib\
# 重新生成启动器脚本 / 悬浮窗脚本
node -e "import('file:///…/dsh-wake/lib/launcher.js').then(m => { const e = m.detectEnv({}); m.writeLauncherScript(e); m.writeDanceScript(e); m.writeCloseOverlayScript(e); })"
```
## 📜 许可与署名
- 本插件:**MIT**(见 [LICENSE](LICENSE))
- 内置素材 `assets/celebrate.png` 来自 [whale-girl](https://github.com/vlln/whale-girl)(MIT,© 2026 Sam Gao / vlln,角色 credit:ZipZipPipe)
---
## 🗺️ Roadmap
- [x] 桌面 / 任务栏 / 开机自启快捷方式
- [x] 冷启动鱼娘跳舞动画(自带素材)
- [x] X 按钮悬浮层 + 关闭对话框(彻底关闭 / 关闭窗口 / 取消)
- [x] 设置 → 通用 → 开机启动下拉开关
- [ ] 发布到 npm + dsh-market 插件市场收录
- [ ] Agent 工具(`dsh_wake_status` / `dsh_wake_setup`)
Install
dsh plugin --profile web add github:RickDeng005/dsh-wake
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-wake from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.