Claude Code 多会话协同操作指南(自产)

Claude Code 多会话协同操作指南

在同一个项目中同时开启多个 Claude Code 会话(”多开几个页面”),让它们各自负责不同任务,协同完成开发。


适用场景

场景 说明
前后端分离开发 会话 A 写前端组件,会话 B 写后端 API
并行修复 Bug 会话 A 修复模块 A,会话 B 修复模块 B
一边开发一边审查 会话 A 在写代码,会话 B 在做 Code Review
主会话 + 辅助探索 会话 A 主力开发,会话 B 做技术调研/原型验证

方法一:多终端窗口(最直接)

操作步骤

1. 打开多个终端页面

  • VS CodeCtrl + Shift + \`` 开新终端,或点击终端右上角的 +` 分拆面板
  • Windows TerminalCtrl + Shift + D 复制标签页,或 Ctrl + Shift + T 新建
  • Terminal 复用器:tmux / screen

2. 在每个终端中启动 Claude Code

1
2
3
4
5
6
7
8
9
10
11
# 终端 1 - 负责前端
cd F:/Claude code
claude -n "前端开发"

# 终端 2 - 负责后端
cd F:/Claude code
claude -n "后端开发"

# 终端 3 - 负责审查/测试
cd F:/Claude code
claude -n "审查"

-n / --name 给会话命名,方便 /resume 时区分。

注意事项

  • 每个会话独立,互不知晓对方的存在
  • 不要同时在两个会话中编辑同一个文件,否则会相互覆盖
  • 通过项目文件来”通信”(见下文协调方式)

方法二:Git Worktrees 隔离工作区(推荐)

避免冲突的关键:每个会话拥有独立的文件系统工作目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建隔离工作区
cd F:/Claude code

# 终端 1 - 前端开发
git worktree add .worktrees/frontend -b feature/frontend
cd .worktrees/frontend
claude -n "前端开发"

# 终端 2 - 后端开发(在另一个终端)
cd F:/Claude code
git worktree add .worktrees/backend -b feature/backend
cd .worktrees/backend
claude -n "后端开发"

# 终端 3 - 集成测试(在另一个终端)
cd F:/Claude code
git worktree add .worktrees/integration -b feature/integration
cd .worktrees/integration
claude -n "集成测试"

或者让 Claude Code 自动创建 worktree:

1
2
claude -w frontend -n "前端开发"
# 自动创建 .worktrees/frontend 并进入

为什么用 Worktree?

  • 每个会话操作自己的分支,互不干扰
  • 底层是同一个 Git 仓库,最终可以合并
  • 不会出现”两个人改了同一个文件”的冲突
  • 每个 worktree 可以独立 npm install / 编译 / 测试

方法三:同一会话内派发子智能体

如果只是想”多个人干活”而不是”多个页面”,Claude Code 本身支持在一个会话内派发子智能体:

1
2
Agent(description: "实现用户登录模块", prompt: "...")
Agent(description: "实现用户注册模块", prompt: "...")

但这种方式无法同时运行——子智能体是串行或并发的但共享同一个上下文窗口。


会话间协调方式

多个会话之间需要协调时,通过项目文件沟通:

方式 A:任务看板文件(推荐)

创建一个共享任务追踪文件:

1
2
3
4
5
6
7
8
9
10
11
# .claude/tasks.md

## 待办
- [ ] 前端:登录页面 UI
- [ ] 后端:登录 API

## 进行中
- [ ] 前端:注册页面 UI — @前端开发会话

## 已完成
- [x] 设计数据库 Schema — @后端开发会话

方式 B:接口契约文件

前后端开发时,先约定接口再各自实现:

1
2
3
4
5
# api-contract.yaml
/login:
POST:
request: { username: string, password: string }
response: { token: string, user: User }

前端会话拿到这个文件 mock 数据开发,后端会话按这个文件实现。

方式 C:Git 提交 / 分支合并

  • 每个会话在独立分支上工作
  • 完成后 PR → Code Review → 合并
  • 通过 git fetch 拉取对方进度

完整工作流示例

1
2
项目:开发一个 Todo App
分工:A 做前端,B 做后端

初始化

1
2
3
4
5
6
7
8
9
10
11
# 终端 A - 前端
cd F:/Claude code
git worktree add .worktrees/frontend -b feature/todo-frontend
cd .worktrees/frontend
claude -n "Todo-前端" -w

# 终端 B - 后端
cd F:/Claude code
git worktree add .worktrees/backend -b feature/todo-backend
cd .worktrees/backend
claude -n "Todo-后端" -w

终端 A(前端)中

1
你:帮我创建 Todo 应用的前端,API 接口见 api-contract.yaml

终端 B(后端)中

1
你:帮我创建 Todo 应用的后端 API,接口定义见 api-contract.yaml

集成

各自完成开发后:

1
2
3
4
5
6
7
8
9
10
11
# 回到主仓库
cd F:/Claude code

# 合并前端
git merge feature/todo-frontend

# 合并后端
git merge feature/todo-backend

# 验证
npm test

常用命令速查

命令 作用
claude -n "会话名" 启动并命名会话(便于 /resume 区分)
claude -w 分支名 启动并自动创建 worktree 隔离工作区
claude -r 查看所有可恢复的会话
claude -c 继续最近的会话
claude --model sonnet 用特定模型启动(省钱用 sonnet,主会话用 opus)
git worktree list 查看所有 worktree
git worktree remove .worktrees/xxx 删除 worktree

注意事项

注意 说明
别改同一个文件 两个会话同时编辑同一个文件会相互覆盖
Worktree 需被 gitignore .worktrees/ 目录必须被 .gitignore 忽略,否则会污染仓库
依赖各自装 每个 worktree 需要各自 npm install / pip install
模型费用独立 多开意味着多个会话同时消耗 API 额度
主会话用 Opus 主力开发用 --model opus,辅助任务用 --model sonnet 省钱
会话不共享上下文 一个会话不知道另一个会话做了什么,通过文件沟通