日常用 Agent 写代码,很快就会碰到一件烦事:同一件事要开好几个 Agent 。
一个在修 bug ,一个在看 CI ,一个在 worktree 里试另一条线。它们共享同一个仓库、同一套上下文,工具却逼你切——终端 tab 、再开一个窗口、再开一个 TUI 。谁在等你确认、刚才看到哪一行,全靠脑子暂存。切两次,上下文就丢一块。
所以我做了 Mosaic 。一张无限画布,每个 Agent 是一块 tile 。同一个项目围着一个 Workspace ,位置就是上下文:要看谁,平移过去;要对照,两块并排放。多 Agent 开发从「切来切去」变成「摊在桌上」。
这张图是我自己在用的房间。几个彩色圆是不同项目的 Hub ,每个旁边挂着自己的 Grok ; worktree 也单独占一块。没有全屏切换,也没有把会话藏进标签页。
看到 FlutterFlow 的 Campus 之后,我决定用原生技术复刻这个「工具摊在画布上」的想法。Campus 装下来超过 900 MB ; Mosaic 现在 24.5 MB 。AppKit + SwiftUI ,终端是真 PTY ,笔记是系统文本视图,房间和布局存在本地 SQLite ,没有账号。滚动、缩放、快捷键、窗口行为都是 macOS 自己的那一套。
画布上不只有 Agent 。终端、笔记、Git diff 、网页、别的 App 窗口的实时画面,都可以放上来。Room 是一整张画布; Workspace 是画布上的圆形 Hub ,把同一件事的 session 、改动和笔记连在一起。折叠只是收起呈现,进程还在跑。谁在等你,右上角会有计数,点一下飞到最旧的那条。
目前是 1.0.0 preview ,要求 macOS 15+、Apple 芯片。官网: https://anderson-hyl.github.io/mosaic-web/
欢迎拍砖。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.