你大概在自己笔记本的终端里跑 Claude Code。那种会话在三方面依赖笔记本:
- 共享你的工作树,因此同一仓库上两个会话可能改同一批文件、抢同一端口。
- 用你的凭证跑。
- 电脑休眠或 Wi-Fi 掉线就停。
云会话 在 Claude Code 自己的机器上跑。每项任务拿到一台全新虚拟机,仓库克隆到新分支,环境的 setup 已做完。
你可从 claude.ai/code、Claude 移动应用、Desktop 应用、终端 和 Slack 启动。然后可从浏览器、移动应用和 Desktop 跟进。做完后停在你可转成 pull request 的分支上。
云会话随 Pro、Max、Team 或 Enterprise 计划提供,无额外费用:云机器无单独收费,会话与其余 Claude Code 共用同一用量限额。视计划而定,组织所有者可能需先 打开云会话。
为本指南,我在一个小样例仓库上跑了四次真实云会话。其 transcript、diff 与计时贯穿全文。截图里的仓库与用户是虚构的。工作、产出与数字来自那些会话。
云会话的一大优势是可同时跑多项任务而不互相妨碍。下面是我在 16 秒内启动的三个,各在自己的机器上。在笔记本上,我会一个接一个跑,或花时间让它们互不踩脚。
视频:同一仓库上三个云会话的真实时间线,从首次启动起以秒计。阴影条是重建样例仓库的 setup 步骤(正常使用中由 GitHub clone 替代),每个点是一次工具调用。 — 三台 VM 上三个云会话的时间线,彼此在 16 秒内启动。阴影 setup 条后,flaky 测试修复在 65 秒完成(套件跑 40 次、0 失败),文档重写 62 秒(修 5 处文档错误),结构化日志改动 87 秒(JSON 日志与 5 个新测试)。
三项任务、一个仓库、三台机器
样例仓库是 tidepool,一个为三个虚构港湾预测潮汐的小型 Node API。它有三个普通问题:一个测试大约四次跑失败一次,API 文档描述了代码不再读的参数,logger 用字符串拼接造行。
我在 16 秒内启动了三个云会话,每问题一个。我用程序启动;因 tidepool 不在 GitHub 上,每个会话先从提示词里的文件重建仓库。真实仓库会跳过那步;从终端每个会话是一条 claude --cloud 命令。缩短后的三条提示词是:
claude --cloud "npm test fails maybe one run in four. Find the flaky test, fix the root cause in the code (not the test), and prove it by running the suite at least 30 times in a row."
claude --cloud "docs/API.md is out of date with src/server.js. Rewrite it so every endpoint, parameter, default and response shape matches the code. Start the server and run each curl example to check it."
claude --cloud "Make src/logger.js emit one JSON object per line, keep LOG_LEVEL, and log method, path, status and duration_ms as fields. Add a test for the logger."
会话分别跑了 61、65 与 72 秒,第一个启动后 87 秒三个都做完。重建仓库约占每次运行三分之一到刚过一半。结果如下。
- Flaky 测试。 Claude 在
TtlCache.get找到竞态。缓存只在 loader 完成后存值,因此加载期间对同一 key 的第二次get会再调 loader。Claude 改成存 in-flight promise,加载失败时丢掉条目,并连续跑npm test40 次零失败。 - 文档。 Claude 启动服务器,对每个端点跑 curl,发现旧文档五处错:列了 API 从不返回的字段、记录了代码忽略的
days参数、高度写成英尺实际是米、跳过/next-high端点、漏了错误响应。还发现畸形from=值以 200 返回空列表,并记为 caveat,而不是去改它没被要求碰的服务端代码。 - Logger。 Claude 写了 JSON logger,把请求日志挪到结构化字段,加了五个测试。提交时有一个失败测试,于是 Claude 把缓存测试再跑八次,五次失败,并追到第一个会话正在修的同一竞态。它提议了同样的修复,因超出任务范围而没动缓存,并在摘要里说套件不干净。

claude.ai/code 界面里的三个会话,本地运行并回放真实 transcript。Setup 步骤已裁,路径显示在 /home/user 下,侧栏底部三个标题是填充,模式芯片显示默认。

Fix the flaky test 会话

