Logo

地铁上也能写代码?tmux + Tabby + Claude Code 让 AI 编程真正随身

一个真实的场景

早上九点,你在家里的 MacBook 上跟 Claude Code 聊得正嗨,它刚帮你理清了一个复杂的重构方案。看看时间,该出门了。你关上电脑,心里有点不甘:这段对话历史,到公司还能接上吗?

地铁上,你突然想到一个关键细节,想让 Claude 补充一下刚才的方案。掏出手机,望着屏幕,叹了口气。

到了公司,打开电脑,启动 Claude Code,对话历史没了。你得重新描述一遍上下文,Claude 得重新理解一遍代码,又是十几分钟过去了。

这场景熟悉吗?如果你也受够了这种"断点式编程",那这篇文章可能会让你有种"终于有人说出来了"的感觉。

问题的本质:AI 编程需要持久化

传统编程,代码在文件里,关掉终端也不会丢。但 AI 编程不一样——你和 AI 的对话历史、它对项目的理解、正在进行的重构思路,这些全都活在内存里。

GUI 工具像 Cursor 很好用,但有个致命问题:它的会话绑定在那台机器上,绑定在那个窗口上。你没法在地铁上用手机接着刚才的对话,也没法在公司的台式机上无缝继续。

从第一性原理来看,AI 编程的核心需求是什么?

  1. 持久性:对话不应该因为关机、断网而中断
  2. 上下文完整性:AI 对项目的理解应该累积,而不是每次重启
  3. 随时随地访问:在任何设备上都能接上刚才的工作状态
  4. 多任务并行:同时处理多个项目,互不干扰

这些需求,指向一个古老但强大的工具:tmux

tmux:AI 编程的持久化基石

tmux 是个 2007 年就出现的终端复用器,但在 2026 年的 AI 编程时代,它反而成了刚需。

会话持久化的魔法

tmux 的核心能力是会话持久化。你在 tmux 里启动的进程,会一直在服务器上运行,即使你关掉终端、断开 SSH、甚至重启本地电脑,会话依然在那里。

对 Claude Code 来说,这意味着:

  • 对话历史永不丢失:你和 Claude 的整个对话,包括它对代码的理解,都保存在那个 session 里
  • 进程持续运行:Claude 正在跑的测试、正在等待的 build,不会因为你关电脑而中断
  • 随时随地 reattach:在任何设备上 SSH 连接,tmux attach 一下,立刻回到刚才的工作状态

我现在的日常是这样的:

# 早上在家,启动项目 session
tmux new -s my-project
claude

# (在这个 session 里跟 Claude 聊了半小时,理清了架构)

# 出门前,直接合上电脑(tmux session 在服务器上继续运行)

# 地铁上,手机 SSH 连接服务器
ssh my-server
tmux attach -t my-project

# (接着刚才的对话继续聊,Claude 记得所有上下文)

# 到公司,打开台式机
ssh my-server
tmux attach -t my-project

# (还是那个 session,对话历史完整保留)

这种体验,就像你的 AI 助手一直在云端待命,随叫随到,从不失忆。

项目隔离和多任务管理

tmux 的另一个杀手级功能是多 session 管理

我会给每个项目创建一个独立的 tmux session:

tmux new -s frontend    # 前端项目
tmux new -s backend     # 后端项目
tmux new -s infra       # 基础设施

每个 session 里:

  • 独立的 Claude Code 实例:不同项目的 AI 对话互不干扰
  • 独立的开发环境:dev server、数据库、日志,各自运行
  • 独立的工作状态:编辑器、终端、调试工具,都保持在那个项目的上下文里

切换项目?一行命令的事:

tmux switch -t backend  # 切到后端项目
# 或者用 fzf + tmux-sessionizer 更优雅

社区里有人甚至用 tmux 管理多个 Claude Code agent,让它们同时处理不同的任务,通过共享的文件系统通信。这种"AI 团队协作"的玩法,没有 tmux 根本做不到。

与 Claude Code 的完美契合

Claude Code 官方文档专门提到了 tmux 集成。有个叫 tmux-cli 的插件,能让 Claude 直接控制 tmux:

