前言¶
DeepSeek Harness(DSH)的 Web 界面加载完成后,通常直接进入工作区。若你希望每次启动有一段固定的视觉开场——而不是自己改前端或塞静态图——需要一种挂在 Harness 扩展点上的做法:覆盖层播完再淡出,参数能在设置里改,且不必动宿主核心代码。
下面介绍社区插件 dsh-inju-boot(INJU 启动动画,维护者 inju0524)。它在 DSH 分类里属于「趣味换装」:每次启动全屏播放一支 WebGL2 实时粒子动画(花 → 月球 → 虚影文字 → 实体 LOGO),可选极客 HUD / 终端层与程序化音效,播完自动把界面交还给你。
这是什么¶
dsh-inju-boot 是一个 DSH bundle 插件(dsh.id 为 dsh-inju-boot,package 版本 1.0.0),主要做两件事:
| 能力 | 挂载点 |
|---|---|
| 启动覆盖层 | shell.overlay,页面加载后全屏播放,到设定位置后淡出 |
| 设置页 | settings.section,与宿主其它设置页并排,动画参数在此调整 |
动画本体是零 npm 运行时依赖的单文件 WebGL2 作品:默认约 6 万颗自发光粒子、10 个阶段(完整循环约 21.05 秒,README 示例 GIF 标注 6.3 秒为 10 段硬切预览节奏),程序化 3D 雏菊、粒子月球、虚影文字与实体 LOGO,并有一层画在画布内的极客 HUD(数字雨、目标框、扫描线、点云小图、终端日志、遥测、hex dump 等)。另有一层 DeepSeek Harness 产品身份装饰:如 DEEPSEEK HARNESS 铭牌、root@deepseek-harness:~# dsh --profile desktop、遥测里的 MODEL / RUNTIME 与 DSH 启动序列式终端日志。
插件还注册本地 HTTP 路由(/api/inju-boot/*),用于提供动画页、合成配置等;权限说明见 package 中的 dsh.permissions 字段。
- 目录页:https://www.skillhub.cn/plugins/inju0524/dsh-inju-boot
- 源码与文档:https://github.com/inju0524/dsh-inju-boot
- 许可证:MIT(README badge)
- 运行环境:Node.js >= 20
动画在播什么¶
README 用表格列出了 10 个阶段及默认时间轴(数值来自动画目录的 inju.config.js)。节选如下,便于对照设置里的「结束阶段」与「时长倍率」:
| 阶段 | 时间(约) | 画面要点 |
|---|---|---|
| 汇聚 | 0 – 3.2s | 星尘聚成参数化 3D 雏菊 |
| 花体 · 环绕巡游 | 3.2 – 5.8s | 相机环绕花体 |
| 崩解 | 5.8 – 7.3s | 粒子向外爆散 |
| 重聚 | 7.3 – 9.3s | 聚合成 3D 粒子月球 |
| 月球 · 静默自转 | 9.3 – 11.7s | 月面光照旋转 |
| 显影 → 虚影 · 闪烁漂移 | 11.7 – 15.7s | 月球变为虚影文字并漂移 |
| 像素偏移闪切 | 15.7 – 16.45s | 切片错位、RGB 分离等 |
| 实体 · 平面 LOGO | 16.45 – 20.05s | 硬切实体 LOGO + 扫光 |
| 循环 · 淡出 | 20.05 – 21.05s | 淡出并可循环 |
各阶段时长、粒子尺寸、抖动、爆散冲量、体积光等,可在设置页或通过 inju.config.js 覆盖调整。
核心功能(已文档说明部分)¶
启动覆盖层与播放控制¶
- 启用启动动画:总开关。
- 每次启动只播一次:会话级去重,开发热重载时不会反复重播。
- 时长倍率:等比拉伸整条时间轴。
- 结束阶段 / 淡出时长:可只播到某一阶段末尾再淡出。
- 点击 / 按键中断、右下角跳过按钮(Esc 始终可跳过)。
画面与 HUD¶
- LOGO / 虚影文字、粒子数量(1000 ~ 400000)、尺寸 / 亮度 / 泛光 / 机距。
- 极客 HUD / 终端层(可选,默认开启)。
- 模式:
flower3d(程序化 3D 雏菊)或photo(照片粒子化)。 - Windows 桌面端:可选顶栏融入动画、动画期间隐藏「应用 / 编辑」菜单(README 标明仅 Windows 桌面端)。
背景音乐与浏览器策略¶
- 背景音乐 / 音效开关;音量 0~1;首次点击只解锁声音(默认开,第一次点击/按键只出声、不中断动画)。
- 自动播放被拦截时可提示。
配置持久化与优先级¶
用户配置落在 <DSH_HOME>/inju-boot/config.json(默认 ~/.dsh/inju-boot/config.json)。优先级为:内置默认值 ← cordis.patch.yml 种子 ← config.json(设置页写入)。
高级项包括:动画目录(留空则自动探测)、HUD 终端台词(一行一条 秒 文本,{text} 替换为 LOGO 文字)、inju.config.js 覆盖(JSON 深度合并到动画目录的配置上)。
动画资源查找顺序(README):
- 设置页显式填写的「动画目录」(含
inju-particles.html的目录) - 插件上一级目录(便于与自有动画工程联调)
- 插件自带
assets/副本
Host 对 inju.config.js 做运行时合成(动画目录配置 + 设置页 advanced 覆盖 + 时间轴倍率),动画按请求读取,改配置后刷新页面即可,不必重启 Harness;新增 bundle 本身仍需重启一次(见安装说明)。
安装与启用¶
安装前请自行阅读仓库源码与 MIT 许可证。插件在 DSH 进程权限下运行,并请求覆盖层、设置页与本地 /api/inju-boot/* 路由。
方式 A:Harness 内 plugin_manager(推荐)¶
让 Harness 里的 Agent 调用 plugin_manager,target 填本仓库在本机的绝对路径:
plugin_manager action=install_bundle target=<这个仓库的绝对路径>
它会写入 profile 的 package.json / cordis.patch.yml 并完成安装;README 明确建议不要手改这两个文件。
方式 B:dsh CLI¶
dsh --profile <你的 profile> plugin add "file:<这个仓库的绝对路径>"
或从 GitHub 安装:
dsh --profile <你的 profile> plugin add "github:inju0524/dsh-inju-boot"
装完后重启一次 Harness(新增 bundle 需重新组装 profile)。下次启动即可看到动画。
卸载示例:
plugin_manager action=remove_bundle target=dsh-inju-boot
若仅暂时不想看:在设置页关闭「启用启动动画」,或在 cordis.patch.yml 对应行加 disabled: true。
典型用法¶
在设置里调参¶
打开 Harness 设置 → INJU 启动动画,按分组调整播放、跳过、画面、背景音乐与高级覆盖。需要改时间轴手感时,可在「inju.config.js 覆盖」里只写要改的键,例如:
{
"camera": { "orbitYaw": 0.6, "dist": 20 },
"moon": { "radius": 2.6, "craters": 110 },
"render": { "bloom": 1.2, "exposure": 1.1 },
"hud": { "brand": { "title": "MY HARNESS", "subtitle": "我的启动序列" } },
"stages": [ { "dur": 3.2 }, { "dur": 4.0 } ]
}
stages 按下标合并,只写需要改的阶段即可。
单独预览某一帧(Harness 已运行)¶
插件将动画挂在 /api/inju-boot/boot.html。README 示例(默认端口 19387,以你本机为准):
http://127.0.0.1:19387/api/inju-boot/boot.html?t=4.0&hud=0&telemetry=1
http://127.0.0.1:19387/api/inju-boot/boot.html?t=10.5&hud=0&telemetry=1
http://127.0.0.1:19387/api/inju-boot/boot.html?t=17.6&hud=0&telemetry=1
查询参数含义:t= 定格秒数;hud=0 隐藏页面 DOM 装饰;telemetry=1 保留极客 HUD。关背景音乐时动画侧使用 ?audio=0(与设置里关闭背景音乐一致)。
仓库内自检(开发者)¶
package.json 中测试脚本包括:
node tools/selftest.mjs && node tools/selftest-client.mjs && node tools/check-animation.mjs
查看 HUD 绘制调用示例:
node tools/check-animation.mjs --dump
适用场景与注意¶
适合谁:希望在 DSH 桌面/Web 启动时有一段统一、可配置的粒子开场,且愿意接受全屏覆盖层与可选音效的开发者;分类上属于界面「趣味换装」,不改变 Agent 逻辑。
需要注意:
- 粒子数、分辨率与 HUD 开关会影响 GPU 与观感;低配机器可在设置里降低粒子数量或关闭 HUD。
- 浏览器可能拦截自动播放音频,插件提供了首次交互解锁与提示项。
- 社区目录 SkillHub 与 GitHub 仓库由社区维护,并非 DeepSeek / 幻方官方应用商店;安装前请核对仓库与权限说明。
- README 要求 Node >= 20;与 DSH profile 组装方式一致,新增插件后需重启 Harness 一次。
结尾¶
dsh-inju-boot 把 INJU 粒子启动序列接到 DSH 的 shell.overlay 与设置页上:10 阶段 WebGL2 动画、可选 HUD 与音效,参数集中在「INJU 启动动画」设置与 config.json。若你要给 Harness 加一支可调的启动画面,可按上文安装命令接入,并在设置里按会话需求开关或缩短播放。