Update the tidepool API docs 会话
视频:同一本地构建的 20 秒录制:在三个会话间点击,再滚动 logger 会话的 transcript — 在侧栏三个会话间点击,再滚动 logger 会话的 transcript。
Logger 结果说明云会话为何适合并行工作。每个会话有自己的仓库副本、进程与分支。文档会话与 logger 会话各自启动 API 服务器做测试,互不影响。在同一笔记本上,两个 Agent 在一个 checkout 里工作会改同一批文件,并在未各自选端口时撞端口。
由于隔离,logger 会话拿不到第一个会话正在做的缓存修复。按文件边界拆并行任务,按合理顺序合并分支,并预期某会话会报告另一会话已在修的问题。
Claude Code 云会话内部
云会话是跑在 Anthropic 托管基础设施上的 Claude Code 会话,或用 自托管环境 跑在组织自己的机器上。下图展示各部分。其后四点是会改变你工作方式的要点。

云会话解剖。Agent 能碰的一切在 VM 内。你的 GitHub token 与网络策略在 VM 外。
- 每项任务有自己的机器。 全新 VM,仓库克隆到新分支,因此会话碰不到彼此的文件或端口。见 装了什么。
- 你的 GitHub token 永不进 VM。 代理持有它,会话拿到只能推到自己工作分支的短命凭证。见 GitHub proxy。
- 仓库的 Claude 配置会带上。你的个人配置不会。
CLAUDE.md、规则、Skills、agents 与 commands 随仓库走,你的~/.claude留在笔记本上。见 云会话中的设置。 - 空闲 VM 会被回收。 重新打开会话会拿到带已恢复对话的全新 VM,因此关心的工作要提交。见 环境过期。
本地还是云?
云会话不取代本地会话,多数人两者都用。下表展示差异,其后段落说明各自何时合适。
| 本地会话 | 云会话 | |
|---|---|---|
| 跑在 | 你的机器 | 每任务一台全新 VM |
| 笔记本休眠或离线 | 会话停止 | 会话继续 |
| 同一仓库多项任务 | 分开 worktree、端口与小心 | 每任务一 VM 一分支 |
| Agent 能到哪里 | 你用户账户能到的一切,含 SSH 密钥、云 CLI 与 ~/.claude |
仓库、你设的网络级别、启用的连接器,以及会话范围的 GitHub 凭证 |
| 从哪启动或跟进 | 那台机器,或经远程控制用手机 | 浏览器、手机、Desktop、终端、Slack、API 调用或计划 |
| 批准 | 任意模式,含按命令 | Auto、Accept edits 或 Plan |
| 结束时 | 工作树里的改动 | 一个分支,需要时再开 pull request |
| 算力 | 你的机器 | 无单独算力费;用计划限额 |
任务需要只有你机器才有的东西时留在本地:带真实本地数据的数据库、经 VPN 的服务、GPU、手机模拟器,或桌上硬件。要在自己浏览器里几秒内看见每次改动的紧视觉循环也留本地;组织跑 Zero Data Retention 时云会话会关掉。
两个功能介于选项之间。Remote control 把会话留在你机器上,让你从手机或浏览器驾驭。自托管环境(Team 与 Enterprise 的 beta)在组织自己的基础设施上跑云会话,因此可到私有网络。
若以上都不适用,任务是云上的好候选。下一节讲最划算的工作流。
适合云会话的七种工作流
这些工作流把表中差异用起来:每任务一台机器、你不在时会话继续跑、结束时有分支给你审。
1. 并行清积压
假设有五个小、互不相关的修复。本地你会一个接一个做,或设五个 worktree 并隔开端口与安装。云上启动五个会话、审五个分支。
claude --cloud "Fix the flaky test in auth.spec.ts"
claude --cloud "Update the API documentation"
claude --cloud "Refactor the logger to use structured output"
claude --cloud 在你当前分支克隆 GitHub remote,因此先推本地提交。VM 启动时,CLI 显示 setup 步骤的实时清单,并排队你打的任何内容。
把每项任务写成自洽 ticket:错在哪、什么叫完成、如何证明。flaky 测试提示词点名了证明:连续至少跑套件 30 次。会话跑了 40 次。
任务属于更大努力时,project(Pro 与 Max 的公开 beta)跑协调对话,替你启动并跟踪云会话,再按状态分组:工作中、等你、待审。
2. 让它证明修复
Flaky 测试是最需要反复证明的清晰例子:你得一遍遍跑套件,又不想让循环占住你正在用的机器。云上 Claude 打了缓存补丁,并在一条命令里把整套跑了 40 次。

四十次运行,零失败:flaky 测试会话的真实命令与输出,在本地跑的 claude.ai/code 界面回放。Claude 打了 src/cache.js 补丁,一步内循环整套 40 次。路径在 /home/user 下。
VM 无算力费、CPU 也不是你的,因此要求彻底证明。跑套件 200 次、跨 50 个提交二分回归、跑慢集成层,或像文档会话那样启动 App 并用 curl 打。
Claude 的每一轮仍计入计划,但一条命令里的长测试运行成本很小。前台命令 默认 2 分钟超时(最多 10),然后最多再后台跑 30 分钟。可用环境变量 BASH_DEFAULT_TIMEOUT_MS 与 BASH_MAX_TIMEOUT_MS 提高默认。
3. 桌前规划、云上构建、终端收尾
对更大改动,先在来回便宜的地方谈妥做法。以 plan mode 启动 Claude,一起定计划,提交计划并推送。
claude --permission-mode plan
# ...agree on the plan, save it to docs/migration-plan.md, commit and push...
claude --cloud "Execute the migration plan in docs/migration-plan.md"
云会话构建时,你的终端可做别的。做完后把会话拉下来亲手收尾。
claude --teleport # pick a cloud session
claude --teleport <session-id>
Teleport 确认你在同一仓库,拉取会话分支、检出,并把整段对话加载进终端。需要干净工作树(它会提议 stash),且分支必须已推送。在 Claude Code 内,/teleport(或 /tp)打开同一选择器,/tasks 再按 t 也行。Desktop 应用反过来:其 Open in 菜单把本地会话送到云上。
4. 从手机查看
Claude 应用里的 Code 标签连到同一批会话。从手机可启动任务、跟进、驾驭、回答 Claude 问的问题,或让 Claude 盯一个 pull request。
手机适合那些到键盘前就会忘掉的问题。我给第四个会话一个你会在手机上打的那种问题:tidepool 怎么预测潮汐,在时间窗口边缘可能怎样出错?它跑代码核验答案,并找到真 bug。循环从不检查第一个或最后一个样本,因此 API 会漏掉恰好落在窗口起点的高潮。

从手机问的问题:浏览器里手机宽度的 claude.ai/code(非原生应用),本地运行并回放第四个会话的真实答案

Claude 对样例数据跑代码核验每条主张,未改任何文件
5. 把 CI 失败与审查评论交给 Claude
仓库装了 Claude GitHub App 后,云会话可盯 pull request 并对发生的事行动。在 claude.ai/code 会话的 CI 条打开 Auto-fix。也可在 PR 分支上于终端跑 /autofix-pr,让移动应用盯 PR,或把 PR URL 贴进会话。
Claude 对失败检查与审查评论推清晰修复,并解释改了什么。含糊或架构性的会问你。审查线程上的回复以你的 GitHub 用户名发出,标为 Claude Code。Claude 不会因与基分支的合并冲突收到通知,因此要让它 rebase。其评论也可触发 Atlantis 这类评论驱动自动化。
6. 不亲手开工也能开工
Routine(研究预览)是若干为完成任务而设计的已存资源,如提示词、仓库、连接器与环境。每次运行是一次云会话,由触发器启动。触发器可以是计划(最密每小时)、对 routine 自有端点的 HTTP 调用,或 pull request 打开、release 这类 GitHub 事件。在 claude.ai/code/routines、Desktop 应用,或 CLI 里 /schedule 创建。Routine 跑时无批准提示,默认推到 claude/ 前缀分支。
两个更小工具也有帮助。可从任何已登录机器(含 CI 作业)把后续消息排进正在跑的会话。
claude -p "The integration tier is green now; rebase on main and push" --cloud <session-id>
也可收藏预填会话。如 claude.ai/code?prompt=Triage+the+newest+issues&repositories=acme-labs/tidepool 的 URL 会打开已填好提示词与仓库的 claude.ai/code。
7. 跑你不完全信任的代码
贡献者的 pull request、新依赖的安装脚本,或五分钟前克隆的仓库,都可能跑你没读过的代码。在笔记本上,那些代码挨着你的 SSH 密钥、云 CLI 会话与浏览器配置。在云会话里它跑在一次性 VM 里,没有那些,只有会话范围的 GitHub 凭证,以及你可收窄的网络。
把环境的网络访问设为 None 最严,或保持 Trusted(允许包注册表、GitHub 与主要云 SDK host)。即使 None,Claude Code 仍向 Anthropic API 发请求,因此数据可经那条路离开 VM,会话仍可推到自己的分支。所有出站流量经代理,记录 hostname。
连 GitHub 而不卡住
若第一次云会话出问题,最可能是 GitHub。多数问题来自云会话需要两套分开的 GitHub 权限。
- 用 GitHub 登录告诉 Claude 你是谁。
- 在账户或组织上安装 Claude GitHub App 设定 Claude 能在那里看到哪些私有仓库。
公共仓库只要第一项。私有仓库需要第二项,装在拥有它们的账户或组织上。若已连 GitHub 却缺私有仓库,通常是 App 没装在拥有它的账户或组织上。
| 你已连接什么 | 公共仓库 | 你的私有仓库 | 组织的私有仓库 | Auto-fix、GitHub 触发器、projects |
|---|---|---|---|---|
| 仅用 GitHub 登录 | 是 | 否 | 否 | 否 |
| + 个人账户上的 App | 是 | 是 | 否 | 你的仓库 |
| + 组织上的 App(所有者批准) | 是 | 仅若也在你的账户上 | 是 | 组织仓库 |
/web-setup(你的 gh token) |
是 | 是 | token 能到的 | 否,需要 App |
路径 A:在浏览器连接(推荐)
在 claude.ai/connect-github 连接 GitHub 账户,再在拥有仓库的账户或组织上安装 Claude GitHub App。对组织,通常要所有者批准安装。quickstart 逐步说明。