claude plugin install "tmux-cli@cctools-plugins"

装上之后,Claude 可以:

  • 自动创建新的 pane 运行测试
  • 在不同的 pane 之间切换查看日志
  • 启动交互式调试器(pdb、gdb)并与之交互
  • 管理多个开发任务的并行执行

这不是"会用 tmux 的 AI",而是真正理解你工作流的 AI 助手

Tabby:现代化的外衣(可选)

说完 tmux,聊聊 Tabby。

Tabby 是个跨平台的现代终端模拟器,基于 Electron。它的卖点是:

  • 漂亮的 UI,支持主题、字体连字、GPU 渲染
  • 内置 SSH 客户端,保存常用连接
  • 分屏、多标签,自带一些 tmux 的功能
  • 高度可定制,用 CSS 和快捷键随便改

为什么需要它?

tmux 很强,但界面确实有点"硬核"。对于习惯了 VSCode、Cursor 这些现代工具的开发者,直接用原生终端 + tmux,体验上还是有点割裂。

Tabby 就是那层"现代化的外衣":

  • 更友好的字体渲染(特别是中文)
  • 更直观的标签页管理
  • 更方便的 SSH 连接管理
  • 更舒服的配色和主题

我的配置是:Tabby 连接远程服务器,服务器上跑 tmux + Claude Code。Tabby 负责"好看",tmux 负责"强大",各司其职。

争议:Electron 的性能问题

但 Tabby 也不是完美的。Hacker News 上有人吐槽:

"Tabby 很漂亮,但它是个 Electron app,滚动起来感觉只有 30fps,吃内存也厉害。我还是更喜欢 Kitty 或 Alacritty。"

这个批评是有道理的。Tabby 在 M1 MacBook 上跑得还行,但如果你的机器配置一般,或者对性能特别敏感,那 iTerm2、WezTerm、Alacritty 可能是更好的选择。

我的建议:Tabby 是个加分项,不是必需品。如果你已经有顺手的终端(比如 iTerm2 + tmux integration),完全不用为了 Tabby 而切换。核心是 tmux + Claude Code,终端模拟器只是包装。

Claude Code:终端优先的 AI 助手

现在聊聊 Claude Code 本身。

2026 年,AI 编程工具一大堆:Cursor、Copilot、Codex CLI、Cline、Aider...为什么要选 Claude Code?

终端优先的设计哲学

Claude Code 的核心理念是:它是一个 CLI 工具,而不是 IDE 插件

这意味着:

  • 它不绑定特定编辑器,你可以用 Vim、Emacs、VSCode,随便
  • 它不强制特定工作流,你可以自己写脚本、配 hook、定制命令
  • 它跟系统工具深度集成,Git、Docker、MCP servers,直接调用
  • 它的输出和输入都是纯文本,方便自动化和流水线

一个 Cursor 用户在社区里说:

"我是 Cursor 的忠实用户,但最近几周我完全转向了 Claude Code。说实话,回不去了。Claude Code 给了我更多控制权,而不是把我锁在一个特定的工作流里。"

会话持久化的杀手锏

结合 tmux,Claude Code 的会话持久化能力是无敌的。

社区里有篇文章讲得很清楚:

"tmux + Claude Code 的杀手级功能是会话持久化。你的 Claude Code session 一直在服务器上跑,你可以随时 reattach,对话历史、运行中的进程、build 状态,全都还在。你可以在一个 pane 里运行 Claude,另一个 pane 看代码,第三个 pane 看日志,全部持久化。"

这不是理论,而是实实在在的生产力提升。

学习曲线:真实但值得

但要承认,Claude Code 的学习曲线是真实存在的。

Hacker News 上有人吐槽:

"每次看到有人说 Claude Code 比 Cursor 强太多,我就装上试试,结果发现还是得在终端里操作,学习成本太高了。"

这个批评是对的。如果你:

  • 从来没用过 tmux
  • 不熟悉命令行工作流
  • 更喜欢 GUI 工具的即时反馈

那 Claude Code 确实有门槛。

但换个角度,一个开发者分享的经验是:

