最近刷到一个开源项目,看完截图的第一反应是:这也太可爱了。

先说个真实的困境
用过 AI 编程助手或者 Agent 的人,大概都碰过同一件事——
你挂着一个任务让它跑,然后就不知道它在干嘛了。
终端窗口那里,一行行日志滚过去,你也看不出它到底在"认真工作"还是"已经卡住了"。这种状态是透明的,但也是完全不可感知的。
如果你同时跑着好几个 Agent,或者想把工作状态分享给队友——就更难了。
有人把这件事做成了一个像素办公室
这个项目叫 Star Office UI,作者是 Ring Hyacinth 和 Simon Lee。
用一句话概括:
把 AI 助手(OpenClaw / 龙虾)的实时工作状态,映射成一个会动的像素办公室看板。
具体长什么样呢——办公室里有个小人儿,代表你的 AI 助手。它会根据当前状态自动走到不同的区域:
写代码中?走到工作台前坐下 在研究问题?跑去书架区
出 bug 了?站到红色故障角落 没任务?回到休息区晃悠
不是那种静态的状态标签,是真的会动的、有场景感的可视化。
它到底解决了什么问题
问题一:Agent 的工作状态是不透明的。
以前你只能盯着日志猜。现在这个看板做一件事:让"AI 在干嘛"变得一目了然,而且是有温度的那种——不是冷冰冰的 status: running,是一个小角色站在特定区域、头上飘着气泡文字说"正在整理文档"。
问题二:多 Agent 协作没有统一的展示入口。
项目支持邀请其他 Agent 作为"访客"加入同一个办公室看板。每个访客有自己的角色,可以持续推送状态,主人能同时看到多个助手的实时动态。
问题三:昨天做了什么,根本记不住。
看板里有一个"昨日小记"模块,后端自动从 Agent 的记忆文件里抽取前一天的内容,做基础脱敏后展示到卡片上。不用再翻日志对时间轴了。
几个真正有意思的细节
状态驱动位置移动
不是手动拖拽,是根据 state.json 文件里的状态值,角色会自动出现在对应区域。切换也只需要一行命令:
python3 set_state.py writing "正在整理文档"
python3 set_state.py error "发现问题,排查中"
python3 set_state.py idle "待命中"
支持接生图 API,房间可以装修
这个有点好玩——项目内置了"换背景"能力,接入 Gemini API 之后,可以直接输入主题词让 AI 重绘房间背景。相当于你的 Agent 可以"搬家",或者"给自己的办公室装修"。
移动端直接可用
外出时打开手机,也能看到当前 Agent 在干嘛。对于想随时掌握任务进度的场景,这个体验出乎意料地顺畅。
中英日三语切换
界面文案、角色气泡、状态说明全部支持 CN / EN / JP 切换,而且是实时联动的,不需要刷新页面。
stale 状态自动回 idle
如果 Agent 一段时间没有更新状态,系统会自动把状态判定为"闲置",避免看板上一直显示"工作中"但实际上啥都没发生的假象。这个细节挺体贴的。
架构上是怎么做的
整体结构不复杂:
后端是 Python(Flask),负责维护状态、提供 API、读取 memo 文件
前端是纯 HTML + JS,渲染像素场景和角色动画
Electron shell 也有,可以打包成桌面客户端
还有个实验性的 Tauri 桌宠版本,支持透明窗口悬浮在桌面上
多 Agent 通过 join key 机制接入,访客可以持续推送状态,离开时也可以主动 leave。整个状态同步是轻量的 JSON 文件 + API 轮询模式,部署门槛很低。
给谁用最合适
跑着 AI Agent 做日常任务、想知道它在干嘛的人
多 Agent 协作场景下需要统一状态展示的团队
对"AI 工具可视化"这个方向感兴趣、想自己改着玩的开发者
就是觉得像素风格很可爱、想摆一个在屏幕上的人
最后
这个项目刚开源不久,已经有 2000+ Star,227 个 Fork。
项目地址:https://github.com/ringhyacinth/Star-Office-UI
夜雨聆风