步骤 1,用 GitHub 登录。本地跑、带样例数据的 claude.ai/code 引导屏;插图里的仓库名与 Research preview 芯片是产品自带画面。

步骤 2,安装 Claude GitHub App
若 GitHub 没把你送回 claude.ai/code,claude.ai/connect-github 的连接页可显示常见原因的短清单。其一是单点登录步骤:跳过会隐藏组织的仓库。

若 GitHub 没送你回来:产品自带的中断 GitHub 连接清单,来自本地跑的 claude.ai/code 快速设置引导
Auto-fix、GitHub 触发的 routine 与 projects 也依赖 App,因此即使用其他方式连接也要安装。
路径 B:用 /web-setup 从终端连接
若已用 gh CLI,在 Claude Code 里跑 /web-setup,把 gh token 发到 Claude 账户。会话随后可到该 token 能到的任何仓库,有无 App 均可。走读见 从终端连接。Team 与 Enterprise 计划上,所有者须先打开 Quick setup。
路径 C:一次性跳过 GitHub
在无 GitHub remote、或未装 App 的仓库里跑 claude --cloud,Claude Code 会上传仓库 bundle 而不是克隆。仅当你的 GitHub 连接对该仓库有推送权限时,会话才能推回。文档列出 bundle 含什么、不含什么。
若你跑 Team 或 Enterprise
所有者有一份短清单:在 claude.ai/admin-settings/connectors 打开 GitHub 连接器,在 Claude Code 管理设置 允许云会话,在组织仓库上安装 Claude GitHub App(或批准成员请求),并决定是否打开 Quick setup。有 IP allowlist 或 GitHub Enterprise Server 的组织还有额外一步。见 IP allowlists 与 GitHub Enterprise Server 文档。
仍不行时
| 你看到什么 | 为何 | 修复 |
|---|---|---|
| 选择器里缺私有仓库 | App 未装在拥有它的账户或组织上,或其仓库访问排除了它 | 在那里安装 App,或在 GitHub 设置里把仓库加进 App 的 Repository access |
| 错误说你必须是组织所有者才能链接 | 组织挡住了成员资格检查,通常因待处理 App 权限请求、IP allow list 或 SAML SSO | 所有者在组织的 GitHub App 设置里接受待处理权限请求、为已安装 GitHub Apps 打开 IP allow list 继承,或(在 SAML 下)授予 Claude 对该组织的访问 |
| 刚连接后组织仓库缺失 | 组织用 SAML SSO,其授权步骤被跳过 | 在 GitHub「Single sign-on to your organizations」步骤,继续前对每个组织点 Authorize。若已跳过,在 GitHub 设置里为该组织授权 Claude,再重连 |
| 每个云会话以认证错误失败 | 你的 Claude 组织使用 IP allowlisting | 请支持把 Anthropic 托管服务加入豁免 |
其他情况见文档 troubleshooting,含 连接 GitHub 后无仓库出现。要完全断开 GitHub,用 claude.ai/customize/connectors。
给会话检查自己工作所需
能跑你测试的会话,会在交回工作前自检。没有的话,你审的是没人跑过的改动。本指南演示的多数价值来自 Claude 在跑东西:套件 40 次、服务器与 curl、窗口边缘的潮汐计算。十分钟环境 setup 就给 Claude 跑这些检查的方式。

