Claude Code 平台集成
Claude Code 平台集成
网页版参考文档
10 分钟阅读
使用 Claude Code 网页版
在 Anthropic 的沙盒中配置云端环境、设置脚本、网络访问和 Docker。使用
--cloud和--teleport在网页与终端之间迁移会话。
Claude Code 网页版面向 Pro、Max 和 Team 用户,以及拥有高级席位或 Chat + Claude Code 席位的 Enterprise 用户开放研究预览。
Claude Code 网页版在 claude.ai/code 的 Anthropic 托管云基础设施上运行任务。即使您关闭浏览器,会话也会持久化,您可以通过 Claude 移动应用监控它们。
本页面涵盖:
- GitHub 认证选项:两种连接 GitHub 的方式
- 云端环境:哪些配置会保留、安装了哪些工具以及如何配置环境
- 设置脚本与依赖管理
- 网络访问:级别、代理和默认允许列表
- 使用
--cloud和--teleport在网页与终端之间迁移任务 - 管理会话:审阅、分享、归档、删除
- 自动修复 Pull Request:自动响应 CI 失败和审阅评论
- 安全与隔离:会话如何被隔离
- 限制:速率限制和平台限制
GitHub 认证选项
云端会话需要访问您的 GitHub 仓库以克隆代码和推送分支。您可以通过两种方式授予访问权限:
| 方法 | 工作原理 | 最适用于 |
|---|---|---|
| GitHub App | 在网页引导期间授权 Claude GitHub App。 | 浏览器引导;希望使用自动修复的团队 |
/web-setup | 在终端中运行 /web-setup,将您本地的 gh CLI 令牌同步到您的 Claude 账户。 | 已使用 gh 的个人开发者 |
无论使用哪种方法,云端会话都可以访问连接 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 使用"快速网页设置"开关禁用 /web-setup。
启用了零数据保留的组织无法使用 /web-setup 或其他云端会话功能。
云端环境
每个会话在 Anthropic 托管的全新虚拟机中运行,并克隆您的仓库。本节涵盖会话启动时的可用内容以及如何自定义。
云端会话中的可用内容
云端会话从您仓库的全新克隆开始。提交到仓库的任何内容都可用。仅在您自己机器上安装或配置的任何内容在会话中不可用。您组织的策略通过服务器托管设置单独下发。
| 云端会话中可用 | 原因 | |
|---|---|---|
仓库的 CLAUDE.md | 是 | 属于克隆的一部分 |
仓库的 .claude/settings.json 钩子 | 是 | 属于克隆的一部分 |
仓库的 .mcp.json MCP 服务器 | 是 | 属于克隆的一部分 |
仓库的 .claude/rules/ | 是 | 属于克隆的一部分 |
仓库的 .claude/skills/、.claude/agents/、.claude/commands/ | 是 | 属于克隆的一部分 |
.claude/settings.json 中声明的插件 | 是 | 从您声明的市场在会话开始时安装。需要网络访问才能到达市场源 |
| 您组织的服务器托管设置 | 是 | 会话开始时从 Anthropic 服务器获取。有关 availableModels 在云端会话中如何强制执行,请参阅覆盖范围。通过 MDM 或托管设置文件部署到您设备的设置不适用,因为会话运行在 Anthropic 托管的 VM 上 |
用户 ~/.claude/CLAUDE.md | 否 | 存在于您的机器上,不在仓库中 |
用户 ~/.claude/skills/、~/.claude/agents/、~/.claude/commands/ | 否 | 存在于您的机器上,不在仓库中。请将它们提交到仓库的 .claude/ 目录。您在 claude.ai 上启用的技能会自动加载到云端会话中 |
| 仅在用户设置中启用的插件 | 否 | 用户范围的 enabledPlugins 存在于 ~/.claude/settings.json 中。请改在仓库的 .claude/settings.json 中声明它们 |
使用 claude mcp add 添加的 MCP 服务器 | 否 | 这些写入您的本地用户配置,而非仓库。请改在 .mcp.json 中声明服务器 |
| 静态 API 令牌和凭据 | 否 | 尚无专用的密钥存储。见下文 |
| 交互式认证如 AWS SSO | 否 | 不支持。SSO 需要无法在云端会话中运行的基于浏览器的登录 |
要使您自己的配置在云端会话中可用,请将其提交到仓库;组织策略通过服务器托管设置单独下发。
专用的密钥存储尚未可用。环境变量和设置脚本都存储在环境配置中,任何可以编辑该环境的人都能看到。如果您需要在云端会话中使用密钥,请将其添加为环境变量,并注意该可见性。
已安装工具
云端会话预装了常用语言运行时、构建工具和数据库。下表按类别总结了包含的内容。
| 类别 | 包含内容 |
|---|---|
| Python | Python 3.x 及 pip、poetry、uv、black、mypy、pytest、ruff |
| Node.js | 通过 nvm 提供 20、21 和 22,以及 npm、yarn、pnpm、bun¹、eslint、prettier、chromedriver |
| Ruby | 3.1、3.2、3.3 及 gem、bundler、rbenv |
| PHP | 8.4 及 Composer |
| Java | OpenJDK 21 及 Maven 和 Gradle |
| Go | 最新稳定版,支持模块 |
| Rust | rustc 和 cargo |
| C/C++ | GCC、Clang、cmake、ninja、conan |
| Docker | docker、dockerd、docker compose |
| Databases | PostgreSQL 16、Redis 7.0 |
| Utilities | git、jq、yq、ripgrep、tmux、vim、nano |
¹ Bun 已安装,但存在已知的代理兼容性问题,影响包获取。
要获取确切版本,请让 Claude 在云端会话中运行 check-tools。此命令仅在云端会话中存在。
处理 GitHub Issue 和 Pull Request
云端会话包含内置的 GitHub 工具,让 Claude 无需任何设置即可读取 Issue、列出 Pull Request、获取差异和发布评论。这些工具通过 GitHub 代理 使用您在 GitHub 认证选项 下配置的任一方法进行认证,因此您的令牌永远不会进入容器。
gh CLI 未预装。如果您需要内置工具未涵盖的 gh 命令,如 gh release 或 gh workflow run,请自行安装并认证:
在设置脚本中安装 gh
将 apt update && apt install -y gh 添加到您的设置脚本。
提供令牌
将 GH_TOKEN 环境变量添加到您的环境设置,使用 GitHub 个人访问令牌。gh 会自动读取 GH_TOKEN,因此无需 gh auth login 步骤。
将输出链接回会话
每个云端会话在 claude.ai 上都有一个转录 URL,会话可以从 CLAUDE_CODE_REMOTE_SESSION_ID 环境变量中读取自己的 ID。使用此功能可以在 PR 正文、提交消息、Slack 帖子或生成的报告中放置可追踪的链接,以便审阅者可以打开产生它们的运行。
从 v2.1.179 开始,Claude 在网页会话中创建的提交包含 Claude-Session: <url> Git 尾部,PR 正文包含会话 URL 作为单独一行。从 v2.1.182 开始,将 attribution.sessionUrl 设置为 false 可以省略尾部和 PR 正文链接。
要在提交或 PR 之外的内容中包含会话链接,例如 Claude 发布的 Slack 消息或它写入的报告文件,请让 Claude 运行以下命令并使用其输出。该命令将环境变量值中的 cse_ 前缀转换为转录 URL 期望的 session_ 前缀:
运行测试、启动服务和添加包
Claude 会将运行测试作为处理任务的一部分。在提示词中要求它,例如 "修复 tests/ 中失败的测试" 或 "每次更改后运行 pytest"。pytest、jest 和 cargo test 等测试运行器已预装,无需额外设置即可工作。
PostgreSQL 和 Redis 已预装但默认未运行。请在会话中让 Claude 启动每个服务:
Docker 可用于运行容器化服务。请让 Claude 运行 docker compose up 以启动项目的服务。拉取镜像的网络访问遵循环境的访问级别,Trusted 默认值包含 Docker Hub 和其他常用注册表。
如果您的镜像很大或拉取缓慢,请将 docker compose pull 或 docker compose build 添加到您的设置脚本。拉取的镜像保存在缓存环境中,因此每个新会话都会在磁盘上拥有它们。缓存存储文件而非运行中的进程,因此 Claude 仍会在每个会话中启动容器。
要添加未预装的包,请使用设置脚本。脚本的输出会被缓存,因此您在那里安装的包在每次会话开始时都可用,无需每次都重新安装。您也可以让 Claude 在会话中途安装包,但这些安装不会延续到其他会话。
资源限制
云端会话运行时的近似资源上限可能会随时间变化:
- 4 vCPU
- 16 GB RAM
- 30 GB 磁盘
需要显著更多内存的任务,如大型构建作业或内存密集型测试,可能会失败或被终止。对于超出这些限制的工作负载,请使用 Remote Control 在您自己的硬件上运行 Claude Code。
配置环境
环境控制网络访问、环境变量和会话开始前运行的设置脚本。有关无需任何配置即可使用的内容,请参阅已安装工具。您可以从网页界面或终端管理环境:
| 操作 | 方法 |
|---|---|
| 添加环境 | 选择当前环境以打开选择器,然后选择添加环境。对话框包含名称、网络访问级别、环境变量和设置脚本。 |
| 编辑环境 | 选择显示当前环境名称的云图标以打开选择器,将鼠标悬停在环境上,然后点击右侧出现的设置图标。 |
| 归档环境 | 打开环境进行编辑,然后选择归档。归档的环境会从选择器中隐藏,但现有会话继续运行。 |
| 设置 CLI 云端会话的默认环境 | 在终端中运行 /remote-env。如果您只有一个环境,此命令会显示当前配置。/remote-env 仅选择默认值;添加、编辑和归档环境请从网页界面操作。 |
环境变量使用 .env 格式,每行一个 KEY=value。不要将值用引号包裹,因为引号会作为值的一部分存储。此示例定义了三个变量:
设置脚本
设置脚本是在新的云端会话开始时、Claude Code 启动前运行的 Bash 脚本。使用设置脚本安装依赖、配置工具或获取会话需要但未预装的任何内容。
脚本在 Ubuntu 24.04 上以 root 身份运行,因此 apt install 和大多数语言包管理器都有效。
要添加设置脚本,请打开环境设置对话框,并在设置脚本字段中输入您的脚本。
此示例安装了未预装的 gh CLI:
如果脚本以非零状态退出,会话将无法启动。对非关键命令追加 || true,以避免因间歇性安装失败而阻塞会话。
保持脚本总运行时间在大约五分钟以内,以便环境缓存能够构建。使用 & 和 wait 并行运行独立安装。如果单次下载无法在五分钟内完成,请将其移到在后台启动的 SessionStart 钩子中。
安装包的设置脚本需要网络访问才能到达注册表。默认的 Trusted 网络访问允许连接到 常用包注册表,包括 npm、PyPI、RubyGems 和 crates.io。如果环境使用 None 网络访问,脚本将无法安装包。
环境缓存
设置脚本在环境中首次启动会话时运行。完成后,Anthropic 会创建文件系统快照,并将其作为后续会话的起始点重用。新会话开始时,您的依赖、工具和 Docker 镜像已经在磁盘上,并且会跳过设置脚本步骤。即使脚本安装了大型工具链或拉取了容器镜像,这也能保持启动速度。
缓存捕获文件,而非运行中的进程。设置脚本写入磁盘的任何内容都会保留。它启动的服务或容器不会保留,因此请在每个会话中通过让 Claude 运行或使用 SessionStart 钩子来启动它们。
当您更改环境的设置脚本或允许的网络主机,以及缓存在大约七天后到期时,设置脚本会重新运行以重建缓存。恢复现有会话永远不会重新运行设置脚本。
您无需启用缓存或自行管理快照。
设置脚本与 SessionStart 钩子
使用设置脚本安装云端需要但您的笔记本已有的内容,如语言运行时或 CLI 工具。使用 SessionStart 钩子 进行应在任何地方运行的项目设置,包括云端和本地,如 npm install。
两者都在会话开始时运行,但属于不同的地方:
| 设置脚本 | SessionStart 钩子 | |
|---|---|---|
| 附加到 | 云端环境 | 您的仓库 |
| 配置位置 | 云端环境 UI | 仓库中的 .claude/settings.json |
| 运行时机 | 在 Claude Code 启动前,当没有缓存环境可用时 | 在 Claude Code 启动后,在每个会话包括恢复时 |
| 范围 | 仅云端环境 | 本地和云端两者 |
SessionStart 钩子也可以在本地用户级别的 ~/.claude/settings.json 中定义,但用户级别设置不会延续到云端会话。在云端,钩子来自仓库和您组织的服务器托管设置。
使用 SessionStart 钩子安装依赖
要仅在云端会话中安装依赖,请将 SessionStart 钩子添加到仓库的 .claude/settings.json:
在 scripts/install_pkgs.sh 创建脚本,并使用 chmod +x 使其可执行。CLAUDE_CODE_REMOTE 环境变量在云端会话中设置为 true,因此您可以使用它来跳过本地执行:
SessionStart 钩子在云端会话中有一些限制:
- 无云端专属范围:钩子在本地和云端会话中都运行。要跳过本地执行,请检查
CLAUDE_CODE_REMOTE环境变量,如上所示。 - 需要网络访问:安装命令需要到达包注册表。如果环境使用 None 网络访问,这些钩子会失败。默认允许列表在 Trusted 下涵盖 npm、PyPI、RubyGems 和 crates.io。
- 代理兼容性:所有出站流量都通过安全代理。某些包管理器无法与此代理正确配合。Bun 是一个已知示例。
- 增加启动延迟:钩子在每次会话开始或恢复时运行,与受益于环境缓存的设置脚本不同。通过检查依赖是否已存在再重新安装,保持安装脚本快速。
要为后续 Bash 命令持久化环境变量,请写入 $CLAUDE_ENV_FILE 指向的文件。有关详细信息,请参阅 SessionStart 钩子。
替换基础镜像为您自己的 Docker 镜像尚不支持。请使用设置脚本在提供镜像之上安装所需内容,或使用 docker compose 将您的镜像作为容器与 Claude 一起运行。
网络访问
网络访问控制从云端环境发出的出站连接。每个环境指定一个访问级别,您可以使用自定义允许域名进行扩展。默认是 Trusted,允许包注册表和其他允许列表中的域名。
要更改环境的网络访问,请打开编辑并在对话框中使用网络访问选择器。没有单独的环境页面。云图标出现在您启动云端会话或配置定期任务的任何地方。
MCP 连接器流量通过 Anthropic 的服务器路由,因此您在会话或定期任务上启用的连接器无需将其主机添加到允许域名即可工作。连接器按会话或按定期任务配置;移除不需要的连接器以限制 Claude 可以访问的工具。这依赖于安全与隔离下提到的同一 Anthropic 通道。
访问级别
创建或编辑环境时选择访问级别:
| 级别 | 出站连接 |
|---|---|
| None | 无出站网络访问 |
| Trusted | 仅允许列表中的域名:包注册表、GitHub、云 SDK |
| Full | 任何域名 |
| Custom | 您自己的允许列表,可选包含默认值 |
GitHub 操作使用一个独立的代理,与此设置无关。
允许特定域名
要允许不在 Trusted 列表中的域名,请在环境的网络访问设置中选择 Custom。会出现允许域名字段。每行输入一个域名:
使用 *. 进行通配符子域名匹配。勾选同时包含常用包管理器的默认列表以在您的自定义条目旁边保留 Trusted 域名,或取消勾选以仅允许您列出的内容。
GitHub 代理
为安全起见,所有 GitHub 操作都通过一个专用代理服务处理,该服务透明地处理所有 git 交互。在沙盒内部,git 客户端使用自定义构建的限定范围凭据进行认证。此代理:
- 安全地管理 GitHub 认证:沙盒内的 git 客户端使用限定范围凭据,代理验证该凭据并将其转换为您的实际 GitHub 认证令牌
- 为安全起见,将 git push 操作限制为当前工作分支
- 在保持安全边界的同时启用克隆、获取和 PR 操作
安全代理
环境在 HTTP/HTTPS 网络代理后运行,用于安全和滥用预防。所有出站互联网流量都通过此代理,它提供:
- 防止恶意请求的保护
- 速率限制和滥用预防
- 增强安全性的内容过滤
- 请求主机名的 DNS 级审计跟踪
默认允许域名
使用 Trusted 网络访问时,默认允许以下域名。标记有 * 的域名表示通配符子域名匹配,因此 *.gcr.io 允许 gcr.io 的任何子域名。
Anthropic 服务
Anthropic 服务
- api.anthropic.com
- statsig.anthropic.com
- docs.claude.com
- platform.claude.com
- code.claude.com
- claude.ai
版本控制
版本控制
- github.com
- www.github.com
- api.github.com
- npm.pkg.github.com
- raw.githubusercontent.com
- pkg-npm.githubusercontent.com
- objects.githubusercontent.com
- release-assets.githubusercontent.com
- codeload.github.com
- avatars.githubusercontent.com
- camo.githubusercontent.com
- gist.github.com
- gitlab.com
- www.gitlab.com
- registry.gitlab.com
- bitbucket.org
- www.bitbucket.org
- api.bitbucket.org
容器注册表
容器注册表
- registry-1.docker.io
- auth.docker.io
- index.docker.io
- hub.docker.com
- www.docker.com
- production.cloudflare.docker.com
- download.docker.com
- gcr.io
- *.gcr.io
- ghcr.io
- mcr.microsoft.com
- *.data.mcr.microsoft.com
- public.ecr.aws
云平台
云平台
- cloud.google.com
- accounts.google.com
- gcloud.google.com
- *.googleapis.com
- storage.googleapis.com
- compute.googleapis.com
- container.googleapis.com
- azure.com
- portal.azure.com
- microsoft.com
- www.microsoft.com
- *.microsoftonline.com
- packages.microsoft.com
- dotnet.microsoft.com
- dot.net
- visualstudio.com
- dev.azure.com
- *.amazonaws.com
- *.api.aws
- oracle.com
- www.oracle.com
- java.com
- www.java.com
- java.net
- www.java.net
- download.oracle.com
- yum.oracle.com
JavaScript 和 Node 包管理器
JavaScript 和 Node 包管理器
- registry.npmjs.org
- www.npmjs.com
- www.npmjs.org
- npmjs.com
- npmjs.org
- yarnpkg.com
- registry.yarnpkg.com
Python 包管理器
Python 包管理器
- pypi.org
- www.pypi.org
- files.pythonhosted.org
- pythonhosted.org
- test.pypi.org
- pypi.python.org
- pypa.io
- www.pypa.io
Ruby 包管理器
Ruby 包管理器
- rubygems.org
- www.rubygems.org
- api.rubygems.org
- index.rubygems.org
- ruby-lang.org
- www.ruby-lang.org
- rubyforge.org
- www.rubyforge.org
- rubyonrails.org
- www.rubyonrails.org
- rvm.io
- get.rvm.io
Rust 包管理器
Rust 包管理器
- crates.io
- www.crates.io
- index.crates.io
- static.crates.io
- rustup.rs
- static.rust-lang.org
- www.rust-lang.org
Go 包管理器
Go 包管理器
- proxy.golang.org
- sum.golang.org
- index.golang.org
- golang.org
- www.golang.org
- goproxy.io
- pkg.go.dev
JVM 包管理器
JVM 包管理器
- maven.org
- repo.maven.org
- central.maven.org
- repo1.maven.org
- repo.maven.apache.org
- jcenter.bintray.com
- gradle.org
- www.gradle.org
- services.gradle.org
- plugins.gradle.org
- kotlinlang.org
- www.kotlinlang.org
- spring.io
- repo.spring.io
其他包管理器
其他包管理器
- packagist.org (PHP Composer)
- www.packagist.org
- repo.packagist.org
- nuget.org (.NET NuGet)
- www.nuget.org
- api.nuget.org
- pub.dev (Dart/Flutter)
- api.pub.dev
- hex.pm (Elixir/Erlang)
- www.hex.pm
- cpan.org (Perl CPAN)
- www.cpan.org
- metacpan.org
- www.metacpan.org
- api.metacpan.org
- cocoapods.org (iOS/macOS)
- www.cocoapods.org
- cdn.cocoapods.org
- haskell.org
- www.haskell.org
- hackage.haskell.org
- swift.org
- www.swift.org
Linux 发行版
Linux 发行版
- archive.ubuntu.com
- security.ubuntu.com
- ubuntu.com
- www.ubuntu.com
- *.ubuntu.com
- ppa.launchpad.net
- launchpad.net
- www.launchpad.net
- *.nixos.org
开发工具和平台
开发工具和平台
- dl.k8s.io (Kubernetes)
- pkgs.k8s.io
- k8s.io
- www.k8s.io
- releases.hashicorp.com (HashiCorp)
- apt.releases.hashicorp.com
- rpm.releases.hashicorp.com
- archive.releases.hashicorp.com
- hashicorp.com
- www.hashicorp.com
- repo.anaconda.com (Anaconda/Conda)
- conda.anaconda.org
- anaconda.org
- www.anaconda.com
- anaconda.com
- continuum.io
- apache.org (Apache)
- www.apache.org
- archive.apache.org
- downloads.apache.org
- eclipse.org (Eclipse)
- www.eclipse.org
- download.eclipse.org
- nodejs.org (Node.js)
- www.nodejs.org
- developer.apple.com
- developer.android.com
- pkg.stainless.com
- binaries.prisma.sh
云服务和监控
云服务和监控
- statsig.com
- www.statsig.com
- api.statsig.com
- sentry.io
- *.sentry.io
- downloads.sentry-cdn.com
- http-intake.logs.datadoghq.com
- browser-intake-us5-datadoghq.com
- *.datadoghq.com
- *.datadoghq.eu
- api.honeycomb.io
内容分发和镜像
内容分发和镜像
- sourceforge.net
- *.sourceforge.net
- packagecloud.io
- *.packagecloud.io
- fonts.googleapis.com
- fonts.gstatic.com
Schema 和配置
Schema 和配置
- json-schema.org
- www.json-schema.org
- json.schemastore.org
- www.schemastore.org
Model Context Protocol
Model Context Protocol
- *.modelcontextprotocol.io
在网页与终端之间迁移任务
这些工作流需要 Claude Code CLI 登录到同一个 claude.ai 账户。您可以从终端启动新的云端会话,或将云端会话拉入终端以在本地继续。即使您关闭笔记本,云端会话也会持久化,您可以从任何地方监控它们,包括 Claude 移动应用。
从 CLI 来看,会话移交是单向的:您可以使用 --teleport 将云端会话拉入终端,但无法将现有终端会话推送到网页。--cloud 标志为您的当前仓库创建一个新的云端会话。桌面应用提供"在...中继续"菜单,可以将本地会话发送到网页。
从终端到网页
使用 --cloud 标志从命令行启动云端会话:
这在 claude.ai 上创建一个新的云端会话。会话克隆您当前目录的 GitHub 远程仓库,并位于您当前分支,因此如果您有本地提交,请先推送,因为虚拟机从 GitHub 克隆而非您的机器。--cloud 一次仅适用于单个仓库。任务在云端运行,而您在本地继续工作。旧的 --remote 拼写仍可作为 --cloud 的已弃用别名使用。
从 v2.1.195 开始,CLI 在云端容器启动时显示设置步骤的实时清单,例如克隆仓库和运行您的设置脚本。您在容器配置期间输入的消息会排队,并在会话就绪后发送。
--cloud 创建云端会话。--remote-control 无关:它暴露一个本地 CLI 会话以从网页监控。请参阅 Remote Control。
使用 Claude Code CLI 中的 /tasks 检查进度,或在 claude.ai 或 Claude 移动应用上打开会话以直接交互。从那里您可以像任何其他对话一样引导 Claude、提供反馈或回答问题。
云端任务技巧
本地计划,远程执行:对于复杂任务,先在计划模式下启动 Claude 以协作确定方案,然后将工作发送到云端:
在计划模式下,Claude 读取文件、运行命令进行探索,并在不编辑源代码的情况下提出方案。一旦您满意,将计划保存到仓库,提交并推送,以便云端虚拟机可以克隆它。然后启动云端会话进行自主执行:
此模式让您控制策略,同时让 Claude 在云端自主执行。
在云端使用 ultraplan 制定计划:要在网页会话中起草并审阅计划本身,请使用 ultraplan。Claude 在 Claude Code 网页版上生成计划,而您继续工作,然后您可以在浏览器中对各部分发表评论,并选择远程执行或将计划发送回终端。
并行运行任务:每个 --cloud 命令创建自己的云端会话,独立运行。您可以启动多个任务,它们都会在单独的会话中同时运行:
使用 Claude Code CLI 中的 /tasks 监控所有会话。当会话完成时,您可以从网页界面创建 PR,或将会话传送到终端以继续工作。
无需 GitHub 发送本地仓库
当您从没有连接 GitHub 的仓库运行 claude --cloud 时,Claude Code 会将您的本地仓库打包并直接上传到云端会话。该包包含所有分支的完整仓库历史,以及跟踪文件的任何未提交更改。
当 GitHub 访问不可用时,此回退会自动激活。要即使 GitHub 已连接也强制使用它,请设置 CCR_FORCE_BUNDLE=1:
打包的仓库必须满足以下限制:
- 目录必须是至少有一个提交的 git 仓库
- 打包的仓库必须小于 100 MB。较大的仓库会回退到仅打包当前分支,然后回退到工作树的单个压缩快照,仅当快照仍然太大时才会失败
- 未跟踪的文件不包含在内;对您希望云端会话看到的文件运行
git add - 从包创建的会话无法推送到远程,除非您还配置了 GitHub 认证
从网页到终端
使用以下任一方法将云端会话拉入终端:
- 使用
--teleport:从命令行运行claude --teleport以打开交互式会话选择器,或运行claude --teleport <session-id>以直接恢复特定会话。如果您有未提交的更改,系统会提示您先暂存它们。 - 使用
/teleport:在现有 CLI 会话中,运行/teleport或/tp以打开相同的会话选择器,无需重新启动 Claude Code。 - 从
/tasks:运行/tasks以查看您的后台会话,然后按t传送到其中一个。 - 从网页界面:选择在 CLI 中打开以复制您可以粘贴到终端中的命令。
当您传送会话时,Claude 会验证您处于正确的仓库中,从云端会话获取并检出分支,并将完整对话历史加载到您的终端中。
--teleport 与 --resume 不同。--resume 从此机器的本地历史重新打开对话,不列出云端会话;--teleport 拉取云端会话及其分支。
Teleport 要求
Teleport 在恢复会话前检查以下要求。如果任何要求未满足,您将看到错误或提示解决该问题。
| 要求 | 详情 |
|---|---|
| 干净的 git 状态 | 您的工作目录必须没有未提交的更改。如果需要,Teleport 会提示您暂存更改。 |
| 正确的仓库 | 您必须从同一仓库的检出中运行 --teleport,而非 fork。从 v2.1.199 开始,即使 Claude Code 无法将远程解析为主机名,例如 SSH 主机别名如 git@work:owner/repo.git 或 insteadOf 重写的短格式,它也会接受检出。它首先显示确认提示,并且仅在远程的所有者和仓库名称与会话的仓库匹配时。 |
| 分支可用 | 云端会话的分支必须已推送到远程。Teleport 会自动获取并检出它。 |
| 同一账户 | 您必须认证到云端会话中使用的同一个 claude.ai 账户。 |
--teleport 不可用
Teleport 需要 claude.ai 订阅认证。如果您通过 API 密钥、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 认证,请运行 /login 改用您的 claude.ai 账户登录。如果您已经通过 claude.ai 登录,但 --teleport 仍然不可用,则您的组织可能已禁用云端会话。
管理会话
会话显示在 claude.ai/code 的侧边栏中。从那里您可以审阅更改、与队友分享、归档已完成的工作,或永久删除会话。
管理上下文
云端会话支持产生文本输出的内置命令。仅在终端界面中运行的命令,如 /plugin 或 /resume,不可用。/model、/effort、/fast、/color 和 /rename 将值作为参数使用,例如 /model sonnet,而不是打开终端选择器或滑块;参数形式需要 Claude Code v2.1.205 或更高版本在会话环境中,并遵循每个命令的可用性说明,因此当模型的启动默认 effort hold 生效时 /effort 报告 Not applied,而 /fast 仅在开启快速模式的会话中有效。/config 在传递 key=value 时设置配置。
专门针对上下文管理:
| 命令 | 在云端会话中可用 | 说明 |
|---|---|---|
/compact | 是 | 总结对话以释放上下文。接受可选的焦点指令,如 /compact keep the test output |
/context | 是 | 显示当前上下文窗口中的内容 |
/clear | 否 | 请从侧边栏开始新会话 |
当上下文窗口接近容量时,自动压缩会自动运行。要更早触发,请在您的环境变量中设置 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE。例如,CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70 在容量达到 70% 时压缩,而不是等到窗口几乎满。要更改压缩计算的有效窗口大小,请使用 CLAUDE_CODE_AUTO_COMPACT_WINDOW。
子代理的工作方式与本地相同。Claude 可以使用 Task 工具生成它们,将研究或并行工作卸载到单独的上下文窗口中,保持主对话更轻量。仓库 .claude/agents/ 中定义的子代理会被自动拾取。
代理团队默认关闭,但可以通过向您的环境变量添加 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 来启用。
审阅更改
每个会话显示一个差异指示器,显示添加和删除的行数,如 +42 -18。点击它打开差异视图,对特定行留下行内评论,并将它们与您的下一条消息一起发送给 Claude。有关完整步骤(包括 PR 创建),请参阅审阅与迭代。要让 Claude 自动监控 PR 的 CI 失败和审阅评论,请参阅自动修复 Pull Request。
分享会话
要分享会话,请根据以下账户类型切换其可见性。之后,按原样分享会话链接。收件人打开链接时会看到最新状态,但他们的视图不会实时更新。
从 Enterprise 或 Team 账户分享
对于 Enterprise 和 Team 账户,两种可见性选项是私有和团队。团队可见性使会话对 claude.ai 组织的其他成员可见。Claude in Slack 会话自动以团队可见性分享。
仓库访问验证默认启用,基于连接到收件人账户的 GitHub 账户。您账户的显示名称对所有有访问权限的收件人可见。
从 Max 或 Pro 账户分享
对于 Max 和 Pro 账户,两种可见性选项是私有和公开。公开可见性使会话对任何登录 claude.ai 的用户可见。
分享前请检查会话中的敏感内容。会话可能包含来自私有 GitHub 仓库的代码和凭据。仓库访问验证默认未启用。
要要求收件人拥有仓库访问权限,或从分享会话中隐藏您的姓名,请前往 Settings > Claude Code > Sharing settings。
归档会话
您可以归档会话以保持会话列表有序。归档的会话从默认会话列表中隐藏,但可以通过筛选归档会话来查看。
要归档会话,请将鼠标悬停在侧边栏中的会话上,然后选择归档图标。
删除会话
删除会话会永久移除会话及其数据。此操作无法撤销。您可以通过两种方式删除会话:
- 从侧边栏:筛选归档会话,然后将鼠标悬停在要删除的会话上并选择删除图标
- 从会话菜单:打开会话,选择会话标题旁边的下拉菜单,然后选择删除
删除会话前会要求您确认。
自动修复 Pull Request
Claude 可以监控 Pull Request 并自动响应 CI 失败和审阅评论。Claude 订阅 PR 上的 GitHub 活动,当检查失败或审阅者留下评论时,Claude 会调查并在修复明确时推送修复。
自动修复需要在您的仓库上安装 Claude GitHub App。如果您尚未安装,请从 GitHub App 页面 安装,或在设置期间按提示安装。
根据 PR 的来源和您使用的设备,有几种启用自动修复的方式:
- 在 Claude Code 网页版中创建的 PR:打开 CI 状态栏并选择自动修复
- 从终端:在 PR 的分支上运行
/autofix-pr。Claude Code 使用gh检测打开的 PR,生成一个网页会话,并一步启用自动修复 - 从移动应用:告诉 Claude 自动修复 PR,例如"监控此 PR 并修复任何 CI 失败或审阅评论"
- 任何现有 PR:将 PR URL 粘贴到会话中,告诉 Claude 自动修复它
自动修复是按 PR 的开关。要停止监控,请在网页会话中打开 CI 状态栏并清除自动修复开关,或告诉 Claude 停止监控 PR。
Claude 如何响应 PR 活动
当自动修复激活时,Claude 会接收 PR 的 GitHub 事件,包括新的审阅评论和 CI 检查失败。对于每个事件,Claude 会调查并决定如何继续:
- 明确的修复:如果 Claude 对修复有信心且与早期指令不冲突,Claude 会进行更改、推送并解释会话中做了什么
- 模糊的请求:如果审阅者的评论可以有多种解释方式,或涉及架构上的重要内容,Claude 会在行动前询问您
- 重复或无需操作的事件:如果事件是重复的或不需要更改,Claude 会在会话中记录并继续
GitHub 在基础分支前进并产生合并冲突时不会发出 Webhook,因此自动修复无法自行响应冲突。要解决冲突,请打开会话并询问 Claude 变基。
Claude 可能会作为解决审阅评论线程的一部分在 GitHub 上回复。这些回复使用您的 GitHub 账户发布,因此它们显示在您的用户名之下,但每条回复都标记为来自 Claude Code,以便审阅者知道它是由代理而非您直接撰写的。
安全与隔离
每个云端会话通过多层与您的机器和其他会话隔离:
- 隔离的虚拟机:每个会话在隔离的 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 失败或在配置时停滞,Claude Code 无法分配云端环境。
- 检查 status.claude.com 是否有云端会话事件
- 一分钟后重试,因为容量是按需配置的
- 确认您的仓库可访问。连接的 GitHub 账户必须在 GitHub 上拥有仓库访问权限,通过 Claude GitHub App 授权或通过
/web-setup同步的gh令牌。在仓库上安装 App 不是必需的。请参阅 GitHub 认证选项。
Remote Control 会话过期或访问被拒绝
--teleport 通过云端会话使用的相同 Remote Control 会话基础设施连接,因此认证和会话过期错误会以 Remote Control 措辞显示。您可能会看到 Remote Control session expired 或 Access denied。连接令牌是短期的且限定到您的账户。
- 在本地运行
/login以刷新凭据,然后重新连接 - 确认您登录到拥有该会话的同一个账户
- 如果您看到
Remote Control may not be available for this organization,则所有者尚未为您的组织启用云端会话
环境已过期
云端会话在一段时间不活动后停止,底层环境被回收。从本地终端来看,这显示为 Could not resume session ... its environment has expired. Creating a fresh session instead. 在网页上,会话在会话列表中标记为已过期。
从 claude.ai/code 重新打开会话以配置一个恢复对话历史的新环境。
限制
在依赖云端会话进行工作流之前,请考虑以下限制:
- 速率限制:Claude Code 网页版与账户内所有其他 Claude 和 Claude Code 使用共享速率限制。并行运行多个任务会按比例消耗更多速率限制。云 VM 没有单独的计算费用。
- 仓库认证:只有在认证到同一个账户时,才能将会话从网页移动到本地
- 平台限制:仓库克隆和 Pull Request 创建需要 GitHub。Team 和 Enterprise 计划支持自托管的 GitHub Enterprise Server 实例。GitLab、Bitbucket 和其他非 GitHub 仓库可以作为本地包发送到云端会话,但会话无法将结果推回远程
- 组织 IP 允许列表:云端会话从 Anthropic 托管基础设施调用 Anthropic API,而非您的网络。如果您的组织启用了 IP 允许列表,每个云端会话都会因认证错误而失败。同样的情况适用于 Code Review 和 Routines。请联系 Anthropic 支持 以将 Anthropic 托管服务从您组织的 IP 允许列表中豁免。
相关资源
- Ultraplan:在云端会话中起草计划并在浏览器中审阅
- Ultrareview:在云端沙盒中运行深度多代理代码审阅
- Routines:按时间表、通过 API 调用或响应 GitHub 事件自动化工作
- Hooks 配置:在会话生命周期事件上运行脚本
- 设置参考:所有配置选项
- 安全:隔离保证和数据处理
- 数据使用:Anthropic 从云端会话中保留的内容
- Claude Tag:在 Slack 中组织管理的 @Claude,运行在相同的云端环境上