过去的终端是给一个人用的。
你打开一个 shell,输入命令,看输出,切到另一个 tab,再回来继续。即使窗口里有很多 pane,本质上也还是一个人在主动操作一组命令行。
AI 编码 agent 改变了这个关系。现在更常见的画面是:一个 agent 在修 bug,一个 agent 在读代码,一个 agent 在跑测试,另一个 agent 在某个 worktree 里试一个不确定的方案。人不再只是“使用终端”,而是在监督多个终端里的工作。
这时候,传统 tab 和分屏就开始吃力。
问题不是终端不够好
很多终端工具会强调启动速度、渲染性能、主题、补全、命令提示。这些都重要,但它们解决的是“单个终端是否好用”。
多 agent 编码的问题不是这个。
真正的问题是:
- 哪个 agent 正在跑?
- 哪个 agent 在等我输入?
- 这个终端属于哪个 worktree?
- 这个 diff 是谁改出来的?
- 哪个任务已经可以收尾?
- 哪条线索只是暂时搁置,不应该从脑子里消失?
这些问题很少能靠一个更漂亮的 terminal tab 解决。因为它们不是字符渲染问题,而是工作现场的组织问题。
多 agent 工作需要空间感
人类本来就靠空间组织工作。
你可能会把文档放在左边,把终端放在右边,把浏览器放到另一个屏幕。时间久了,位置本身会变成记忆的一部分。你不需要每次都读标题,只要看一眼位置,就知道那块区域在做什么。
AI agent 的工作也适合这样组织。
一个负责 review 的终端,不应该和一个负责实现的终端混在同一排 tab 里。一个实验性的 worktree,不应该和主线工作长得完全一样。一个已经完成但还要回看的会话,也不应该立刻从视野里消失。
可视化工作台的价值,就在于把这些关系摆出来:
- 相关终端可以放在一起。
- 不同 worktree 可以形成清晰边界。
- 正在进行、等待输入、已经完成的会话能被一眼区分。
- 暂时不用看的内容可以移到旁边,而不是彻底丢进历史记录。
这不是为了好看,而是为了减少脑内记账。

Worktree 应该是一级对象
如果只是在一个仓库里同时开几个 agent,很快就会乱。
一个 agent 改了文件,另一个 agent 也改同一片区域。一个 agent 跑测试失败,另一个 agent 又在同一个目录里生成了新的中间状态。最后你很难分清哪个变化属于哪条任务线。
Git worktree 的意义就在这里。它给不同任务一个相对独立的工作区。每个 agent 可以在自己的分支和目录里试错,不会直接踩到别人的现场。
但在很多工具里,worktree 只是一个路径。你需要自己记住这个终端在哪个目录、对应哪个分支、负责什么任务。
TermCanvas 把它显式摆出来:项目、worktree、终端之间是有层级关系的。这样你看到一个终端时,不只是看到一段输出,而是能知道它处在项目的哪条工作线里。
人需要看到 agent 的状态
AI agent 经常会长时间运行。它可能在读文件、跑命令、等待输入、总结结果,也可能已经卡住但没有明显提醒。
如果所有状态都藏在终端输出里,人就必须不断翻日志。这个过程很累,也很容易漏。
更合理的方式是让状态浮到工作台层面:
- 哪些会话正在运行。
- 哪些会话需要关注。
- 哪些任务已经完成。
- 哪些终端关联了某个 Pin 或某条工作线索。
- 哪些 worktree 产生了值得查看的变更。
当这些信息变成可见状态,而不是一段段终端文本时,人才能真正监督多个 agent。
可视化不是替代终端
这里有一个容易误解的点:可视化工作台不是要把终端藏起来,也不是要把开发变成低代码界面。
终端仍然重要。agent 需要真实 shell、真实仓库、真实命令、真实测试输出。问题只是,当终端数量从一个变成很多个时,原来的组织方式不够用了。
TermCanvas 做的是给终端外面加一层工作空间。终端负责执行,worktree 负责隔离,Pin 负责固定上下文,画布负责让这些东西在空间里保持关系。
它解决的不是“如何输入命令”,而是“当多个 agent 同时工作时,人如何保持掌控”。
怎么用才有意义
如果只开一个终端,画布不会带来太多新东西。它真正有价值的场景,是你开始并行处理多条工作线。
一种比较自然的用法是:
- 给每个明确任务分一个 worktree。
- 每个 worktree 里只放相关的 agent 和终端。
- 把 bug、截图、后续想法写成 Pin,贴在项目旁边。
- 需要 agent 继续处理时,把 Pin 作为上下文交给它。
- 完成的会话和 Pin 及时收起,避免画布变成堆积场。
这样做之后,画布不是一个“更大的终端窗口”,而是一张当前项目的工作地图。
核心变化
AI 编码让开发者的角色发生了一点变化。
你不再只是命令的输入者,而更像一个带着多个 agent 工作的 lead。你需要分配任务、观察状态、判断是否介入、决定哪条分支值得合并,哪条线索应该搁置。
这个角色变化需要新的界面形态。
可视化终端工作台的意义就在这里:让多 agent 编码从一堆难以追踪的终端,变成一个可以被观察、整理和接手的工作现场。