在本地跑、带样例值的 claude.ai/code 界面添加云环境:名称、网络访问级别、.env 格式变量,以及 setup 脚本
- 从 Default 环境起步。 用 Trusted 网络访问、无变量、无 setup 脚本,对多数 JavaScript、Python、Go 与 Rust 仓库够用。
- 机器用 setup 脚本。 在 Claude Code 启动前以 root 跑,因此
apt install可用。必须 exit 0 否则会话不启动,并应约五分钟内完成以便环境被缓存。之后新会话从带你工具的快照起步。改脚本或允许的 host 时,以及大约每七天,缓存重建。 - 项目用 SessionStart hook。 把
npm install等步骤放进仓库.claude/settings.json的 hook,让本地与云上同样跑。步骤只应在云上跑时查CLAUDE_CODE_REMOTE。单仓库会话会加载仓库 hooks。 - 按会话启动服务。 缓存存文件。当时在跑的进程撑不过去。让 Claude 跑
service postgresql start,或放在 SessionStart hook 里。 - 选能工作的最窄网络级别。 Trusted 覆盖常见注册表。用 Custom 加私有注册表,仅任务需要开放互联网时用 Full。改动约一分钟内到达正在跑的会话。
- 密钥别放进共享变量。 环境变量对任何使用该环境的人可见。在 Pro 与 Max 上,环境的 API 凭证把密钥挂到你点名的 host 的请求上、在 VM 外,因此密钥永不进变量。
- 把命令写进 CLAUDE.md。 你的个人
~/.claude到不了云 VM。若 Claude 需要知道如何跑集成测试,仓库里必须写明。
划算的习惯
- 一项任务,一个会话。 小而分开的会话更好审、扔掉也更便宜。
- 要证据。 点名证明任务完成的命令,先读 Claude 的摘要再看 diff。
claude --cloud前先推。 VM 从 GitHub 克隆,未推的提交到不了。- 长任务边做边提交。 空闲 VM 可被回收。
- 在 diff 视图审。 行内评论会批进你下一条消息,Create PR 可开完整 PR、草稿,或 GitHub 撰写页。
- Claude 工作时驾驭。 你在它工作时发的消息会排队,也可把排队的收回。
- 分享会话。 在 Team 与 Enterprise 上把会话可见性设为 Team,让审查者能读改动如何做出。云会话的提交带链回 transcript 的
Claude-Sessiontrailer。 - 盯限额。 并行会话并行消耗计划限额,五个会话大约比一个快五倍。Routine 有自己的每小时上限,projects 每天最多开 200 个新线程。
常见问题
谁能用云会话? Pro、Max、Team 计划,以及有 premium 席位或 Chat + Claude Code 席位、用 claude.ai 账户登录的 Enterprise 用户。不能用 Console API key 或第三方提供商。见 云会话文档。
我的数据去哪? Anthropic 存会话 transcript,保留多久取决于计划与模型改进设置。VM 在不活动后回收,删除会话会删其数据。见 data usage 与 security。
Claude 会用我的云会话数据训练吗? 云会话遵循与其余 Claude Code 相同的政策。在 Team、Enterprise 与 API 上,除非组织选择加入,Anthropic 不在你的代码或提示词上训练模型。在 Free、Pro 与 Max 上,取决于你的 模型改进设置。见 data usage。
能扛我的大仓库吗? VM 约有 4 vCPU、16 GB RAM、30 GB 磁盘。把重安装放进 setup 脚本,只跑一次并落入缓存快照。
GitLab 或 Bitbucket 呢? claude --cloud 可从任何 git 仓库上传 bundle,但会话不能推回那些宿主。Team 与 Enterprise 支持 GitHub Enterprise Server。见 平台限制。
并行分支冲突怎么办? 会话互不知晓。先合并一个分支,再 给下一会话发后续,如 claude -p "rebase on main and fix any conflicts" --cloud <session-id>。
会丢本地工具吗? 用户级配置不跟着走,因此把团队需要的挪进仓库:把 Skills 与 commands 检入 .claude/,把项目范围 MCP 服务器加进 .mcp.json,在 CLAUDE.md 写测试命令。云会话中的设置 列出每个会话读什么。
五分钟起步
Setup 约五分钟。之后你可交出任务、合上笔记本,回来时有一个待审分支。
- 打开 claude.ai/code,或在 Claude Code 里用 claude.ai 账户跑
/login。 - 连接 GitHub,并在仓库所在处安装 Claude GitHub App。
- 选仓库与 Default 环境。
- 从积压给 Claude 一项任务,带证明完成的命令。
- 关掉标签。稍后从手机查看,再在 claude.ai/code 审 diff 并创建 pull request。
附录:原页面上的图
这些图在原页面上,但官网的 Markdown 导出里没有,所以附在文末;它们在原文中的位置和说明请看英文原文。