"终端学习曲线确实存在,但比我想象的要平缓。如果像我这样(没有正式编程背景的人)都能上手,大部分人应该都可以。"

我的观点是:Claude Code 最适合有经验的开发者。你不需要是终端大神,但至少要:

  • 会用基本的 shell 命令
  • 理解 Git 工作流
  • 愿意花一两天时间学习 tmux 基础

如果你满足这些条件,Claude Code 会让你进入一个新的生产力境界。

实践指南:从零搭建这套工具链

好,理论讲完了,来点实战。

基础设置

1. 安装 tmux

# macOS
brew install tmux

# Linux
sudo apt install tmux  # Ubuntu/Debian
sudo yum install tmux  # CentOS/RHEL

2. 配置 tmux

创建 ~/.tmux.conf,这是我的最小配置:

# 使用 Ctrl+a 作为前缀(比默认的 Ctrl+b 更舒服)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 启用鼠标支持
set -g mouse on

# 窗口编号从 1 开始(0 太远了)
set -g base-index 1

# 更好的分屏快捷键
bind | split-window -h
bind - split-window -v

# Vim 风格的 pane 切换
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 保持工作目录
bind c new-window -c "#{pane_current_path}"

重载配置:tmux source-file ~/.tmux.conf

3. 安装 Claude Code

# 参考官方文档
npm install -g claude-code
# 或者
brew install claude-code

配置你的 API key,运行 /terminal-setup 优化终端体验。

4. (可选)安装 Tabby

tabby.sh 下载安装。配置好 SSH 连接,保存常用服务器。

日常工作流

早上启动

# SSH 到你的开发服务器(或者本地也行)
ssh my-dev-server

# 创建或连接到项目 session
tmux new -s my-project
# 或者如果已经存在
tmux attach -t my-project

# 在 session 里启动 Claude Code
claude

# 分屏布局:左边 Claude,右边代码,下面日志
# Ctrl+a | (垂直分屏)
# Ctrl+a - (水平分屏)

切换项目

# 在 tmux 里切换 session
Ctrl+a s  # 显示所有 session,选择切换

# 或者用命令
tmux switch -t another-project

随时随地接入

# 手机上用 Termius/Blink 连接服务器
ssh my-dev-server
tmux attach -t my-project

# 对话历史完整保留,继续刚才的工作

晚上下班

# 直接 detach,session 继续运行
Ctrl+a d

# 或者直接关闭终端/SSH,tmux session 不受影响

高级技巧

1. tmux 插件管理器(TPM)

推荐装几个插件:

# 安装 TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# 在 ~/.tmux.conf 里添加
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'  # 保存/恢复 session
set -g @plugin 'tmux-plugins/tmux-continuum'  # 自动保存

# 初始化 TPM(在配置文件最后一行)
run '~/.tmux/plugins/tpm/tpm'

重载后按 Ctrl+a I 安装插件。

2. Claude Code 的 tmux 插件

claude plugin install "tmux-cli@cctools-plugins"

装上后,Claude 可以:

  • 自动管理多个 pane
  • 运行并监控测试
  • 启动交互式调试器

3. 项目快速切换

结合 fzf 和脚本,实现一键切换项目:

# ~/.local/bin/tmux-sessionizer
#!/usr/bin/env bash

selected=$(find ~/projects -mindepth 1 -maxdepth 1 -type d | fzf)
if [[ -z $selected ]]; then
    exit 0
fi

selected_name=$(basename "$selected" | tr . _)

if ! tmux has-session -t=$selected_name 2> /dev/null; then
    tmux new-session -ds $selected_name -c $selected
fi

tmux switch-client -t $selected_name

绑定快捷键:在 ~/.tmux.conf 加上

bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"

Ctrl+a f,fzf 选项目,自动创建/切换 session。

4. Git worktrees + tmux

对于同一个项目的不同分支,用 Git worktrees + tmux 窗口管理:

# 创建 worktree
git worktree add ../my-project-feature-a feature-a

# 在 tmux 里创建新窗口,切换到 worktree 目录
Ctrl+a c
cd ../my-project-feature-a
claude

每个 feature 一个窗口,互不干扰,Claude 的上下文也分开。

