前言¶
在 DeepSeek Harness(DSH)里跑长回合时,界面往往只有进度与日志:工具是否在跑、是否在等你确认、上下文是否快满,都要自己扫状态栏。社区插件 dsh-pajama-whale 把一只可拖拽的「穿蓝鲸连体睡衣」小桌宠叠在 shell.overlay 上——先当玩具推来推去,再在 thought cloud 里用姿势和短句反映当前会话在做什么。无需额外配置,也不发起独立网络请求。
这是什么¶
维护者 lubenkov 在 GitHub 开源的 npm 包 dsh-pajama-whale(当前发布版本 0.3.6,MIT)。SkillHub 目录分类为「趣味换装」。插件占一个 overlay 槽位:129 帧精灵图内联进约 3.1 MB 的 client.js,安装时不构建、不 postinstall 拉资源。
核心功能¶
拖拽与贴边¶
| 你的操作 | 桌宠反应 |
|---|---|
| 拖拽 | 跟指针移动;慢松手则停住,松手速度超过约 120 px/s 会「飞出去」。无重力、无反弹。 |
| 拖向窗口四边 | 贴边压扁:四个方向各 8 帧,帧由 overshoot(最多约 110 px)或投掷速度决定,贴住直到再拖走。 |
| 点击身体 | thought cloud 约 5 秒显示当前 context pressure,或未知时显示会话标题。 |
| 悬停 / 点击气泡 | 悬停时持续显示同样信息;点击气泡打开它正在观察的会话。 |
独处约一分钟后进入 16 帧循环的 sleepy;用光标靠近会打 13 帧哈欠;新回合开始则静默醒来。闲置时在眨眼(约 75%)与摇尾(约 25%)之间随机,间隔约 1.9–4.5 秒,偶发 hmm… 气泡。
跟随 Agent 会话¶
插件只读会话状态、context pressure、会话标题与近期工具活动来选择姿势,不向外部发送数据;除桌宠位置、贴边侧、压扁深度与 stuck 标记外,仅写入本机 localStorage。
| 会话情况 | 桌宠表现 |
|---|---|
| 本回合有工具执行 | working:掏出笔记本,12 帧 |
| 回合进行中、无工具活动 | thinking,20 帧 |
| 回合结束 | 一次 joy |
| 等待你批准或回答 | 气泡显示 ? |
| 上一回合失败 | 约 6 秒显示 ! error |
| context pressure ≥ 80% | 一次 surprised;≥80% 期间气泡显示 context N%,降到 75% 以下后 surprised 可再次触发 |
| 连续工作约 50 分钟 | 约 9 秒提示 take a break?(之后每 45 分钟重复;中断少于 3 分钟仍算连续) |
| 安静约一分钟 | 入睡;见上节唤醒规则 |
气泡优先级(高到低):悬停/点击读 context → ? → ! error → take a break? → context N% → 闲置 hmm…(约 3.6 秒,每 70–160 秒)。拖拽或贴墙时姿势与一次性情绪暂停,压扁帧优先。
文案随 Settings → Language 的 ctx.locale 走中英文,其余语言回退英文。
性能与交互边界¶
overlay 在桌宠身体与气泡外使用 pointer-events: none,尽量不挡操作。闲置且无姿势播放时停止 requestAnimationFrame 循环;标签页隐藏时浏览器会挂起 rAF,并显式停止呼吸动画。prefers-reduced-motion 下关闭呼吸与随机情绪,姿势动画仍播放。位置与贴墙状态在窗口缩放时会 clamp 后仍从 localStorage 恢复。
安装与启用¶
package.json 声明 DSH 版本范围:>=0.2.1-rc.2 <0.3.0-0。超出范围时安装或 profile 启动会拒绝加载 bundle,需按 COMPATIBILITY.md 了解豁免命令与降级行为。插件以当前 DSH 进程权限运行,安装前建议浏览仓库源码与 MIT 许可证。
Web(README 注明在 DSH 0.2.1-rc.2 上验证):
dsh plugin --profile web add dsh-pajama-whale
默认安装 npm 最新版;固定版本可在包名后加 @0.3.6。若要从 GitHub 标签安装:
dsh plugin --profile web add github:lubenkov/dsh-pajama-whale#v0.3.6
(需要本机有 git。)
Desktop(终端):npm 版 dsh CLI 不能使用保留的 desktop profile。先在应用菜单通过 Manage dsh Command… 安装命令,退出应用后执行:
dsh plugin --profile desktop add dsh-pajama-whale
再重新打开应用。
Desktop(应用内):打开 Plugins 页安装 dsh-pajama-whale,按提示重启。
卸载:
dsh plugin --profile <profile> remove dsh-pajama-whale
典型用法¶
- 在与你实际启动一致的 profile(
web或desktop)里完成上述add。 - 长回合运行时观察姿势:工具阶段为
working,纯推理为thinking,结束时有joy。 - 需要确认或 context 紧张时看气泡:
?、context N%或失败时的! error。 - 想确认当前压力或标题:点一下桌宠或悬停气泡;点气泡进入对应会话。
- 贴边、投掷、睡觉纯属 UI 消遣,不影响 Agent 逻辑。
若桌宠不出现:确认 profile 一致、DSH 版本在声明范围内;可在控制台设置 localStorage['pajama-whale:debug'] = '1' 后 reload,气泡会打印 live channels(缺失 channel 时仍可渲染与拖拽,见 COMPATIBILITY.md 的 degradation 说明)。
适用场景与注意¶
适合希望在 DSH 窗口里有一个轻量、无配置的会话状态可视化,同时能接受 overlay 桌宠占用少量内存(内联 WebP 约 2.3 MB + 单文件 client)的用户。不适合需要可配置主题、远程资源或 telemetry 的场景——本插件明确无配置、无出站请求、无 telemetry。
DSH 生态是「一切皆插件」;SkillHub 目录页 为社区索引,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-pajama-whale 把 draggable 桌宠与 Agent 状态读数叠在同一 overlay:贴边压扁、眨眼睡觉是消遣,笔记本、? 与 context 气泡是等你介入的信号。无构建安装、MIT 开源。
- 目录页:https://www.skillhub.cn/plugins/lubenkov/dsh-pajama-whale
- 源码与 README:https://github.com/lubenkov/dsh-pajama-whale