给编程智能体用的 tmux:让它们持续运行的最低限度
如果你直接在 SSH shell 里启动智能体,它只会活到这条连接结束。有了 tmux,不管你有没有连着,智能体都在服务器上运行,你想什么时候重新接入都行,用笔记本或手机都可以。你不需要深入了解 tmux:十几条命令就够了。
这篇是手机上的 Mosh 与 SSH的姊妹篇,也属于指南如何在手机上使用 Claude Code的一部分。
一个不会丢的会话
最常用的命令:
tmux new-session -A -s agents
-A 标志的意思是:如果已有同名会话就接入,否则创建它。所以你每次都可以运行同一条命令。进去之后,像在任何 shell 里一样启动你的智能体:
cd ~/code/my-app
claude
想离开又不终止任何东西,先按 Ctrl-b,再按 d 来分离。智能体会继续运行。要回来:
tmux attach -t agents
想看有哪些会话:
tmux ls
关掉终端、Wi-Fi 断了、SSH 死了都没关系:会话还留在服务器上。这就是全部意义所在。
窗口:一个智能体一个窗口
一个会话里有窗口,就像标签页。典型的情形是:2 号窗口里跑着一个很长的重构,3 号窗口在跑测试,你自己在 1 号窗口里查点东西。
在 tmux 里,每个快捷键都以 Ctrl-b 开头:
c新建一个窗口。,重命名当前窗口。n和p切到下一个和上一个窗口。0–9按编号跳到某个窗口。w打开一个列表供你选择。
你也可以在外部或脚本里创建和命名窗口:
tmux new-window -n claude -c ~/code/my-app
tmux new-window -n codex -c ~/code/my-app
tmux rename-window -t agents:2 refactor
给每个窗口命名比看起来重要得多。在手机上,你会在一个小小的列表里读到“claude”“codex”或“tests”,而连着四个“bash”就帮不上忙。
窗格
如果想在同一个窗口里同时看两样东西,就把它拆开:
Ctrl-b %把窗口分成左右两列。Ctrl-b "把窗口分成上下两行。Ctrl-b o跳到下一个窗格。Ctrl-b x关闭当前窗格(会先询问)。
在手机屏幕上,一个任务一个窗口通常比窗格好用。在笔记本上,就用窗格。
一个小小的 ~/.tmux.conf
有两个设置对体验影响很大:鼠标支持和更长的历史。默认历史大约 2,000 行,智能体很快就会用光。
set -g mouse on
set -g history-limit 50000
set -g allow-rename off
开启 mouse on 后,可以用手指或滚轮滚动,点一下窗格就能选中它。allow-rename off 阻止正在运行的程序给你的窗口改名。用下面的命令重新加载:
tmux source-file ~/.tmux.conf
想不用鼠标就读到已经滚出屏幕的内容,用 Ctrl-b [ 进入复制模式,用方向键或 PgUp 向上移动,按 q 退出。这是 Mosh 做不到而 tmux 做得到的事。
同时跑多个智能体:git worktree
两个智能体编辑同一个目录会互相踩踏。干净的办法是每个智能体一个 worktree:各自在自己的文件夹、自己的分支上工作,共用同一个仓库。
cd ~/code/my-app
git worktree add ../my-app-auth -b feature/auth
git worktree add ../my-app-reports -b feature/reports
git worktree list
然后给每个 worktree 开一个 tmux 窗口:
tmux new-window -n auth -c ~/code/my-app-auth
tmux new-window -n reports -c ~/code/my-app-reports
分支合并完、用不着了之后:
git worktree remove ../my-app-auth
Wendo 怎么用它
Wendo 是一款适用于 iOS 和 Android 的 SSH 客户端,为跟进编程智能体而生,tmux 是它的核心。tmux 集成是 Wendo Pro 的功能。
- 连接时进入:选择 tmux,也可以再填一个会话名。Wendo 会运行
tmux new-session -A -s wendo(或你设置的名字),所以每次打开连接,你都会回到自己的会话里。 - 机器会显示每台电脑的会话、窗口和窗格。点一个,就当场打开。
- 使用 tmux 时,工作区面板可以切换窗口、重命名、关闭窗格或窗口,以及新建会话。你还可以在新窗口里启动智能体(Claude Code、Codex、OpenCode 或 Gemini CLI),或者在新分支上创建 git worktree 并在它自己的窗口里打开,也就是你刚才在上面手动做的事。
- 如果 Claude 运行在终端复用器里,收件箱的提醒会把你带到准确的窗格。安装 hook 的方法见提醒与批准。
终端设置里包括应用 tmux 全局选项(标题、鼠标和状态栏)。所有内容都在 tmux 文档里;如果你的连接不稳,会话文档解释了 Mosh 和 ET。
其他选择:zellij 和 herdr
如果你更喜欢别的终端复用器,Wendo 也支持 zellij(zellij attach -c wendo)和 herdr(herdr 或 herdr --session <name>)。它们需要安装在你的电脑上。道理是一样的:智能体住在服务器上,你来来去去。