很多老工具都有一个尴尬时刻:新技术一来,大家以为它们要被淘汰。
tmux 就是其中一个。
它看起来像一个很“上古”的终端工具:分屏、开窗口、挂后台、远程不断线。以前你可能只在服务器上见过它,或者在某个资深后端的 dotfiles 里见过一串看不懂的快捷键。
但到了 AI 编程工具越来越常用的今天,tmux 反而变得更有意思了。
原因很简单:
AI agent 越像一个会干活的人,你就越需要一个能放人、管人、看进度、随时接手的工作台。
tmux 正好就是这样的工作台。

一、tmux 解决的不是“分屏”,而是“工作不中断”
先把 tmux 说简单一点。
tmux 是一个终端复用器。它的核心不是让屏幕切成几块,而是把你的命令行工作放进一个长期存在的会话里。
在 tmux 里,有几个基本概念:
• session:一组长期存在的工作现场;• window:一个 session 里的不同工作区;• pane:一个 window 里切出来的多个终端区域;• attach / detach:进入或离开这个工作现场。
这意味着你可以在服务器上开一个 tmux session,里面跑着日志、服务、测试、编辑器。你断网了,电脑合盖了,SSH 掉线了,都没关系。重新连上去,再 attach 回去,现场还在。
这才是 tmux 最核心的价值:
它不是让终端变花哨,而是让工作有“现场”。
普通终端窗口一关,很多状态就没了。tmux 的思路是:窗口只是入口,真正的工作在 session 里。

二、为什么 AI 编程让 tmux 重新变重要
过去我们用终端,大部分时间是自己敲命令。
现在不一样了。
你可能会同时开着:
• 一个 Claude Code 或 Codex 在改代码; • 一个 pane 跑测试; • 一个 pane 看 dev server; • 一个 pane 跟日志; • 另一个 pane 备用,用来手动检查文件或跑命令。
这时候,终端不再只是“输入命令的地方”,而是一个多人协作现场。只不过其中有些“人”是 AI agent。
如果没有 tmux,这个现场很容易散:
• agent 跑到一半,你的终端断了; • 测试输出滚过去,找不到上下文; • 多个任务混在一个窗口里,谁在干什么不清楚; • 你想暂停 agent、自己接手一段,很麻烦; • 远程机器上跑的工作,无法稳定留在原地。
tmux 的价值就在这里冒出来了。
它把这些工作都装进一个可恢复、可切换、可观察的空间里。AI 在里面干活,你随时可以回来检查;你离开,它也不至于因为终端断开就全没了。

三、一个适合 AI 编程的 tmux 布局
如果你刚开始用,不需要立刻把配置搞得很复杂。
一个很实用的布局是这样:
tmux new -s project进入项目后,把窗口分成几个 pane:
# 左右分屏Ctrl-b %# 上下分屏Ctrl-b "可以安排成:
• 左侧大 pane:给 AI agent,例如 Claude Code / Codex; • 右上 pane:跑测试,例如 npm test、pytest、pnpm test;• 右中 pane:跑 dev server; • 右下 pane:手动命令、git diff、日志检查。
如果你要离开:
Ctrl-b d这叫 detach。工作还在跑,只是你离开了现场。
回来时:
tmux attach -t project这套东西的好处是很朴素的:你不需要重新打开一堆终端,也不需要回忆刚才哪个命令跑到哪里了。现场一直在。

四、让 AI “看得见”你的工作现场
tmux 和 AI 搭配时,还有一个很实用的点:终端输出可以被捕获。
比如你在一个 pane 里跑测试,另一个 pane 里让 AI 修 bug。测试失败以后,你可以把失败输出给 AI 看,或者让工具读取当前 pane 的输出。
tmux 本身提供了类似这样的能力:
tmux capture-pane -p这会把当前 pane 的内容抓出来。
如果你知道 pane 编号,也可以抓指定 pane:
tmux capture-pane -t project:0.1 -p这件事很小,但对 AI 工作流很关键。
因为很多时候,AI 缺的不是“会不会写代码”,而是缺上下文。测试输出、服务报错、构建日志、lint 信息,这些都是它判断下一步该做什么的依据。
tmux 让这些上下文稳定地留在一个地方,也让你更容易把它交给 AI。

