别傻等AI写代码了。这三个工具让Claude Code同时干活
Anthropic的Claude Code是个终端里的AI编程工具,能读文件、改代码、提交Git,干活确实快。
但我发现很多人用它的方式是:开一个终端,敲个claude,然后坐那盯着它一行一行吐代码。这大概只用到了它一成功力。
Claude Code不该是你盯着看的打字机。它可以同时开好几个,并行干活。
这篇文章讲的是怎么用tmux、iTerm2的控制模式、还有Git Worktree,把多个Claude实例组织起来同时干活,互不打扰。
一、上下文污染的坑
用AI写代码最容易踩的坑是上下文污染。
你在同一个终端窗口里,一会儿让Claude查后端服务部署报错,一会儿又让它写前端样式。它的上下文窗口很快就被不相干的代码填满了。Token白烧不说,AI还容易开始胡说八道,甚至动手改不该改的文件。
所以原则很简单:一个模块一个session,别混着来。
用tmux的session功能,可以把不同任务的上下文从进程层面隔开:
tmux new -s># 数据处理相关的活儿全在这里
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-agentWorktree目录建在主项目的同级(../),不会污染主项目结构。
第三步:分屏启动双Claude
现在磁盘上有三个文件夹,属于同一个Git仓库。用tmux分屏或iTerm2的Cmd+D:
左边窗格:
cd ~/projects/auto-system-scraper
claude
# "读取现有逻辑,重构抓取链路代码,跑通测试。"右边窗格:
cd ~/projects/auto-system-agent
claude
# "重写LLM内容生成和审核逻辑。"1号Claude在auto-system-scraper里把utils.py删了也没关系,2号Claude在auto-system-agent里看到的还是原样。他们有各自独立的git index,随便commit,之间互不影响。
第四步:合并和清理
两个Claude干完活、代码也commit到各自分支之后,回主目录合并:
cd ~/projects/auto-content-system
# 看看当前有哪些worktree
git worktree list
# 合并两个分支
git merge feat-scraper
git merge feat-agent
# 有冲突的话用IDE正常解决
# 清掉用完的worktree
git worktree remove ../auto-system-scraper
git worktree remove ../auto-system-agent
# 分支不要了也可以删
git branch -d feat-scraper feat-agent写在最后
Claude Code的能力上限,很大程度上取决于你怎么用它。
tmux管会话隔离
iTerm2 -CC管交互体验
Git Worktree管文件冲突
这三件工具叠在一起,一个人确实能顶一个小团队的并行开发节奏。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!