Tmux 可以在命名的、可分离的会话中运行您的 AI 编码代理,这些会话可在终端关闭或 SSH 连接中断后存活。您可以在一个窗口中持有多个代理,使用 send-keys 从脚本向其中任何一个输入,并使用 capture-pane 读取其中一个。这就是人们使用它的原因。在手动构建任何内容之前,请检查内置路径:最近版本的 Claude Code 可以使用 `claude --worktree --tmux` 为您创建 worktree 和 tmux 会话。本指南首先涵盖这一点,然后是它未能触及的内容,最后是 tmux 本身停止的地方。
为什么 Tmux 和代理很搭配:AI 编码代理是一个长时间运行的进程,希望持续与终端对话。Tmux 的三个属性与这种形状相匹配:它能存活断开连接。Tmux 服务器拥有 pty,而不是您的终端窗口。关闭窗口,丢失 SSH 连接,让笔记本电脑进入睡眠:代理继续运行,且在您重新连接时仍然存在。它在一个窗口中持有许多会话。四个代理变成四个您可以用按键切换的命名会话,而不是在应用程序切换器中寻找四个窗口。它可以从外部脚本控制。任何地方的任何 shell 都可以输入正在运行的代理或读取其屏幕。无需构建 IPC,无需 wiring API。
内置标志,在您构建任何内容之前:Claude Code 为单代理每支分支的情况预先配置了此功能。两个标志,来自 `claude --help` 的最新版本:-w, --worktree [name] 为此会话创建新的 git worktree(可选指定名称);--tmux 为 worktree 创建 tmux 会话(需要 --worktree)。在 iTerm2 原生面板可用时使用;使用 --tmux=classic 使用传统的 Tmux。所以‘隔离此任务,给它自己的会话’的整个操作是一个命令:`claude --worktree --tmux`。或者命名 worktree:`claude --worktree auth-refactor --tmux`。在您依赖之前有两个细节很重要。--tmux 在没有 --worktree 的情况下会出错,所以它是一个 worktree 功能,而不是通用的会话标志。并且在 iTerm2 上它使用原生面板而不是 Tmux,这看起来更好,也意味着本页其余部分的 Tmux 命令别无可附接。如果您计划对会话进行脚本编程,请使用 --tmux=classic,这样您就拥有真正的 Tmux 在下面。对于单代理单分支,那就是答案。使用它并跳过前面的部分。
它不做的事情:在一个会话中运行多个代理,铺开面板以便观看它们,从脚本向运行中的代理输入,告诉您哪个代理在等待您,或设置任何此内容的远程 SSH 盒子。这些是本指南的其余部分,每一部分都是人们手动编写 Tmux 的地方。关于该标志 worktree 一半的更多信息,涉及并行开发的 git worktrees。
每个项目每个项目命名的会话:保持此功能可用的组织规则:每个仓库一个 Tmux 会话,按仓库名命名。不按任务,不按代理。任务来去匆匆;项目是稳定的事物。在项目目录中启动一个分离的会话:`tmux new-session -d -s api -c ~/code/api`。附加到它(如果它不存在则创建它):`tmux new-session -A -s api -c ~/code/api`。-A 是 attach-or-create。它使单个命令可以安全地反复运行,这正是您在 shell 函数中想要的:# ~/.zshrc agent() { local dir="${1:-$PWD}" local name="$(basename "$dir" | tr . -)" tmux new-session -A -s "$name" -c "$dir" }。会话名称不能包含 . 或 :(Tmux 将它们作为目标分隔符),因此使用 tr。然后 `tmux ls` 成为一个真实的库存:$ tmux ls api: 3 windows (created Fri Jul 31 09:12:04 2026) web: 2 windows (created Fri Jul 31 09:40:11 2026) infra: 1 windows (created Fri Jul 31 11:02:55 2026)。使用格式字符串添加一点:`tmux list-sessions -F '#{session_name} windows=#{session_windows} attached=#{session_attached}'。在一个会话中观看几个代理的布局:在一个会话内,为每个代理分配自己的窗口,并以任务命名:`tmux new-window`...
FAQ Q: 什么是使用 Tmux 与 AI 编码代理的主要优势?
FAQ A: 主要优势是 Tmux 在命名的、可分离的会话中运行 AI 编码代理,这些会话可在终端关闭或 SSH 连接中断后存活。它允许您在一个窗口中持有多个会话并从外部进行脚本控制,从而让长时间运行的进程即使在您断开连接后也能继续运行。
来源: Hacker News · 由HeadlinesBriefing整理摘要