乐于分享
好东西不私藏

AI 编程只能单开?3 个工具让 Claude Code 并行替你搬砖

AI 编程只能单开?3 个工具让 Claude Code 并行替你搬砖

Anthropic 的 Claude Code 是个纯终端的 AI 编程工具,能读文件、改代码、跑 Git 提交,干活确实利索。

但我发现身边很多人的用法是,开一个终端窗口,敲个 claude,然后坐在那盯着它一行一行吐代码,这大概只用到它一成的功力。

说白了,Claude Code 不该是一个你盯着看的打字机,它其实可以同时开好几个,并行干活。

这篇文章讲的就是怎么用 tmux、iTerm2 的控制模式、以及 Git Worktree,把多个 Claude 实例组织起来同时干活,互不干扰。

一、上下文污染的坑

用 AI 写代码最容易踩的坑是上下文污染。

你在同一个终端窗口里,一会儿让 Claude 查后端服务部署报错,一会儿又让它写前端样式,它的上下文窗口很快就被不相干的代码填满了。Token 白白烧掉不说,AI 还容易开始胡说八道,甚至动手改不该改的文件。

所以原则很简单:一个模块一个 session,别混着来。

用 tmux 的 session 功能,可以把不同任务的上下文从进程层面隔开:

  1. tmux new -s data-pipeline — 数据处理相关的活儿全在这里
  2. tmux new -s llm-agent — 大模型调度相关的活儿在这里

这样每个 Claude 只看得到自己那摊事。切换思路的时候 Ctrl+b d 退出当前会话就行,前一个 Claude 的状态,比如思考进度、打开的文件、报错信息等,全部被 tmux 冻结在后台进程里,随时可以回来接着干。

二、iTerm2 的 tmux -CC 模式

不少人抗拒 tmux,原因嘛就是 Ctrl+b 前缀键记不住,终端里鼠标滚动和复制代码体验很差。尤其 Claude Code 动不动输出上百行代码块,在原生 tmux 里看起来很难受。

Mac 上有个更舒服的方案:在 iTerm2 里跑 tmux -CC

输入 tmux -CC attach -t my-project,体验就完全不一样了

  • tmux 的快捷键全不用记了。Cmd+D 左右分屏,Cmd+Shift+D 上下分屏,Cmd+W 关窗格,都是 Mac 原生操作。
  • 鼠标滚轮可以正常翻看 Claude 的长输出,选中文字直接进系统剪贴板。
  • 底层还是 tmux 守护进程,就算手滑 Cmd+Q 关掉了整个 iTerm2,后台任务不会断。下次 tmux -CC attach 就能恢复现场。

三、同一个目录多开 Claude

有了 tmux 分屏,那能不能同时开三个 Claude 各干各的?

可以。我日常用的布局是三个窗格:

  • 左边大窗格跑 1 号 Claude,负责底层数据,比如爬虫脚本、数据清洗之类的活。
  • 右上窗格跑 2 号 Claude,负责业务逻辑,调 LLM 接口、内容生成、审核流程。
  • 右下窗格留给自己,随时 git diff 看 AI 改了什么,跑跑测试。

这样你就从写代码的人变成了审代码的人。

四、并发冲突怎么办

同一目录下跑多个 Claude,问题马上来了,两个 Claude 同时改同一个文件,轻则代码互相覆盖,重则 Git 的 .index.lock 直接锁死,谁也提交不了。

最粗暴的办法是物理目录隔离,比如约定 A 只动 scraper/ 目录,B 只动 agent/ 目录。但如果两个任务都需要改 config.json 或 utils.py 这种底层公共文件,就得用更彻底的方案:Git Worktree。

五、多个 Claude 在同一个仓库里互不干扰

git worktree 能把同一个仓库的不同分支签出到不同的物理文件夹。这些文件夹共享 .git 历史,但在磁盘上完全独立,各有各的工作区、各有各的 .index 文件。

假设你在做一套内容自动化系统,现在有两个任务要并行:

  • 任务 A:重构图文抓取链路
  • 任务 B:重写 AI 内容生成和审核逻辑

两个任务都会碰 config.json 和 utils.py,放同一个目录下跑两个 Claude 一定出事。

第一步:确保主仓库干净

cd ~/projects/auto-content-system# 确认在主分支,所有改动已 commit

第二步:创建 Worktree

分别为两个任务创建独立文件夹和分支:

# 抓取模块 → 独立文件夹 + 新分支git worktree add ../auto-system-scraper -b feat-scraper# 内容生成模块 → 独立文件夹 + 新分支git worktree add ../auto-system-agent -b feat-agent

Worktree 目录建在主项目的同级(../),不会污染主项目结构。

第三步:分屏启动双 Claude

现在磁盘上有三个文件夹,属于同一个 Git 仓库,用 tmux 分屏或 iTerm2 的 Cmd+D

左边窗格:

cd ~/projects/auto-system-scraperclaude# "读取现有逻辑,重构抓取链路代码,跑通测试。"

右边窗格:

cd ~/projects/auto-system-agentclaude# "重写 LLM 内容生成和审核逻辑。"

1 号 Claude 在 auto-system-scraper 里把 utils.py 删了也没关系,2 号 Claude 在 auto-system-agent 里看到的还是原样,他们有各自独立的 git index,随便 commit,之间互不影响。

第四步:合并和清理

两个 Claude 干完活、代码也 commit 到各自分支之后,回主目录合并:

cd ~/projects/auto-content-system# 看看当前有哪些 worktreegit worktree list# 合并两个分支git merge feat-scrapergit merge feat-agent# 有冲突的话用 IDE 正常解决# 清掉用完的 worktreegit worktree remove ../auto-system-scrapergit worktree remove ../auto-system-agent# 分支不要了也可以删git branch -d feat-scraper feat-agent

写在最后

Claude Code 的能力上限,很大程度上取决于你怎么用它。tmux 管会话隔离,iTerm2 -CC 管交互体验,Git Worktree 管文件冲突。三件工具叠在一起,一个人确实能顶一个小团队的并行开发节奏