Zed Channel 多人协作开发:搭配 Claude Code 实战
Zed 独有的 Channel 实时协作功能与 Claude Code 结合的三种模式、Notes 视图共享方案、并发坑、远程异步协作和团队工作流推荐。
Zed 编辑器最被低估的功能不是它用 Rust 写得有多快,而是 Channel——一个把 IDE、聊天、共享屏幕、共享终端、共享白板捏在一起的工作空间。配合 Claude Code 之后,它能干的事远比 VS Code Live Share 多。这篇不讲 Zed 安装,只讲已经装好 Zed、Claude Code 都能用的人,怎么把两者揉进团队协作流程。
Zed Channel 是什么:和别家对比
很多人第一次听到 “Channel” 会想到 Slack 的频道。Zed 的 Channel 概念更接近一个持久的虚拟工作室:进去后所有人共享一个项目工作区,能看到彼此的光标、跟着滚动、对话、留笔记,离开后下次回来一切都在。
| 能力 | Zed Channel | VS Code Live Share | JetBrains Code With Me |
|---|---|---|---|
| 实时协同光标 | 是 | 是 | 是 |
| 共享终端 | 是(多个,跟随式) | 是(一个) | 是 |
| 持久 Notes / 白板 | 是 | 否 | 否 |
| 永久频道(无需会话) | 是 | 否(每次新链接) | 否 |
| 不需要 Host 在线 | 是(异步加入) | 否 | 否 |
| 内置语音/聊天 | 是(语音) | 仅文字 | 仅文字 |
| 开源 | 是 | 否 | 否 |
「不需要 Host 在线」和「永久频道」是关键差异——意味着你可以晚上启动一个 Claude Code 长任务,关电脑睡觉,同事第二天进 Channel 还能看到那个终端的输出。这彻底改变了「协作必须是同步」的假设。
协作模式 A:单人开 Claude Code,全员围观
适合Senior 带 Junior 或者 Code Review 现场演示。一个人在自己的 Zed 里运行 claude,Channel 内所有人都能在共享终端里看到完全相同的输出。
步骤:
- 频道发起人在 Zed 打开项目,按
Cmd/Ctrl+Shift+P→ “channel: share project” - 团队成员通过 Channel 链接进入
- 发起人在 Zed 底部终端面板按
+新建 shared terminal(图标右上角有个共享标记) - 发起人输入
claude - 所有人实时看到 Claude 的回答和文件改动
何时用:
- 新人入职第一周,让 Senior 演示「遇到不懂的代码怎么问 Claude」
- 跨时区团队的 weekly demo
- 解决线上事故时,事故指挥官在 Channel 里全程录像式调试
注意点:
- 只有发起人能输入到共享终端(除非显式 toggle 编辑权限)。其他人只读
- 共享终端的输出会被记录到 Channel 历史里,能在 Notes 视图里翻回看
- Claude 改文件时,所有人编辑器都会看到 buffer 实时刷新,不需要手动 reload
协作模式 B:每人独立开 Claude Code 改不同模块
适合多人并行开发。Channel 里每个人在各自分支跑各自的 Claude Code,Channel 只用来同步进度、传文件、聊设计。
# 三个人,三个分支,三个 claude 进程
# 张三
git checkout -b feature/auth
claude
> 实现 OAuth 登录,参考 src/auth/spec.md
# 李四(同一个 Channel 但另一台机器)
git checkout -b feature/billing
claude
> 把订阅计费迁到 Stripe v3 API
# 王五
git checkout -b feature/dashboard
claude
> 给 admin dashboard 加用户分群统计
三个 Claude 进程互不干扰,因为 Claude Code 的状态只跟工作目录有关。Channel 在这里扮演的不是「共享 Claude」,而是「共享上下文」:
- 张三遇到
Userschema 不一致,在 Channel 文字频道@李四 你那边 User 模型还在改吗 - 李四把 Stripe Webhook 验证逻辑写完了,把代码片段贴到 Channel Notes
- 王五要 dashboard 用 admin token,王五
@张三直接共享一个终端让张三临时连进来生成 token
Claude Code 的会话各自跑,但外部交流 全在 Channel 里发生。
协作模式 C:结对编程 + Claude Code 当第三人
经典 pair programming 是 driver(敲键盘的)+ navigator(看方向的)。加入 Claude Code 后变成三角形:
| 角色 | 负责 |
|---|---|
| Driver | 在 Zed 里敲代码,能看到所有人光标 |
| Navigator | 思考下一步,盯着 Driver 不写错 |
| Claude | 处理样板代码、查文档、写测试、解释陌生 API |
实际操作:
Navigator: "我们先把这个 ParseError 类型补齐。Claude,给所有 enum 变体加 Display impl"
Driver: 在 Zed 终端里:claude > 给 src/error.rs 的 ParseError 加 Display impl
Claude: [改完]
Driver: 切到 diff 视图,Navigator 看一下
Navigator: "InvalidUtf8 那个 message 不够清楚,改"
Driver: 直接在 Zed 里手改
Navigator: "好,接着让 Claude 写 prop test"
Driver: claude > 用 proptest 给 ParseError 的所有变体写属性测试
Claude 在这里相当于一个永远不抢主导权的实习生:你叫它做啥就做啥,做完你审。Navigator 不用担心 Driver 被 Claude 带偏,因为 Navigator 在 Channel 里实时看着每一步。
Channel 的 Notes 视图:把 Claude 的方案存下来
Zed Channel 有一个特殊的 Notes 文档(按 Channel 名右键 → Open Notes),是协作 Markdown 文档,所有人能编辑、永久保存。这是放 Claude Code 输出的好地方:
# Sprint 23 决策记录
## 2026-05-09 讨论:要不要把 ORM 从 Sequelize 换成 Prisma
由 Claude Code 调研(基于当前项目代码):
### 现状
- 项目使用 Sequelize 5.x,有 47 个 model
- 多处依赖 hooks 和 instance methods
- TypeScript 类型靠 sequelize-typescript 装饰器
### 迁移成本
- 47 个 model 需要重写 schema.prisma:约 2 天
- hooks 在 Prisma 里要用 middleware 替代:约 3 天
- raw query 占 12 处需要逐个改:约 1 天
### 推荐:不迁移
理由:当前痛点(类型不全)可以通过升级 sequelize-typescript 到最新版解决,
代价是 4 小时 vs 6 天。
---
@张三 觉得 OK
@李四 加一票
@王五 我同意结论但建议把 raw query 那 12 处用 typed query builder 包一下
这种长 prompt 调研结果直接贴到 Notes,永久保存、可搜索、可 @ 提醒人。比起塞在某个 Slack thread 或者 Notion 里好找十倍。
并发坑:Claude 读快照、人改文件
这是 Claude Code + 多人协作最容易踩的坑。Claude Code 在生成改动时是基于「当时读取的文件内容」做的推理。如果你在它读文件后、写回前有人改了同一个文件:
T=0 Claude 读取 src/queue.rs(版本 A)
T=2 李四在 Zed 共享会话里直接改了 src/queue.rs 的第 80 行
T=3 Claude 决定改第 30 行 + 第 80 行(基于版本 A)
T=5 Claude 写入文件 → 李四 T=2 的改动被覆盖
Claude 一般会检测文件 mtime 变化并拒绝写入,但在 Zed 共享会话里多个客户端写同一个文件时,文件系统层面只有一次最终写入,Claude 的检测可能失效。
防御手段:
- 明确划分人和 Claude 的工作范围:Claude 跑期间,告诉队友这几个文件别动
- 用 git 分支隔离:每个 Claude 任务自己开分支,写完合并时手动解冲突
- Claude 跑完立即 commit:让 git 来保护你
- 关闭 Zed 的自动保存:避免编辑器层的并发写
# .zed/settings.json
{
"format_on_save": "off",
"autosave": "off"
}
频道权限和 API Key 安全
Channel 共享的是工作区,不是 API key。但有几个地方容易泄露:
- Claude Code 启动时如果走
ANTHROPIC_API_KEY环境变量,启动命令显示在共享终端里看不到 key - 但是 如果共享终端的滚动历史里出现过
echo $ANTHROPIC_API_KEY或者你不小心粘贴了,那就所有人都看到了 claude config get输出可能包含 key 的最后几位~/.claude/目录被打开看的话能看到 keychain entry 引用
最佳实践:
| 项 | 推荐 |
|---|---|
| API Key 存储 | 每人本地 ~/.claude/credentials,绝不放仓库 |
| Channel 内共享终端 | 不要在里面运行涉及 secret 的命令 |
| 计费 | 每人自己的 Anthropic 账号,团队报销 |
| 团队配置 | 把 CLAUDE.md 入 git,把 key 排除在 .gitignore |
如果一定要团队共享 key(比如演示账号),用 Anthropic Workspace 创建限额子 key,定期 rotate。
远程异步协作:长任务跨人接力
这是 Zed Channel 杀手锏。场景:
张三(北京时间晚上 11 点):
在 Channel 共享终端里启动 Claude Code:
"扫描整个 monorepo,找出所有未处理的 Promise rejection,
给每个加 .catch 并 commit 到 fix/promise-rejection 分支"
这个任务预计要 40 分钟
张三关电脑睡觉
李四(北京时间次日早上 9 点,纽约时间晚上 9 点):
打开 Zed,进入 Channel
看到那个共享终端还活着,Claude 已经处理了 38 个文件
滚动历史看到 Claude 在某个文件卡住了(缺少类型定义)
在 Channel Notes 留言:@张三 这块跳过了,回头看下 src/legacy/cb.js
接着自己启动新的 Claude 任务处理别的事
实现的前提:
- 张三的电脑可以不关,或者用 tmux/screen 保持终端会话
- Zed Channel 服务端记录共享终端的所有输出,即使 host 离线也能看历史
- Claude Code 一旦启动会一直跑,除非崩溃或退出
实际操作里建议张三启动时用 nohup claude -p '...' > /tmp/claude.log 2>&1 & 这种方式,把任务放后台,再用 tail -f /tmp/claude.log 在共享终端里实时显示。
推荐工作流:晨会 → 分工 → 各跑 Claude → 集体 Review
这是一套被多个团队验证过的小队(3-5 人)日工作流:
09:30 晨会(15 分钟)
- 进入团队 Channel,开共享视频
- Tech Lead 在 Channel Notes 写下今天三件大事
- 大家在 Notes 里
@自己认领任务
09:45-12:00 各自跑 Claude Code
- 每人自己分支
- Claude Code 启动后 不 共享终端(避免互相干扰)
- 卡住时在 Channel 文字频道
@求助 - 想 review 设计时把 Claude 输出贴到 Notes
12:00 午饭前 mini-review
- Tech Lead 共享自己的终端 + diffview,逐人过一下 PR
- 整个团队 Channel 内同步看
- 不通过的当场让作者继续跑 Claude 改
14:00-17:00 第二轮开发
- 上午 review 通过的开始合并到 main
- 没通过的进入修改循环
- 复杂任务结对,模式 C 上场
17:00 收尾
- 每人把今天 Claude Code 给的有价值的 prompt 存到团队的 prompt 库(专门的一个 Channel Notes)
- 长任务挂在 Channel 跨夜跑
这套流程的核心思想:Channel 不是用来「共享屏幕看老板敲键盘」的,而是用来「让 AI 协作的成果对全队可见」的。每个人的 Claude 会话独立、效率最高,但产出的代码、决策、prompt 全部在 Channel 里沉淀,新人入职翻 Channel 历史就能上手。
一句话总结四种模式的选择
| 场景 | 推荐模式 |
|---|---|
| 教学 / 演示 / 紧急救火 | A:单人开,全员围观 |
| 多人并行开发功能 | B:各开各的,Channel 同步上下文 |
| 复杂设计、新人结对 | C:结对 + Claude 当工具人 |
| 跨时区接力、长任务 | 异步:共享终端 + Notes 留言 |
Zed Channel 不会让 Claude Code 更聪明,但能让一个 Claude Code 用户的产出被 N 个人看见、纠正、复用。这才是协作工具该干的事。
相关阅读
其他编辑器工作流:
- VS Code + Claude Code:远程开发与 Dev Container
- Cursor + Claude Code:日常开发完整工作流
- WebStorm + Claude Code:JS/TS 项目实战工作流
- Vim + Claude Code:纯键盘终端工作流
- Neovim + Claude Code:Lua 生态深度集成
相关编辑器安装教程: