工具大全
ai-tutorials2026年3月7日349 次阅读

Claude Code + Tmux:AI 编程的终极终端工作流

Claude Code + Tmux:AI 编程的终极终端工作流

当 AI 编程助手遇上终端复用器,你的开发效率将迎来质的飞跃。本文详解如何将 Claude Code CLI 与 tmux 深度结合,打造持久化、多代理、可恢复的 AI 开发工作流。


为什么 Claude Code 需要 tmux?

Claude Code 是 Anthropic 官方推出的 CLI 编程助手,直接在终端中与你协作编写代码。而 tmux 作为终端复用器,完美解决了 Claude Code 在实际使用中的几个痛点:

痛点 裸终端 tmux 加持
SSH 断开 Claude Code 会话丢失,对话历史消失 会话持久化,重连即恢复
长时间任务 必须盯着终端不能动 后台运行,随时查看
多任务并行 多开终端窗口,混乱 分屏管理,一目了然
多代理协作 无法可视化 每个代理一个面板,实时监控
远程开发 依赖网络稳定性 断线不丢,任何设备接入

快速开始

前提条件

# 安装 tmux
brew install tmux       # macOS
sudo apt install tmux   # Ubuntu

# 确认 Claude Code 已安装
claude --version

第一个 Claude Code + tmux 会话

# 1. 创建命名会话
tmux new -s claude-dev

# 2. 在会话中启动 Claude Code
claude

# 3. 需要离开?按 Ctrl+b d 断开
# (会话在后台继续运行)

# 4. 回来后重新接入
tmux attach -t claude-dev
# Claude Code 还在等你,对话完整保留!

实用工作流布局

工作流一:经典开发分屏

左边写代码,右边看效果——最基本也最实用的布局。

┌──────────────────┬──────────────────┐
│                  │                  │
│   Claude Code    │   dev server /   │
│   (编码助手)      │   test runner    │
│                  │                  │
├──────────────────┴──────────────────┤
│         git log / file watcher      │
└─────────────────────────────────────┘

操作步骤:

# 创建会话
tmux new -s dev

# 垂直分屏(左右)
# Ctrl+b %

# 右侧面板运行 dev server
npm run dev

# 切回左侧(Ctrl+b ←)启动 Claude Code
claude

# 再水平分一个底栏(Ctrl+b ")用于 git/监控

工作流二:多项目并行

为不同项目创建独立会话,每个会话有自己的 Claude Code 实例。

# 前端项目
tmux new -s frontend -c ~/projects/frontend
claude

# 断开后创建后端项目会话
# Ctrl+b d
tmux new -s backend -c ~/projects/backend
claude

# 在会话间快速切换
# Ctrl+b s  →  选择会话列表
# Ctrl+b (  →  上一个会话
# Ctrl+b )  →  下一个会话

工作流三:代码审查面板

┌──────────────────┬──────────────────┐
│                  │                  │
│   Claude Code    │   git diff /     │
│   /review        │   changed files  │
│                  │                  │
├──────────────────┼──────────────────┤
│                  │                  │
│   test output    │   PR comments    │
│                  │                  │
└──────────────────┴──────────────────┘
tmux new -s review

# 创建 2x2 网格
# Ctrl+b %    (垂直分)
# Ctrl+b "    (水平分左侧)
# Ctrl+b →    (切到右侧)
# Ctrl+b "    (水平分右侧)

# 左上:claude(使用 /review 命令)
# 右上:git diff HEAD~3
# 左下:npm test --watch
# 右下:gh pr view

多代理协作(Agent Teams)

这是 Claude Code + tmux 最强大的用法:多个 Claude Code 实例并行工作,一个主代理(Lead)协调多个子代理(Teammates)。

基本原理

┌─ Lead Agent (你交互的窗口) ────────────────────┐
│  "请重构这个项目的认证系统"                       │
│                                                │
│  → 分配任务给 3 个 Teammate                     │
├────────────────┬───────────────┬────────────────┤
│ Teammate 1     │ Teammate 2    │ Teammate 3     │
│ 重写 auth      │ 更新 API      │ 编写测试        │
│ middleware     │ endpoints     │ cases          │
└────────────────┴───────────────┴────────────────┘

