地铁上也能写代码?tmux + Tabby + Claude Code 让 AI 编程真正随身
- 作者
一个真实的场景
早上九点,你在家里的 MacBook 上跟 Claude Code 聊得正嗨,它刚帮你理清了一个复杂的重构方案。看看时间,该出门了。你关上电脑,心里有点不甘:这段对话历史,到公司还能接上吗?
地铁上,你突然想到一个关键细节,想让 Claude 补充一下刚才的方案。掏出手机,望着屏幕,叹了口气。
到了公司,打开电脑,启动 Claude Code,对话历史没了。你得重新描述一遍上下文,Claude 得重新理解一遍代码,又是十几分钟过去了。
这场景熟悉吗?如果你也受够了这种"断点式编程",那这篇文章可能会让你有种"终于有人说出来了"的感觉。
问题的本质:AI 编程需要持久化
传统编程,代码在文件里,关掉终端也不会丢。但 AI 编程不一样——你和 AI 的对话历史、它对项目的理解、正在进行的重构思路,这些全都活在内存里。
GUI 工具像 Cursor 很好用,但有个致命问题:它的会话绑定在那台机器上,绑定在那个窗口上。你没法在地铁上用手机接着刚才的对话,也没法在公司的台式机上无缝继续。
从第一性原理来看,AI 编程的核心需求是什么?
- 持久性:对话不应该因为关机、断网而中断
- 上下文完整性:AI 对项目的理解应该累积,而不是每次重启
- 随时随地访问:在任何设备上都能接上刚才的工作状态
- 多任务并行:同时处理多个项目,互不干扰
这些需求,指向一个古老但强大的工具: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 锁定,想要自己定制一切
不适合这些人
- 完全的终端新手:如果你连
cd、ls都不熟,先从基础学起 - 只在一台电脑上工作:如果你永远只在办公室台式机上写代码,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
- tmux GitHub Wiki
- A beginner's guide to tmux
- My tmux setup - 一个 2026 年的现代 tmux 配置
Tabby
- Tabby 官网
- GitHub - Eugeny/tabby
- Hacker News 讨论 - 社区对 Tabby 的真实看法
Claude Code
- Claude Code 官方文档
- Optimize your terminal setup
- Claude Code: Best practices
- How I use Claude Code - 实战经验分享
工作流整合
- Claude Code + tmux workflow
- Making Claude Code work 24/7 using tmux
- Vibe Coding Anytime, Anywhere
- Git worktrees + tmux + Claude
终端生态
写于 2026 年初,一个 AI 编程已成常态的时代。愿每个开发者都能找到最适合自己的工作流。
分享内容