五、多个 agent 并行时,tmux 是控制台
AI 编程真正开始变强的时候,一个 agent 往往不够。
你可能会想这样干:
• 一个 agent 负责重构; • 一个 agent 负责写测试; • 一个 agent 负责读文档和查兼容性; • 一个 agent 负责 review 前两个 agent 的改动; • 你自己在旁边做最终判断。
听起来有点夸张,但这其实正在变得常见。模型越来越能独立跑任务,工具也越来越支持并行代理、子任务、长时间执行。
问题来了:多个 agent 同时跑,谁在干什么?谁卡住了?谁改了哪些文件?哪个结果可信?
tmux 不会替你解决所有管理问题,但它提供了一个非常直观的控制台。
你可以:
• 每个 agent 一个 pane; • 每个任务一个 window; • 一个 session 对应一个项目; • 用命名窗口区分 agent-review、tests、server、logs;• 随时切过去看输出; • 需要时直接接管对应终端。
这比把所有事情塞在一个聊天窗口里清楚得多。

六、建议配合 git worktree 使用
如果你真的让多个 AI agent 并行改代码,光有 tmux 还不够。
最好再配合 git worktree。
原因很简单:多个 agent 同时改同一个目录,很容易互相踩文件。一个 agent 正在重构,另一个 agent 同时改测试,最后 diff 混在一起,谁干了什么都看不清。
更稳的方式是:
git worktree add ../project-agent-a -b agent/agit worktree add ../project-agent-b -b agent/b然后在 tmux 里给每个 worktree 一个 window:
tmux new -s project-ai窗口可以这样命名:
Ctrl-b ,例如:
• agent-a-refactor• agent-b-tests• review• server
这样每个 agent 都在自己的目录里工作,最后你再比较分支、挑选改动、合并结果。
这会比“让几个 agent 在同一个目录里一起冲”稳定很多。
七、tmux 的几个高频命令就够用了
刚开始不需要背太多。
常用命令记住这些就够:
# 新建 sessiontmux new -s project# 查看 sessiontmux ls# 回到 sessiontmux attach -t project# 退出但保留现场Ctrl-b d# 左右分屏Ctrl-b %# 上下分屏Ctrl-b "# 切换 paneCtrl-b 方向键# 新建 windowCtrl-b c# 切换 windowCtrl-b nCtrl-b p# 重命名 windowCtrl-b ,如果只学这些,tmux 已经能解决 80% 的工作流问题。
等你用顺手了,再去折腾配置,比如鼠标支持、vi 风格复制、状态栏、快捷键、插件管理。
八、一个简单配置:让 tmux 更顺手
可以在 ~/.tmux.conf 里先放一份很轻的配置:
# 开启鼠标,方便点 pane 和滚动set -g mouse on# 用 vi 风格处理复制模式setw -g mode-keys vi# 从 1 开始编号,更符合直觉set -g base-index 1setw -g pane-base-index 1# 更快响应 Escset -sg escape-time 10# 状态栏简单一点set -g status-position bottomset -g status-left "#S "set -g status-right "%Y-%m-%d %H:%M"这不是“最强配置”,但够干净。
tmux 最容易劝退人的地方,就是一上来配置太多。先把 session、window、pane 用起来,比花一天调状态栏重要。
九、AI 时代的 tmux 使用原则
最后,总结几个我觉得更适合现在的用法。
第一,给每个项目一个 session。
不要所有项目混在一起。一个项目一个现场,断了也好恢复。
第二,把 agent、测试、服务、日志分开。
不要全塞进一个 pane。AI 在改代码时,测试和日志要放在旁边,方便随时观察。
第三,大任务用 worktree 隔离。
多个 agent 并行时,不要让它们抢同一个目录。
第四,把输出留住。
测试失败、构建报错、服务日志,都是 AI 修问题的上下文。tmux 的 pane 就是天然的上下文容器。
第五,不要迷信全自动。
tmux 的价值不是让你完全不看,而是让你更容易看。AI 可以跑得久、跑得快,但你仍然需要一个清楚的控制台来判断它是不是跑对了。
十、为什么它现在值得重新学
tmux 不是新工具。
但它解决的问题,在今天变得更尖锐了:工作越来越长、任务越来越并行、远程环境越来越多,AI agent 也越来越像一个能独立推进任务的协作者。
以前 tmux 主要服务于人:让开发者不断线、能分屏、能恢复现场。
现在它开始服务于“人 + AI”的混合工作流:人负责判断和调度,AI 负责执行和探索,tmux 负责把这个现场稳稳托住。
所以别再把 tmux 只当成分屏工具了。
在 AI 编程时代,它更像一个工作控制台。
你不一定每天都需要它,但只要开始把任务交给多个 agent,开始让代码修改、测试、日志、服务同时跑起来,tmux 的价值就会一下子变得很明显。
它没有很炫。
但它能让复杂工作不散。
夜雨聆风