使用方式

Claude Code 的 Agent Teams 功能会自动利用 tmux 来管理子代理面板。

# 方式一:确保在 tmux 中启动 Claude Code
tmux new -s agent-team
claude

# 然后在对话中让 Claude 使用 Agent Teams
# Claude 会自动在 tmux 面板中创建子代理

# 方式二:通过环境变量指定后端
CLAUDE_CODE_SPAWN_BACKEND=tmux claude

iTerm2 用户的进阶技巧

# 使用 tmux -CC 控制模式
# iTerm2 会将 tmux 面板映射为原生标签页
tmux -CC new -s agent-team
claude

# 每个子代理自动变成 iTerm2 的独立标签
# 比传统 tmux 面板更清晰、更好交互

多代理最佳实践

建议 说明
代理数量 3-5 个 太多代理反而增加协调开销,收益递减
任务要明确 给每个代理分配清晰、独立的子任务
注意 Token 消耗 每个代理有独立上下文窗口,Token 成本线性增长
定期检查进度 当前没有自动通知,需要手动切换面板查看

Tmux Popup 方案

侧边面板太窄,看不清 Claude Code 的输出?试试 Popup 弹窗方案——全屏覆盖式的 Claude Code 窗口。

配置方法

~/.tmux.conf 中添加:

# 按 Ctrl+a C-g 弹出/关闭 Claude Code 面板
# 弹窗占据 80% 的终端面积
bind C-g display-popup -d "#{pane_current_path}" -xC -yC -w 80% -h 80% \
  -E 'tmux attach -t claude-popup 2>/dev/null || tmux new -s claude-popup "claude"'

效果:

  • Prefix + Ctrl+g 弹出全屏 Claude Code
  • 用完后按 Ctrl+b dEsc 关闭弹窗
  • 会话持久化,下次弹出时上下文完整保留
  • 不占用你的工作面板空间

远程服务器开发

这是 tmux + Claude Code 最经典的场景:在远程服务器上开发,不怕断线。

# 本地 SSH 到服务器
ssh dev-server

# 创建持久会话
tmux new -s project-x

# 启动 Claude Code
claude

# 开始工作...让 Claude 帮你重构代码、跑测试
# 突然 WiFi 断了?没关系!

# 重新连接
ssh dev-server
tmux attach -t project-x
# 一切都在,Claude 的对话也在

长时间任务后台运行

# 让 Claude 跑一个大型迁移任务
# Ctrl+b d 断开去吃饭

# 用手机 SSH 回来看进度
ssh dev-server
tmux attach -t project-x
# Claude 已经帮你完成了 80% 的工作

实用脚本

一键创建 Claude 开发环境

把这个脚本保存为 ~/bin/claude-workspace

#!/bin/bash
# claude-workspace:一键创建 Claude Code 开发环境
# 用法:claude-workspace [session-name] [project-path]

SESSION=${1:-claude-dev}
PROJECT=${2:-$(pwd)}

# 检查会话是否已存在
tmux has-session -t "$SESSION" 2>/dev/null

if [ $? -eq 0 ]; then
    echo "会话 '$SESSION' 已存在,正在接入..."
    tmux attach -t "$SESSION"
    exit 0
fi

# 创建新会话
tmux new-session -d -s "$SESSION" -c "$PROJECT"

# 主面板:Claude Code
tmux send-keys -t "$SESSION" "claude" C-m

# 右侧面板:文件浏览 / 终端
tmux split-window -h -t "$SESSION" -c "$PROJECT"
tmux send-keys -t "$SESSION" "git status" C-m

# 底部面板:dev server
tmux split-window -v -t "$SESSION" -c "$PROJECT"

# 调整面板大小(左侧 Claude 占 60%)
tmux select-pane -t "$SESSION:1.1"
tmux resize-pane -R 20

# 接入会话
tmux attach -t "$SESSION"
# 使用
chmod +x ~/bin/claude-workspace
claude-workspace myproject ~/projects/myproject

