在 Web 端使用 Claude Code¶
通过
--cloud和--teleport在 Web 与终端之间切换会话,管理和分享会话,从 Anthropic 的云基础设施自动修复 Pull Request。[!NOTE]
Claude Code Web 端目前为研究预览版,面向 Pro、Max 和 Team 用户开放,Enterprise 用户需要拥有 premium 席位或 Chat + Claude Code 席位。
Claude Code Web 端在 Anthropic 托管的云基础设施上运行任务。 访问 claude.ai/code 即可使用。即使关闭浏览器,会话依然保持运行,你还可以通过 Claude 移动端 App 随时监控进度。
[!TIP]
第一次使用?建议先阅读 快速入门 连接 GitHub 账号并提交你的第一个任务。
本文涵盖以下内容:
- 云环境:会话运行的位置,以及在哪里配置
- GitHub 认证方式:两种连接 GitHub 的方法
- 在 Web 和终端之间切换任务:使用
--cloud和--teleport - 管理会话:查看、分享、归档、删除
- 自动修复 Pull Request:自动响应 CI 失败和评审评论
- 安全与隔离:会话如何被隔离
- 限制:速率限制与平台约束
云环境¶
每个云端会话都运行在一个云环境中——即保存的配置,控制网络访问、环境变量和 Setup 脚本。首次引导时,Claude Code 会设置一个 Default 环境,采用 Trusted 网络访问。详见 Default 环境了解其创建方式,以及当你有多个环境时会话如何选择。
无论你从哪里启动云端会话——Web 端、终端、Claude Tag、Routines 还是移动端和桌面应用——都使用同一套环境。Claude Tag 频道会话仅使用组织共享环境。
详见 配置云环境 了解如何更改环境的权限、设置变量或添加 Setup 脚本,以及预装工具了解会话开箱即用的工具。
GitHub 认证方式¶
云端会话需要访问你的 GitHub 仓库来克隆代码和推送分支。 你可以通过两种方式授权:
| 方式 | 工作原理 | 适用场景 |
|---|---|---|
| GitHub App | 在 Web 引导流程 中授权 Claude GitHub App | 浏览器引导;需要自动修复的团队 |
/web-setup |
在终端运行 /web-setup,将本地 gh CLI token 同步到你的 Claude 账号 |
已经使用 gh 的独立开发者 |
[!NOTE]
无论哪种方式,云端会话都能访问连接的 GitHub 账号所能看到的所有仓库,而不仅仅是安装了 Claude GitHub App 的仓库。App 安装仅用于启用 PR Webhook 以支持自动修复,它并非会话级别的访问控制。要限制团队从云端会话能访问哪些仓库,请在 GitHub 本身进行限制,例如限制连接的 GitHub 账号的团队或仓库成员资格。
两种方式都可以。/schedule 会检查是否有任一形式的访问权限,如果都没有则提示你运行 /web-setup。详见 从终端连接 中的 /web-setup 流程说明。
GitHub App 是自动修复的必要条件,因为它使用 App 来接收 PR Webhook。如果你先通过 /web-setup 连接,之后又想用自动修复,需要在对应仓库上安装 App。
Team 和 Enterprise 管理员可以在 claude.ai/admin-settings/claude-code 通过 Quick web setup 开关禁用 /web-setup。
[!NOTE]
启用了零数据保留的组织无法使用/web-setup或其他云端会话功能。
在 Web 和终端之间切换任务¶
以下工作流要求 Claude Code CLI 已登录同一个 claude.ai 账号。 你可以从终端启动新的云端会话,也可以将云端会话拉到终端继续本地工作。云端会话即使关闭笔记本也会持续运行,你可以从任何地方监控,包括 Claude 移动端 App。--cloud 和 --teleport 标志不会出现在 claude --help 输出中,但 CLI 接受这些标志,用法如下。
[!NOTE]
从 CLI 看,会话传递是单向的:你可以通过--teleport将云端会话拉到终端,但不能将现有的终端会话推到 Web 端。--cloud标志为当前仓库创建新的云端会话。桌面应用提供了"Continue in"菜单,可以将本地会话发送到 Web 端。
从终端到 Web¶
使用 --cloud 标志从命令行启动云端会话:
claude --cloud "Fix the authentication bug in src/auth/login.ts"
这会在 claude.ai 上创建一个新的云端会话。会话会克隆你当前目录的 GitHub remote 和当前分支,因此如果有本地提交请先 push——VM 从 GitHub 克隆而非你的机器。--cloud 一次只能处理一个仓库。任务在云端运行,你可以继续本地工作。旧的 --remote 拼写仍可使用,作为 --cloud 的已弃用别名。
从 v2.1.195 起,CLI 在云端容器启动时会显示 Setup 步骤的实时清单(如克隆仓库和运行 Setup 脚本)。容器配置期间你输入的消息会排队,会话就绪后发送。
[!NOTE]
--cloud创建云端会话。--remote-control是另一个不相关的功能:它将本地 CLI 会话暴露给 Web 端监控。详见 Remote Control。
使用 Claude Code CLI 中的 /tasks 查看进度,或在 claude.ai 或 Claude 移动端 App 上打开会话直接交互。在那里你可以引导 Claude、提供反馈或回答问题,就像任何其他对话一样。
如果 Claude 提出问题而会话处于空闲状态,你随后回来仍可回答(在环境过期之前),会话会从你的回答继续。
云端任务技巧¶
本地规划,远程执行:对于复杂任务,先用 plan mode 协作确定方案,再发送到云端执行:
claude --permission-mode plan
在 plan mode 中,Claude 读取文件、运行命令探索,并提出计划但不编辑源代码。满意后,将计划保存到仓库,commit 并 push,这样云端 VM 才能克隆到。然后启动云端会话进行自主执行:
claude --cloud "Execute the migration plan in docs/migration-plan.md"
这种模式让你掌控策略,同时让 Claude 在云端自主执行。
在云端用 ultraplan 做规划:要在 Web 会话中起草和评审计划,使用 ultraplan。Claude 在 Web 端生成计划,你继续工作,然后在浏览器中对各部分评论,选择远程执行或将计划发回终端。
并行运行任务:每个 --cloud 命令创建独立的云端会话。你可以启动多个任务,它们会在不同会话中同时运行:
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 Code CLI 中的 /tasks 监控所有会话。会话完成后,可以从 Web 界面创建 PR,或 teleport 会话到终端继续工作。
发送本地仓库(无 GitHub)¶
当你从未连接 GitHub 的仓库运行 claude --cloud 时,Claude Code 会打包本地仓库并直接上传到云端会话。 打包内容包含所有分支的完整仓库历史,以及已跟踪文件的未提交更改。
当 GitHub 访问不可用时自动启用此回退。要强制使用(即使已连接 GitHub),设置 CCR_FORCE_BUNDLE=1:
CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"
打包仓库必须满足以下限制:
- 目录必须是一个有至少一次 commit 的 git 仓库
- 打包后大小须低于 100 MB。超过时会依次回退为只打包当前分支、单个压缩的工作树快照,只有快照仍然过大时才会失败
- 未跟踪的文件不包含在内;对需要云端会话看到的文件运行
git add - 从打包创建的会话不能推送回 remote,除非你也配置了 GitHub 认证
从 Web 到终端¶
使用以下任一方式将云端会话拉到终端:
- 使用
--teleport:命令行运行claude --teleport打开交互式会话选择器,或claude --teleport <session-id>直接恢复特定会话。如有未提交更改,会提示你先 stash - 使用
/teleport:在已有的 CLI 会话中运行/teleport或/tp打开相同的会话选择器,无需重启 Claude Code - 从
/tasks:运行/tasks查看后台会话,然后按tteleport 进入 - 从 Web 界面:选择 Open in CLI 复制一条可粘贴到终端的命令
Teleport 会话时,Claude 会验证你在正确的仓库中,从云端会话获取并切换到对应分支,将完整对话历史加载到终端。终端获得会话的独立副本:在终端的新操作保留在本地,不会出现在 claude.ai 或 Claude 移动端 App 上的云端会话中。如果 teleport 后仍想从手机继续操控,在本地会话中启动 /remote-control。
--teleport 和 --resume 不同。--resume 重新打开本机本地历史中的对话,不列出云端会话;--teleport 拉取云端会话及其分支。
Teleport 要求¶
Teleport 在恢复会话前检查以下要求。如不满足,会看到错误提示或被引导解决:
| 要求 | 详情 |
|---|---|
| 干净的 git 状态 | 工作目录不能有未提交的更改。Teleport 会提示你 stash 更改 |
| 正确的仓库 | 必须从同一仓库的 checkout 运行 --teleport,不能是 fork。从 v2.1.199 起,即使无法解析 remote 为主机名(如 SSH host alias git@work:owner/repo.git 或 insteadOf 重写的短格式),只要 remote 的 owner 和仓库名与会话仓库匹配,Claude Code 也会接受并先显示确认提示 |
| 分支可用 | 云端会话的分支必须已推送到 remote。Teleport 会自动 fetch 并 checkout |
| 同一账号 | 必须认证到云端会话使用的同一 claude.ai 账号 |
--teleport 不可用的情况¶
Teleport 需要 claude.ai 订阅认证。如果你通过 API key 认证,运行 /login 改用你的 claude.ai 账号登录。在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,--teleport 会停止并显示 Cloud sessions aren't available with <provider>,因为云端会话运行在 Anthropic 基础设施上,不通过这些提供商提供。如果已通过 claude.ai 登录但 --teleport 仍不可用,可能是你的组织禁用了云端会话。
管理会话¶
会话显示在 claude.ai/code 的侧边栏中。 你可以在那里查看变更、与队友分享、归档已完成的工作,或永久删除会话。
管理上下文¶
云端会话支持产生文本输出的内置命令。仅在终端界面运行的命令(如 /plugin 或 /resume)不可用。在云端会话中,打开终端选择器或面板的命令行为有所不同:
/model、/effort、/fast、/color和/rename:将值作为参数传入(例如/model sonnet),而非打开终端选择器或滑块。参数形式要求会话环境中的 Claude Code 版本为 v2.1.205 或更高,遵循各命令的可用性说明:模型的 launch-default effort hold 生效时/effort会报告Not applied;/fast仅在以 fast mode 启动的会话中有效/config:在 Web 端打开设置中的 Claude Code 部分而非设置值,命令后面的文本(包括key=value)会被忽略。要更改云端会话的设置,使用环境变量或将 settings 文件提交到仓库
上下文管理方面:
| 命令 | 云端会话中可用 | 说明 |
|---|---|---|
/compact |
是 | 总结对话以释放上下文空间。接受可选的聚焦指令,如 /compact keep the test output |
/context |
是 | 显示当前上下文窗口中的内容 |
/clear |
否 | 改为从侧边栏启动新会话 |
上下文窗口接近容量时会自动触发 auto-compaction。要提前触发,在环境变量中设置 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE。例如 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70 会在 70% 容量时压缩,而不是等窗口接近满。要更改压缩计算使用的有效窗口大小,使用 CLAUDE_CODE_AUTO_COMPACT_WINDOW。
Subagents 的工作方式与本地相同。Claude 可通过 Task 工具生成 subagent,将研究或并行工作卸载到独立的上下文窗口,保持主对话轻量。仓库 .claude/agents/ 中定义的 agent 会自动识别。
Agent teams 默认关闭,可通过在环境变量中添加 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 启用。
查看变更¶
每个会话显示一个 diff 指示器,标注添加和删除的行数(如 +42 -18)。点击它打开 diff 视图,在特定行留下内联评论,并在下条消息中发送给 Claude。详见 查看和迭代 的完整流程(包括 PR 创建)。要让 Claude 自动监控 PR 的 CI 失败和评审评论,详见自动修复 Pull Request。
分享会话¶
要分享会话,根据下面的账号类型切换其可见性。 之后直接分享会话链接即可。接收者打开链接时看到最新状态,但其视图不会实时更新。
从 Enterprise 或 Team 账号分享¶
Enterprise 和 Team 账号有两个可见性选项:Private 和 Team。Team 可见性使会话对 claude.ai 组织的其他成员可见。Claude in Slack 会话会自动以 Team 可见性分享。
默认启用仓库访问验证,基于接收者账号连接的 GitHub 账号。你的账号显示名称对所有有权限的接收者可见。
从 Max 或 Pro 账号分享¶
Max 和 Pro 账号有两个可见性选项:Private 和 Public。Public 可见性使会话对任何登录 claude.ai 的用户可见。
分享前检查会话中是否有敏感内容。会话可能包含私有 GitHub 仓库的代码和凭证。默认不启用仓库访问验证。
要求接收者拥有仓库访问权限,或在分享会话时隐藏你的姓名,请前往 Settings > Claude Code > Sharing settings。
归档会话¶
你可以归档会话来保持会话列表整洁。 已归档的会话从默认列表中隐藏,但可以通过筛选归档会话来查看。
要归档会话,将鼠标悬停在侧边栏中的会话上,点击归档图标。
删除会话¶
删除会话会永久移除会话及其数据,此操作不可撤销。 可通过两种方式删除:
- 从侧边栏:筛选归档会话,将鼠标悬停在要删除的会话上,点击删除图标
- 从会话菜单:打开会话,点击会话标题旁的下拉菜单,选择 Delete
删除前会要求确认。
自动修复 Pull Request¶
Claude 可以监控 Pull Request,自动响应 CI 失败和评审评论。 Claude 订阅 PR 上的 GitHub 活动,当检查失败或审阅者留下评论时,Claude 会调查并在情况明确时推送修复。
[!NOTE]
自动修复需要在你的仓库上安装 Claude GitHub App。如果还没有安装,可以从 GitHub App 页面 或在设置流程中安装。
根据 PR 的来源和你使用的设备,有几种方式开启自动修复:
- 在 Claude Code Web 端创建的 PR:打开 CI 状态栏并选择 Auto-fix
- 从终端:在 PR 所在分支运行
/autofix-pr。Claude Code 通过gh检测开放的 PR,生成一个 Web 会话并一步开启自动修复 - 从移动端 App:告诉 Claude 自动修复该 PR,例如"watch this PR and fix any CI failures or review comments"
- 任何现有 PR:将 PR URL 粘贴到会话中并告诉 Claude 自动修复
自动修复是逐 PR 的开关。要停止监控,打开 Web 会话中的 CI 状态栏并清除 Auto-fix 开关,或告诉 Claude 停止监控 PR。
Claude 如何响应 PR 活动¶
自动修复激活后,Claude 接收 PR 的 GitHub 事件,包括新的评审评论和 CI 检查失败。对于每个事件,Claude 会调查并决定如何处理:
- 明确的修复:如果 Claude 对修复有信心且不与先前指令冲突,会直接修改、推送并在会话中解释
- 模糊的请求:如果评审者的评论有多种解读方式或涉及架构重要事项,Claude 会先问你再行动
- 重复或无需操作的事件:如果事件是重复的或不需要修改,Claude 在会话中记录并继续
GitHub 不会在 base 分支前进导致合并冲突时发出 webhook,因此自动修复无法自行处理冲突。要解决冲突,打开会话让 Claude rebase。
Claude 可能会回复 GitHub 评审评论来表示已解决。这些回复使用你的 GitHub 账号发布,因此显示在你的用户名下,但每条回复都标记为来自 Claude Code,方便审阅者知道是 agent 而非你本人直接撰写的。
[!WARNING]
如果你的仓库使用评论触发的自动化(如 Atlantis、Terraform Cloud 或基于issue_comment事件的自定义 GitHub Actions),请注意 Claude 可以代表你回复评论,这可能触发这些工作流。启用自动修复前请审查仓库的自动化配置,对于 PR 评论可以部署基础设施或运行特权操作的仓库,考虑禁用自动修复。
安全与隔离¶
每个云端会话通过多个层面与你的机器及其他会话隔离:
- 隔离的虚拟机:每个会话运行在独立的 Anthropic 托管 VM 中
- 网络访问控制:默认限制网络访问,可以禁用。禁用网络访问时,Claude Code 仍可与 Anthropic API 通信,这意味着数据可能离开 VM
- 凭证保护:敏感凭证(如 git 凭证或签名密钥)不会进入 Claude Code 所在的沙盒。认证通过范围凭证的安全代理处理
- 安全分析:代码在隔离 VM 中被分析和修改,然后才创建 PR
故障排除¶
对于对话中出现的运行时 API 错误(如 API Error: 500、529 Overloaded、429 或 Prompt is too long),参见错误参考。这些错误及修复方法与 CLI 和桌面应用共享。以下部分涵盖云端会话特有的问题。
会话创建失败¶
如果新会话启动时出现 Session creation failed 或卡在 provisioning 阶段,说明 Claude Code 无法为会话分配 VM。
- 检查 status.claude.com 是否有云端会话故障
- 等一分钟后重试,因为容量是按需配置的
- 确认你的仓库可达。连接的 GitHub 账号必须能在 GitHub 上访问该仓库(通过 Claude GitHub App 授权或通过
/web-setup同步的ghtoken)。在仓库上安装 App 不是必需的。参见 GitHub 认证方式
Unable to get organization UUID¶
claude --cloud 和 claude --teleport 要求使用 claude.ai 账号登录。 如果你通过 API key 认证,或存储的账号信息已过期,这些命令会失败并显示 Unable to get organization UUID 或提示 API key 认证不够的消息。
运行 /login 使用你的 claude.ai 账号登录,然后重试命令。
在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,命令会更早停止并显示 Cloud sessions aren't available with <provider>。云端会话运行在 Anthropic 基础设施上,不通过这些提供商提供。
Remote Control 会话过期或访问被拒绝¶
--teleport 使用与云端会话相同的 Remote Control 会话基础设施连接,因此认证和会话过期错误会以 Remote Control 相关的措辞显示。你可能看到 Remote Control session expired 或 Access denied。连接 token 是短期的且绑定到你的账号。
- 在本地运行
/login刷新凭证,然后重新连接 - 确认你登录的是拥有该会话的同一账号
- 如果看到
Remote Control may not be available for this organization,说明管理员未为你的组织启用云端会话
环境过期¶
云端会话在一段时间不活跃后停止,会话的 VM 被回收。 在 Web 端,会话在列表中标记为 expired。
在 claude.ai/code 重新打开会话可配置新 VM 并恢复你的对话历史。
限制¶
在依赖云端会话处理工作流之前,请考虑以下约束:
- 速率限制:Claude Code Web 端与账号内所有其他 Claude 和 Claude Code 使用共享速率限制。并行运行多个任务会成比例消耗更多配额。云端 VM 没有单独的计算费用
- 仓库认证:只有认证到同一账号时才能将会话从 Web 转移到本地
- 平台限制:仓库克隆和 PR 创建需要 GitHub。自托管的 GitHub Enterprise Server 实例支持 Team 和 Enterprise 计划。GitLab、Bitbucket 和其他非 GitHub 仓库可以作为本地打包发送到云端会话,但会话无法将结果推回 remote
- 组织 IP 白名单:云端会话从 Anthropic 托管的基础设施调用 Anthropic API,而非你的网络。如果你的组织启用了 IP 白名单,每个云端会话都会因认证错误而失败。Code Review 和 Routines 同理。联系 Anthropic 支持将 Anthropic 托管的服务从组织的 IP 白名单中豁免
相关资源¶
- 云环境:配置云端会话的网络访问、环境变量和 Setup 脚本
- Ultraplan:在云端会话中起草计划并在浏览器中审阅
- Ultrareview:在云端沙盒中运行深度多 agent 代码审查
- Routines:按计划、通过 API 调用或响应 GitHub 事件自动化工作
- Hooks 配置:在会话生命周期事件时运行脚本
- Settings 参考:所有配置选项
- 安全:隔离保证和数据处理
- 数据使用:Anthropic 从云端会话保留哪些数据
- Claude Tag:运行在相同云环境上的组织管理的 @Claude in Slack