Daintree:把 Claude、Codex 和 Gemini 放进同一套 Git worktree 指挥台
现在很多人的本地开发现场,已经越来越像一个小型调度中心。
- 一个仓库里同时跑前端、后端、测试和 dev server;
- 同一时间开着 Claude Code、Codex、Gemini CLI 之类不同代理;
- 每个代理最好还有自己的 branch 和 worktree;
- 人自己还得在这些会话之间来回 review、补上下文、接回卡住的任务。
问题是,大多数工具只照顾了其中一块。
- 终端会告诉你“它还活着”,但不会帮你管理一整组代理;
- worktree 工具能分支隔离,但不会把代理状态和项目切换整合起来;
- 一些 agent 面板更像聊天入口,不像真正的本地运行态控制台。
今天想记下的 daintreehq/daintree,切的就是这块。
按 GitHub API、仓库 README、最新 release 页在 2026-06-29 的公开信息,这个仓库当前约有 43 stars、6 forks,创建于 2025-11-28,最近一次公开推送发生在 2026-06-29。仓库主语言是 TypeScript,项目官网为 daintree.org。最新稳定版本是 v0.20.0,发布时间为 2026-06-28。README 和源码中的 package.json 当前都写明项目采用 Apache-2.0。
项目概览
| 属性 | 详情 |
|---|---|
| 仓库 | daintreehq/daintree |
| 定位 | 面向 AI 编码代理并行协作的 delegation environment |
| Stars | 43 |
| Forks | 6 |
| 主语言 | TypeScript |
| 主要形态 | Electron 桌面应用 |
| 创建时间 | 2025-11-28 |
| 最近公开推送 | 2026-06-29 |
| 最新版本 | v0.20.0 |
| 版本发布时间 | 2026-06-28 |
| 支持平台 | macOS、Windows、Linux |
它关心的不是“单个 AI agent”,而是“一群 agent 的现场管理”
README 里给 Daintree 的一句定位很直接:它是一个给 AI coding agents 准备的 habitat。
这个说法其实挺准,因为 Daintree 解决的不是“怎么再开一个代理”,而是下面这些已经开始变得真实的问题:
- 多个代理同时工作时,谁卡住了;
- 哪个代理正在处理哪个 worktree;
- 哪些分支已经有提交、PR、issue 线索;
- 哪些会话需要你补一句提示,哪些暂时不用管;
- 切去另一个项目后,前一个项目的代理群还能不能继续保持秩序。
很多工具默认你一次只和一个 agent 打交道,Daintree 则明显假设你会同时管理一整组 agent terminals。
这两种假设差别很大。
前一种是“把代理跑起来”,后一种是“把代理群组织起来”。
Git worktree 在这里不是配角,而是整个并行模型的骨架
README 里多次强调的一点,是 Daintree 会把多个 agent 分配到不同的 git worktrees 里运行。
这非常关键。
因为当下很多 AI 编码工作流的问题,不是模型不够强,而是运行环境太容易互相污染:
- 一个代理改 API;
- 一个代理试重构;
- 另一个代理跑实验性方案;
- 你自己还想保留一个稳定工作区 review 最终结果。
如果这些动作都挤在一个目录里,冲突几乎是必然的。
Daintree 的思路不是去发明新的版本控制系统,而是建立在开发者已经接受的 git worktree 之上,再往上加一层:
- 可视化 worktree 仪表板;
- 每个 worktree 对应 agent 会话;
- 项目切换和状态观察;
- 和终端、上下文、通知、动作系统打通。
这让它更像一个 worktree-native 的多代理控制台,而不是泛泛的 AI IDE。
它最实际的一点,是把“广播、观察、接管”做成了一整套闭环
我觉得 Daintree 最有意思的,不只是能开很多代理,而是它把并行协作里最机械、最容易乱的一套动作串了起来。
README 里列出的主轴包括:
- Fleet Broadcasting:一条提示词同时发给多个代理;
- Worktree Dashboard:统一看每个分支和 worktree 状态;
- Context Injection:按需把文件和结构化上下文送进指定代理;
- Notification Center:哪些代理在等你、哪些已经完成;
- MCP Server:让代理自己调用 Daintree 的动作。
这套设计的价值在于,它不把人从回路里拿掉,而是减少人做低价值切换操作的次数。
比如说:
- 你可以把同一个需求广播给 4 个代理,比较不同解法;
- 你能很快看出哪一个代理停在 waiting,哪一个已经完成;
- 你能把上下文精确送到某一个终端,而不是手动复制粘贴大段内容;
- 你还能通过动作系统让代理自己触发一些受控操作。
这就比“开很多终端标签页然后凭记忆管理”高级了一个层级。
Daintree Assistant 的重点,不是换模型,而是统筹你已有的代理 CLI
README 对 Daintree Assistant 的描述也很值得注意。
它并不是试图重新训练一个新的编程模型,也不是要求你订阅一套独占后端。相反,它明确写的是:
- 可以跑在你已经安装的 agent CLI 之上;
- 支持 Claude Code、Gemini CLI、Codex、GitHub Copilot CLI 等;
- 能跨 worktree 生成新 agent 终端;
- 可以批量广播提示、观察进度、注入上下文、触发 git 操作。
这意味着 Daintree 选的是一个很现实的方向:
不是替代你已经在用的代理,而是成为这些代理的 macro-orchestration layer。
这个判断我比较认同。
因为今天真正缺的往往不是“再多一个会写代码的 agent”,而是一个能把现有代理工作流组织起来的上层控制面。
它开始把 MCP 和插件系统推成稳定接口,这件事比界面更重要
如果只看首页截图,Daintree 很容易被理解成“一个做得比较完整的 agent 桌面壳”。
但看最新 v0.20.0 的 release notes,会发现它的重点已经不止于 UI。
这个版本里最值得注意的有几块:
- 插件系统开始收敛到 1.0 contract;
- 插件可贡献
views、mcpServers和可启动 agent; - MCP 路径继续增强,包括终端状态、截图、工作树资源生命周期、更多 write operations;
- 项目切换和终端渲染做了明显的性能与稳定性修复;
- 去掉了 per-terminal hibernation,优先保证后台 agent terminal 的连续性。
这透露出一个很清楚的方向:Daintree 并不满足于做“本地多开几个 agent 的 GUI”,而是在把自己塑造成一个 可扩展的代理工作环境底座。
一旦插件和 MCP 表面稳定下来,它的上限就不只取决于官方原生功能,而取决于外部怎么接入它。
这比单纯多几个按钮更重要。
它和普通终端聚合器的差别,在于状态语义更强
从 README 和 release notes 看,Daintree 很明显不想只做 terminal multiplexer。
传统多终端工具擅长的是:
- 布局;
- 会话保存;
- 分屏;
- 快捷键切换。
但 Daintree 试图管理的是更高一层的状态语义:
- 这个终端是不是 agent;
- 这个 agent 属于哪个 worktree;
- 当前是 working、waiting 还是 completed;
- 有没有需要人类授权的 MCP 操作;
- 哪个项目切换后应该保留哪些运行态。
这让它和 tmux、Tabby、Warp 这类工具不是完全同一类别。
它当然仍然依赖终端,但它想处理的是 agent orchestration metadata,而不仅是字符流。
新版本里对 project switching 和终端恢复的投入,说明作者抓到了真正痛点
v0.20.0 的 release notes 里有一大块都在讲:
- cold switch 和 warm switch 的体验;
- view cache 和 host pool;
- hidden terminals 的渲染问题;
- alt-screen TUI 的错乱;
- 背景 agent 的输出与恢复。
这部分很技术,但反而说明项目方向靠谱。
因为当你真把多个代理、多个 worktree、多个项目一起跑起来时,最大的烦恼往往不是“没有功能”,而是:
- 一切一切都开始变慢;
- 项目切换开始卡;
- 终端显示开始乱;
- 后台会话开始失真;
- 你无法信任工具展示给你的状态。
作者把大量精力花在切换、恢复、渲染、等待态这些“看起来不性感”的问题上,说明它已经进入实战阶段,而不只是概念演示。
适合谁
我觉得 Daintree 比较适合这些人:
- 已经把多个 AI 编码代理纳入日常开发的人;
- 经常同时维护多个 branch 或 worktree 的人;
- 需要比较多份 agent 产出的差异和质量的人;
- 希望把本地代理工作流整理成可观察系统的人;
- 对 MCP、插件、自动化动作链有兴趣的人。
尤其如果你最近的开发现场已经变成这样:
- Claude 负责实现;
- Codex 负责补丁和重构;
- Gemini 负责第二意见;
- 你自己负责 review、合并和方向修正;
那 Daintree 的问题定义就会显得非常准确。
也要看清它的边界
当然,Daintree 也不是万能层。
至少按当前 README 和公开发布信息看,它更像:
- 本地优先的桌面调度环境;
- 面向个人或小团队的代理协作台;
- 围绕 git worktree 和 agent CLI 的控制面。
它不是:
- 云端代码代理托管平台;
- 通用远程集群编排系统;
- 生产部署平台;
- 替代 Git 本身或替代 IDE 本身的唯一入口。
另外,它现在仓库 stars 仍然不高,项目更新很快,这通常意味着两件事同时存在:
- 新想法和演进速度很高;
- 接口、行为和工作流仍可能频繁变化。
如果你想要绝对稳定、极少变化的企业工具,这类项目需要更谨慎评估。反过来,如果你就是在寻找下一代本地 agent 工作台,这种阶段反而值得跟。
小结
daintreehq/daintree 最值得看的地方,不只是它能同时放下 Claude、Codex 和 Gemini。
更关键的是,它对今天 AI 编码现场的判断比较到位:
- 多代理并行会变成常态;
- worktree 隔离会越来越重要;
- 人类 review 和调度仍然在回路中央;
- 真正的摩擦点是切换、观察、接管和恢复。
Daintree 的做法,就是把这些摩擦集中进一个 worktree-native 的桌面控制面里处理。
如果你现在只是偶尔开一个代理,它可能显得太重;但如果你已经开始管理一群代理、多个 branch 和多个项目,它就很值得认真研究。