多代理派发脚本

#!/bin/bash
# spawn-agents:在 tmux 中并行启动多个 Claude Code 实例
# 用法:spawn-agents <project-path> <agent-count>

PROJECT=${1:-.}
COUNT=${2:-3}
SESSION="claude-agents"

tmux new-session -d -s "$SESSION" -c "$PROJECT"

for i in $(seq 1 $COUNT); do
    if [ $i -gt 1 ]; then
        tmux split-window -h -t "$SESSION" -c "$PROJECT"
        tmux select-layout -t "$SESSION" tiled
    fi
    tmux send-keys -t "$SESSION" "claude" C-m
done

tmux attach -t "$SESSION"

推荐 tmux 配置(Claude Code 优化版)

以下配置针对 Claude Code 使用场景做了优化:

# ---------- Claude Code 优化配置 ----------

# 大缓冲区(Claude 输出通常很长)
set -g history-limit 100000

# 鼠标支持(方便滚动查看 Claude 的长输出)
set -g mouse on

# 减少 Escape 延迟
set -sg escape-time 0

# 真彩色(让代码高亮正确显示)
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"

# 自动重命名窗口
setw -g automatic-rename on

# 活动窗口通知(子代理完成时提醒)
setw -g monitor-activity on
set -g visual-activity on

# Claude Code Popup 快捷键
bind C-g display-popup -d "#{pane_current_path}" -xC -yC -w 80% -h 80% \
  -E 'tmux attach -t claude-popup 2>/dev/null || tmux new -s claude-popup "claude"'

# 快速创建 Claude 面板
bind C-c split-window -h -c "#{pane_current_path}" "claude"

常用快捷键速查

场景 操作 快捷键
断开会话 去开会,Claude 继续工作 Ctrl+b d
重新接入 回来继续 tmux a -t name
列出会话 查看所有运行中的 Claude 实例 tmux ls
切换会话 在多个 Claude 项目间切换 Ctrl+b s
垂直分屏 新开一个面板 Ctrl+b %
水平分屏 上下分 Ctrl+b "
面板最大化 全屏看 Claude 输出 Ctrl+b z
滚动查看 翻看 Claude 的历史输出 Ctrl+b [
关闭面板 清理不需要的面板 Ctrl+b x
弹出 Claude Popup 方案 Ctrl+a Ctrl+g

常见问题

Q: Claude Code 在 tmux 中显示异常?

确保 tmux 配置了真彩色支持:

set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"

Q: 多代理的 Agent Teams 不显示面板?

Agent Teams 的分屏模式需要在 tmux 中运行。VS Code 内置终端、Windows Terminal、Ghostty 不支持分屏模式。可以通过环境变量强制:

CLAUDE_CODE_SPAWN_BACKEND=tmux claude

Q: 断开后 Claude Code 的对话还在吗?

tmux 保证终端会话持久化,Claude Code 的进程不会中断。但如果 Claude Code 进程本身结束了(比如你输入了 /exit),需要重新启动并用 /resume 恢复。

Q: Token 消耗怎么控制?

每个 Claude Code 实例有独立的上下文窗口。多代理场景下 Token 线性增长。建议:

  • 控制代理数量在 3-5 个
  • 给每个代理明确的、范围小的任务
  • 任务完成后及时关闭不需要的代理

Q: 可以在手机上接入 tmux 会话吗?

可以。通过任何 SSH 客户端(iOS 上的 Termius、Blink Shell 等)连接到服务器后 tmux attach 即可,Claude Code 的完整对话都在。


总结

tmux + Claude Code 的组合不只是 "好用",而是彻底改变了 AI 辅助编程的工作方式:

  • 不怕断线:会话持久化,网络抖动不影响工作
  • 并行加速:多代理分工协作,大任务拆成小任务并行执行
  • 随处接入:服务器上的开发环境,任何设备都能访问
  • 专注高效:分屏布局让代码、测试、日志一目了然

如果你每天使用 Claude Code 超过 1 小时,tmux 是你应该掌握的第一个配套工具。


参考资源