用桌面宠物显示任务状态
约 849 字大约 3 分钟
用桌面宠物显示任务状态
这案例干啥的
就是让桌面宠物不只是卖萌,还能"告诉你现在啥状态"。比如 CI 挂了它变红色哭脸,任务跑完了它举个小旗。
相当于给桌面配了个"活的状态指示灯"。
啥时候用
- 跑长任务(编译、训练、测试),不想一直盯着终端
- CI 状态想随时知道,但不想一直刷网页
- 多个任务并行,想一眼看全
- 给团队/同事看(投影时宠物状态很直观)
准备工作
- 已经有了桌面宠物(看 Hatch Pet 那篇)
- Codex 能调用宠物的"状态接口"(改表情、改颜色、播放动画)
- 知道你想监控啥(CI?脚本?服务健康?)
- 宠物脚本能对接你状态源(webhook、API、日志)
怎么搞
第一步:定义状态映射
想清楚:什么状态对应宠物的啥反应:
| 状态 | 宠物表现 |
|---|---|
| 一切正常 | 绿色光环,宠物悠闲走动 |
| 任务进行中 | 黄色光环,宠物在跑步 |
| CI 失败 | 红色光环,宠物哭脸 |
| 任务完成 | 烟花动画,宠物举旗 |
第二步:让 Codex 写个监控脚本
帮我写个脚本,每隔 30 秒查一次 GitHub Actions 的最近一次 run 状态。如果是 success,调宠物 API 设置"正常"状态;如果是 failure,设置"CI 失败"状态;如果是 in_progress,设置"进行中"。脚本跑成 daemon。
第三步:跑起来
启动监控脚本,它会在后台跑,定期更新宠物状态。
第四步:对接多源(可选)
想监控多个东西:
再加一个监控:每分钟 curl 一下 https://myapp.com/health,如果返回非 200,宠物设置"服务异常"状态。优先级高于 CI 状态。
第五步:点击交互
让宠物点击有反应:
点击宠物时,弹一个小窗显示当前所有监控的详细状态:CI 最近 5 次 run、服务健康度、当前正在跑的任务。
验证结果
- 状态变化时,宠物表现确实变了(颜色、表情、动画)
- 延迟可接受(状态变了到宠物反应,不超过 1 分钟)
- 点击交互能弹出详细状态
- 多个监控源同时跑,宠物显示的是"最高优先级"状态
注意事项
提示
状态轮询频率别太高,30 秒到 1 分钟一次够用了。频率太高容易触发 API 限流,也费电。
注意
别让宠物状态影响你工作。如果红色一直闪让你焦虑,改成"只在状态变化时闪一下,然后恢复静态"。宠物是辅助,不是干扰。
我的经验
我搞了个"心情系统":宠物有"开心""烦躁""崩溃"三个心情。任务都顺利时开心,有一个失败时烦躁,超过三个失败时崩溃(趴地上不动)。一眼看心情就知道整体啥情况,比看一堆数字直观。
还有,任务跑完时让宠物"举旗 + 放烟花",庆祝感拉满,同事都问咋弄的。
下一步
- 先看 Hatch Pet 生成宠物 把宠物弄出来
- 配合 安卓远程,手机上也能看到宠物状态
- 接 飞书机器人,关键状态变化同时推消息