Nimbalyst:把多个编码代理的产出变成可审阅、可编辑的视觉工作台
该项目围绕「Nimbalyst - The open-source visual workspace for Claude Code, Codex, and OpenCode. Run multiple coding agents in parallel, edit their work visually in markdown, mockups, and diagrams, and track tasks. Free, MIT-licensed desktop app for macOS, Windows, Linux, with mobile companion for iOS and Android.」构建,适用于实际场景的开源实践,提供可复用的工具链与集成方式。
秒懂
- 它是什么?
- Nimbalyst 是一个 MIT 许可的 Electron 桌面应用,面向同时运行 Codex、Claude Code 等编码代理的开发者。它用 WYSIWYG 编辑器和红绿 diff 把代理的文本输出变成可逐项接受或拒绝的视觉对象,但它的工作流和扩展机制需要你花时间适应。
- 适合谁用?
- Nimbalyst 适合那些已经依赖 Codex 或 Claude Code、但苦于在终端里逐个检查代理输出的人。它把代理的工作从纯文本拉进可视化界面,红绿 diff 和会话看板确实能降低多代理并行时的混乱感。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 1 天前。
- 用什么语言写的?
- 主要是 TypeScript(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。
开源项目深度解析
终端之外,代理的产出需要一个可见的落点
编码代理的输出天然是文本流。Claude Code 在终端里打印 diff,Codex 给出修改建议,你只能上下翻动、肉眼比对。Nimbalyst 解决的是这个具体问题:它把代理的工作从终端挪进一个可视化界面,让你在渲染后的文档里直接看到改动,而不是在原始文本里猜。它面向的是一天要跑好几个代理会话、每个会话又改了多个文件的开发者。这类人已经接受了代理写代码,但还没接受盲信代理。Nimbalyst 想成为那个让你逐项检查、逐项放行的中间层。
一个工作台,多个代理,各自独立的 git worktree
Nimbalyst 的核心机制是会话隔离。每个编码代理会话跑在独立的 git worktree 里,这样并行任务不会互相踩文件。你可以在 Agent Manager 视图里同时启动 Codex 和 Claude Code,它们各改各的分支,你在同一个界面里跟踪所有会话。会话与文件双向链接:点开一个会话能看到它碰过哪些文件,点开一个文件能看到哪些会话改过它。这个链接关系不是事后整理的,而是运行时记录的。Session kanban 把每个会话变成卡片,你可以搜索、恢复、拖拽。整个状态都落在磁盘上的 markdown 文件里,没有私有数据库。这意味着你可以用任何工具查看会话状态,也可以随时把仓库推给其他人。
红绿 diff:把代理的改动变成可逐项裁决的对象
Nimbalyst 最值得注意的设计是红绿 diff 审阅。代理提出编辑后,你可以在渲染后的文档里逐步浏览每一处改动,红色是删除,绿色是新增,然后逐项接受或拒绝。这比在终端里看统一 diff 直观得多,尤其是 markdown 和 Mermaid 这类有格式的内容。文档里说编辑器和代理编辑的是同一个文件,所以你的修改和代理的修改会冲突,而这个 diff 界面就是解决冲突的地方。它迫使你以逐项而非整块的方式处理代理的输出,这减少了误接受的风险。代价是速度:如果你信任代理,逐项点击会拖慢流程。这不是给那些想让代理全自动跑完的人设计的。
WYSIWYG 编辑器:markdown、mockup、Mermaid 都能直接改
内置编辑器覆盖了 markdown、mockup、Mermaid、Excalidraw、CSV、数据模型和 Monaco 代码编辑器。这些编辑器都是所见即所得,你在界面里改,代理在文件里改,两者同步。mockup 编辑器带标注功能,适合产品讨论。Mermaid 和 Excalidraw 让图表成为可编辑对象,而不是只能看不能动的图片。这里有个隐含的取舍:编辑器越多,维护成本越高,但 Nimbalyst 用扩展机制来分摊这个成本。所有编辑器,包括内置的,都走同一个 EditorHost 契约。这意味着第三方编辑器与内置编辑器地位平等,不是二等公民。文档里提到已有扩展包括 Astro 网站编辑器、视觉 git log、思维导图、幻灯片和 3D 对象编辑器。如果你需要一种未覆盖的文件类型,可以让代理帮你写一个扩展。
任务跟踪:让代理读和写同一个 tracker
任务跟踪不是简单的待办列表。Nimbalyst 让代理直接编辑任务文件,添加、移动、执行都由代理完成,人类也可以手动改。这意味着任务状态不是单向的,代理完成一项任务后可以自己把它标记为完成,而不是等你手动同步。这个功能的价值在于减少你与代理之间的上下文切换。你不需要在对话里告诉代理“我已经完成了任务 X”,因为代理自己能看到 tracker。但它也要求你信任代理对任务状态的判断,如果代理误标记,你可能要花时间纠正。文档没有说明任务文件的具体格式,只说是 markdown。
移动端配套:把代理的等待变成可处理的通知
iOS 配套应用(SwiftUI 编写)让你在离开电脑时也能跟进代理。你可以看到哪些代理在等你回复,用文字或语音回复,代理会立即恢复。还能滑动浏览 diff,点击批准,以及排队下一个任务。推送通知在代理需要你时触发。这个设计解决的是多代理并行的真实痛点:代理卡在等你确认,而你不在电脑前。语音回复是个有趣的特性,它把移动端的输入成本降下来了。但要注意,移动应用只有 iOS 版本,Android 用户暂时没有官方配套。文档没有说明 Android 是否在计划中。
构建与扩展:npm workspaces 和 EditorHost 契约
Nimbalyst 是 TypeScript / Electron monorepo,用 npm workspaces 管理。构建命令很直接:npm install 安装依赖,cd packages/electron && npm run dev 启动开发模式,npm run build:mac:local 构建本地 Mac 二进制。主要 workspace 包括 packages/ios(SwiftUI 应用)、packages/electron(桌面应用)、packages/runtime(AI、同步、Lexical 编辑器)、packages/collab-protocol(协作同步协议的 wire-format 类型)、packages/extension-sdk(扩展开发套件)和 packages/extensions(内置扩展)。值得注意的是协作同步服务器是独立项目,客户端连接到 wss://sync.nimbalyst.com。这意味着如果你需要完全离线的多人协作,或者想自己托管同步服务,你得另外部署那个服务器。文档没有给出服务器的构建或部署细节。
限制与失败模式:alpha 代理、遥测和同步服务器
几个限制需要直接说。第一,OpenCode 和 GitHub Copilot 仍标记为 alpha,意味着它们可能不稳定,不适合生产依赖。第二,遥测默认开启,发送匿名使用数据到 PostHog,虽然文档声称不收集 PII、文件内容或路径,但默认开启这件事本身就值得注意。你可以在 Settings → Advanced → Analytics 里关闭。第三,同步服务器是独立项目,客户端默认连接官方 wss://sync.nimbalyst.com,如果你想自托管,需要额外工作。第四,移动端只有 iOS。第五,如果你只用一个代理,Nimbalyst 的会话管理和看板功能可能显得多余,终端加一个 diff 工具可能更轻量。它更适合多代理、多任务的场景,单代理用户可能感受不到价值。
编辑结论
Nimbalyst 适合那些已经依赖 Codex 或 Claude Code、但苦于在终端里逐个检查代理输出的人。它把代理的工作从纯文本拉进可视化界面,红绿 diff 和会话看板确实能降低多代理并行时的混乱感。不适合只跑单个代理、习惯纯终端操作、或者不愿意把工作流迁入新界面的开发者。采用前先验证三件事:你常用的代理是否在支持列表内(Copilot 和 OpenCode 仍是 alpha),telemetry 是否已按你的隐私要求关闭(Settings → Advanced → Analytics),以及你的文件是否真的能接受“内容与状态都以 markdown 存在 git 仓库”这种组织方式。如果你能接受这些前提,Nimbalyst 是目前少见的、把代理协作过程本身当作产品来设计的开源项目。
社区笔记