这套方案适合你吗?

说了这么多优点,但得承认:这套工具链不适合所有人

适合这些人

  • 有一定终端经验的开发者:不需要是 Vim 大神,但至少不怕命令行
  • 需要移动办公的人:在家、公司、咖啡厅、地铁上都要写代码
  • 多项目并行的人:同时维护好几个项目,需要快速切换
  • 重度 AI 编程用户:每天都在跟 AI 对话,对话历史很宝贵
  • 追求工作流掌控感的人:不喜欢被 IDE 锁定,想要自己定制一切

不适合这些人

  • 完全的终端新手:如果你连 cdls 都不熟,先从基础学起
  • 只在一台电脑上工作:如果你永远只在办公室台式机上写代码,tmux 的持久化优势体现不出来
  • 更喜欢 GUI 的即时反馈:如果 Cursor 的内联建议、自动补全让你爱不释手,CLI 工具可能让你不适应
  • 不愿意折腾配置的人:tmux + Claude Code 需要一些初始配置,虽然不难,但需要时间

学习曲线值得吗?

这是最常被问的问题。

我的答案是:对于有经验的开发者,绝对值得

投入:

  • 学习 tmux 基础:1-2 天
  • 配置 Claude Code:1-2 小时
  • 熟悉工作流:1 周

回报:

  • 再也不会因为关机/断网丢失工作状态
  • AI 对话历史累积,上下文越来越丰富
  • 随时随地编程,不受设备限制
  • 多项目并行,效率倍增

一个开发者在博客里说:

"从 Cursor 切换到 Claude Code + tmux 后,我的生产力提升是明显的。不是因为 Claude 更聪明(它们用的同一个模型),而是因为工作流更顺畅了。我不再需要重复描述上下文,不再担心对话丢失,不再被绑在一台电脑上。这种自由感,是无价的。"

Tabby 真的必要吗?

回到这个问题。

短答案:不必要。

长答案

如果你已经有顺手的终端(iTerm2、WezTerm、Alacritty、Warp),完全不需要为了 Tabby 而切换。tmux + Claude Code 才是核心,终端模拟器只是锦上添花。

Tabby 的优势在于:

  • 跨平台:Windows、macOS、Linux 统一体验
  • SSH 管理:内置的连接管理比 iTerm2 的 Profile 更直观
  • 高度可定制:如果你喜欢折腾 CSS 和主题

Tabby 的劣势在于:

  • Electron 性能:相比原生终端确实有差距
  • 资源占用:内存和 CPU 比 Alacritty 高不少
  • 社区规模:比 iTerm2 小,插件生态不够丰富

我的选择是:在 Mac 上用 iTerm2,在 Linux 服务器上直接用原生终端。Tabby 装了,偶尔用,但不是主力。

如果你是 Windows 用户,Tabby 倒是个不错的选择,比 Windows Terminal 更现代,比 WSL 直接用更方便。

2026 年,AI 编程的新常态

回到文章开头的场景。

现在的我,早上在家启动 tmux session,跟 Claude 聊架构。地铁上掏出手机,SSH 连上,继续刚才的对话。到公司,打开台式机,reattach session,对话历史完整无缺。

这不是科幻,而是 2026 年 AI 编程的新常态。

持久化不是锦上添花,而是刚需。当你的"同事"是个 AI,当你需要它理解几千行代码的上下文,当你希望它记得昨天你们讨论的架构决策——会话的持久化,就成了生产力的基石。

tmux 提供了这个基石。Claude Code 在这个基石上,发挥出了真正的威力。Tabby(或者任何你喜欢的终端)只是让这块基石看起来更漂亮一点。

这套工具链,让 AI 编程真正随身。不是"随身带着 AI",而是"AI 一直在那里,随时等你回来继续"。

如果你也想体验这种感觉,装个 tmux,试试 Claude Code。

一周后,回来告诉我你的想法。


参考资源

如果你想深入了解,这些资源值得一看:

tmux

Tabby

Claude Code

工作流整合

终端生态


写于 2026 年初,一个 AI 编程已成常态的时代。愿每个开发者都能找到最适合自己的工作流。

分享内容