如何在终端里同时运行多个 Claude Code 实例
只要你用 Claude Code 认真干过几天活,大概率都会碰上这个念头:一个会话正在重构代码,与此同时,你想开一个新会话去处理别的事情,好省点时间、提高点产出。毕竟没人愿意盯着进度条发呆。于是你就开始想:能不能直接再开一个窗口,让两边各干各的?你来对地方了。
能同时运行多个 Claude Code 实例吗?
简短回答:能。我大部分工作日都并行跑两到三个会话,这也是这个工具带给我吞吐量提升最明显的地方之一。不过这事有正确姿势和错误姿势,错误姿势的结局是:合并冲突满天飞,还有一到周三就把用量配额烧光。
先说说它到底是怎么运作的。
直接给结论
你可以同时运行多个 Claude Code 实例。每个实例都是独立的进程,各自持有自己的对话,各自在自己的上下文里干活。最干净的做法是给每个会话分配独立的目录,通常通过git worktree实现,这样各个会话永远不会碰彼此的文件。
有一点必须记住:在 Pro、Max、Team 或 Enterprise 订阅下,每个会话消耗的都是同一个用量池。这点下面还会细说,因为翻车的人基本都栽在这。
同时开多个 Claude Code 会话会发生什么?
每个你启动的实例都是真正独立的。具体表现在:
- 对话互不相通。会话A看不到会话B的聊天记录。它们是不同进程,有不同的对话记录文件。
- 上下文窗口各自独立。每个实例各自理解它正在看的代码,彼此之间没有共享记忆。
- 任务执行互不阻塞。一个可以跑测试,另一个同时在写数据库迁移。谁也不挡谁。
- 账户用量是共享的。这是隔离性唯一的例外。在Pro和Max订阅里,Claude Code 是包含在内的,但用量在Claude和Claude Code之间是共用的。你跑的每个会话,加上你在Claude.ai上的聊天,都算在同一个配额里。
所以,这些会话在方方面面都是隔离的——除了那个直接碰到你钱包的部分。这一点值得记牢。
具体怎么运行多个 Claude Code 实例
做法有几种,取决于你需要多强的隔离。下面从最简单讲到最稳妥。
多个终端窗口或标签页
最基础的做法:再开一个终端窗口或标签页,cd进项目目录,再运行一次claude。
# Terminal 1 cd ~/projects/api-service claude # Terminal 2 (new window or tab) cd ~/projects/web-frontend claude当两个会话处在不同项目里时,这么做没问题。问题出在你把两个会话指向同一个文件夹的时候——它们可能会同时编辑同一批文件,互相踩踏。这正是 worktree 要解决的问题。
使用不同的项目文件夹
如果你的工作横跨多个仓库,那就一个仓库跑一个会话。不需要任何额外设置。每个claude进程都会从它被启动的位置去读取