所有页面
本页内容

Claude Cloud 0.9.7 新增

Claude Cloud 对话在 Anthropic 的沙箱中运行 Claude Code,而不是在你的中继主机上。沙箱在它自己的一个 GitHub 仓库克隆上工作。它看到的是推送到 GitHub 的内容,而看不到你机器上的任何东西,其结果会以智能体推送的分支形式返回。该对话会计费到中继主机的 Claude CLI 所登录的 Claude 账户。

在 OAR 中,它与别的对话一样:回复会流式显示,问题以卡片形式到来,在手机上也能使用。

实验性,默认关闭

Claude Cloud 使用 Claude CLI 在中继主机上保存的登录,来调用 Claude CLI 自己使用的 API 端点。这些端点并非有文档说明的公开 API。 Anthropic 可能在不通知的情况下更改它们;届时云端对话和实时用量数据会以一条提示失败,直到 OAR 更新。如果你不放心让 CLI 之外的程序以这种方式使用其登录,请保持该提供商关闭。

所需条件 #

启用 #

打开 Settings → Providers → Claude Cloud(设置 → 提供商 → Claude Cloud)。

控制 默认值 作用
Enable Claude Cloud for New Chat(在新建对话中启用 Claude Cloud) 关闭 在 New Chat(新建对话)中提供 Claude Cloud,并开启 Check Usage(查看用量)中的实时账户数据。当主机没有 Claude 登录时会被拒绝。
Claude login(Claude 登录) 跳转到 Claude 选项卡,在那里更改登录。
Cloud environment(云端环境) 账户的第一个活动环境 新云端会话运行的环境。没有保存时,中继取第一个活动环境并保存它。
Default model(默认模型) claude-sonnet-5-5 新云端对话一开始所用的模型。列表是 Claude 提供商的模型(不含其 [1m] 变体),再加上默认值。
Save Claude Cloud settings(保存 Claude Cloud 设置) 保存环境和默认模型。开关立即生效。

该选项卡还会显示对话计费到的账户,以及中继从哪里读取登录、登录有效期到何时。

开启该提供商即表示你同意上述使用 Claude 登录的方式:

  • 中继及其云端 worker 只读取访问令牌。它只发送到 https://api.anthropic.com,不发往其他主机。
  • 它只保存在内存中。不写入数据库或日志,不发送到浏览器,也不放进错误消息。
  • OAR 从不刷新它,也从不使用刷新令牌。CLI 自己负责让登录保持有效。当令牌过期时,中继会重新读取该文件,并且最多每五分钟一次让 CLI 检查自己的登录。仍然过期的登录会以一条提示结束该轮,要求重新登录。
  • 当开关关闭时,中继不会用这个登录向 Anthropic 请求任何内容:不列出环境,也不读取账户用量。

关闭 Claude Cloud 会把它从 New Chat 中移除。已经存在的云端对话会继续工作。

开始一个云端对话 #

选择 + New Chat → Provider → Claude Cloud(新建对话 → 提供商 → Claude Cloud)。Working directory(工作目录)字段仍然保留,但在这里它只用来填充两个字段,你也可以从列表中选择或自行输入。没有可选择的推理强度。云端会话本身由你的第一条消息创建。对话框的说明见开始对话。

Repository(仓库) #

从文件夹的 origin 远程仓库读取,或从其上游分支的远程仓库读取。字段获得焦点时,OAR 会列出 Claude GitHub 应用可为该账户访问的仓库。列表从 Anthropic 读取并保留一分钟;标签旁边的 ↻ 会再次读取。如果无法读取,原因会显示在之前用过的仓库下方。本中继上较早的云端对话用过的仓库排在最前,并标记为“used here”;其他标记有“private”、“public”、“archived”和“no access”。输入会按 owner/name 筛选列表;方向键和 Enter 选择,Escape 关闭。

你也可以输入或粘贴 owner/repo 或一个 GitHub URL,https 或 ssh 均可。只接受 GitHub 仓库。

Branch(分支) #

文件夹的当前分支;从列表中选择的仓库会带来它的默认分支。字段获得焦点时,OAR 会按中继主机的 git 所见提供该仓库的分支(git ls-remote,使用主机自己的 GitHub 登录)。当主机无法读取它们时,该字段是纯文本字段。留空表示仓库的默认分支。

警告 #

在字段下方,OAR 会警告云端克隆不会拥有的内容:

警告 含义
1 commit not pushed — the cloud clone will not have it. 文件夹的分支领先于它的上游。有多个提交时会带数量显示。
Branch main has no upstream — push it first, the cloud clone only sees GitHub. 该分支从未推送过。
Uncommitted changes stay local. 文件夹有未提交的更改。
This folder is not a git repository — enter the repository by hand. 文件夹没有给出可填充的内容。
No GitHub remote in this folder — enter the repository by hand. 当存在远程但不是 GitHub 远程时,显示为 The remote of this folder is not on GitHub — cloud sessions need a GitHub repository.。
Could not read git details for this folder — enter the repository by hand. 中继无法读取该文件夹。
The Claude GitHub app has no access to example-org/sample-repo — add it under GitHub → Settings → Applications → Claude, or pick another repository. 云端会拒绝第一条消息。
No cloud environment is set — choose one in Settings → Providers → Claude Cloud. 在设置中选择一个环境。

前两条警告只在字段仍显示文件夹自己的仓库和分支时出现。

如果 Start chat(开始对话)被拒绝,字段下方的一行错误会说明原因:例如 Enter a GitHub repository.、Not a GitHub repository. Use owner/repo or a github.com URL.、Not a valid branch name.、Claude Cloud is not enabled on this relay,或 No cloud environment is set. 并建议在设置中选择一个。

在云端对话中工作 #

回复会随着智能体书写而流式显示,包含思考、工具活动和子智能体气泡。当沙箱启动时,工具活动会把它的一步步显示为以 Cloud: 开头的行,然后是 Claude Code running in the cloud 和模型。

  • 云端行。 在输入区上方:仓库、分支、指向会话的 claude.ai ↗ 链接、智能体推送的每个分支各有一个 ⇡ branch(⇡ 分支)链接(最新 20 个),以及 Anthropic 所报告的该会话迄今的费用。已推送的分支会打开 GitHub 上它与该对话起始分支的对比(如果智能体推送的就是起始分支本身,则打开该分支)。
  • 在 claude.ai 上打开。 对话的 ⋯ 菜单中的 ☁️ Open on claude.ai(在 claude.ai 上打开)会在会话存在后于 claude.ai 上打开它。
  • 问题。 智能体的问题(AskUserQuestion)以提问卡片形式到来,包含多选。请求权限的工具会得到一张 Allow(允许) / Deny(拒绝)卡片。你在 claude.ai 上回答的卡片会在 OAR 中关闭。
  • 停止。 Stop(停止)会中断云端这一轮。如果云端在 30 秒内没有确认,该轮会在 OAR 中结束,并带有一条说明智能体可能仍在那边工作的提示,附上会话链接。
  • 图片。 JPEG、PNG、GIF 或 WebP,每个最大 5 MB,以内联方式发送。其他附件会被拒绝:沙箱无法读取中继主机的文件。
  • 后续消息。 消息会进入同一个云端会话,即使该会话已闲置很久。在一轮期间发送的消息会等待该轮结束。
  • 更换模型。 可以在输入区中于轮次之间更换模型,与本地 Claude 对话相同。沙箱会在下一条消息前切换。
  • 提交署名。 智能体在沙箱中所做的提交和拉取请求,会以 Claude 选项卡的署名设置所规定的行结尾;见提交署名。提交的作者仍是沙箱的 git 身份(Claude)。
  • 后台工作。 当智能体的后台工作(一个子智能体、一条长命令)运行时,该轮保持打开,因此最后的回复会在同一轮中到达。
  • 会话自行开始的轮。 当智能体的后台工作在轮结束后继续存在,或当你在 claude.ai 上发送消息时,回答会作为续接回复出现在对话中,并带有一行说明它的来源。
  • 归档与删除。 归档或删除对话会在 Anthropic 处归档云端会话;取消归档会把它带回来。那里不会删除任何东西。

当浏览器或中继不在时 #

智能体会在云端继续工作。在一轮中途重启中继或对话的 worker,不会把你的消息发送两次:新 worker 会在会话的事件日志中找到该轮并跟随它,在此期间已结束的轮则从日志回答。与会话断开的连接会在断开处重新打开。概述见重启与恢复。

触及用量上限时 #

云端在 Claude 用量上限处拒绝的轮会像本地 Claude 轮一样暂停:带有一条含重置时间的提示、横幅,工作在重置后自行继续。见达到用量上限时。上限之前的警告是工具活动中的一行 Claude usage limit warning (...),而不是横幅。

云端对话没有的功能 #

中继主机上的任何东西都不会到达沙箱。

  • 中继工具。 没有 preview,没有 relay_tool,也没有按主机路径嵌入的媒体。见按提供商。
  • 文件夹。 没有可更改的工作目录,⋯ 菜单中没有 Change CWD(更改工作目录),也没有可浏览的 Session(会话)文件夹。
  • 中继模式。 没有中继模式,没有推理强度,也没有上下文大小:这三个选择器都被隐藏。
  • 引导与任务。 没有中途引导,也没有后台任务面板。
  • 附件。 只有图片。

用量 #

当 Claude Cloud 开启时,Check Usage 会有一张 Claude Cloud 卡片:

  • 账户持有的每美元额度各有一个计量条,显示已用、剩余和到期时间;
  • Cloud spend (OAR sessions)(云端花费,OAR 会话):Anthropic 为本中继仍存在的云端会话所报告的费用,当你从云端对话打开弹窗时,还会带上这个对话自己的费用;
  • 最新的云端会话报告:它的费用,以及按模型的费用和 token。

这些数字是 Anthropic 报告的费用,不是账单,且在其他地方开始的会话不计入。已提供但尚未领取的额度也会被提及,并附上指向 claude.ai 的链接。云端轮先花费云端额度;没有额度时,它们计入 Claude 的限制。

Check Usage中的 Claude 卡片在 Claude Cloud 开启时也会实时从账户读取它的限制。🧠 按钮显示会话上下文窗口已使用多少,不含分类。回复不附带用量行。

由智能体启动云端会话 #

智能体可以用 create_session 开始一个云端对话,使用 provider: "claude-cloud"、一个 repo 以及可选的 branch;见 create_session。这对已配对中继上的智能体(按在那里启动任何会话的规则)有效,对本中继上的智能体,在智能体会话开启后也有效。适用的检查与 New Chat 中相同:提供商已开启、已设置环境、仓库在 GitHub 上。没有指定模型的对话以该选项卡的默认模型开始。智能体也可以读取你创建的云端对话、向它发送提示词、等待它和停止它。

环境变量 #

名称 作用
CLAUDE_CODE_OAUTH_TOKEN 中继及其云端 worker 使用的 Claude 登录令牌,取代 CLI 的凭据文件。0.9.17 新增 只有 Claude Cloud 和 Claude worker 会得到它,无论是否有 tmux;在 tmux 下它通过一个只有中继用户可读的文件传递,worker 的 shell 读取一次后删除。
CLAUDE_CONFIG_DIR Claude 配置目录,取代 ~/.claude。CLI 的登录(.credentials.json)从中读取。
OAR_CLAUDE_CLOUD_BRANCH_LOOKUP 在中继主机上设为 off 可停止 New Chat 中的分支列表向 git 查询。分支字段随即成为纯文本字段。

无法正常工作时 #

如果 New Chat 中没有 Claude Cloud,请在 Settings → Providers → Claude Cloud 中启用它。

当失败有已知原因时,回复是一条说明发生了什么以及该怎么做的系统提示。然后重新发送消息。

你看到的 原因与处理
开关被拒绝:Claude Cloud needs the Claude CLI login on this host. Log in on Settings → Providers → Claude, then switch it on. 先在 Claude 选项卡上登录。
Claude Cloud needs the Claude login of this relay host, and there is none. 在 Settings → Providers → Claude 登录。
The Claude login of this relay host has expired. 在 Settings → Providers → Claude 重新登录。API 拒绝该登录也会给出同样的提示。
GitHub is not connected to the Claude account of this relay host. 在 claude.ai/connect-github 连接。
The Claude GitHub app has no access to this repository. 把该仓库添加到应用的仓库访问中(GitHub → Settings → Applications → Claude → Configure)。
The cloud environment of this conversation is missing. 在 Settings → Providers → Claude Cloud 中选择一个环境。如果列表为空,用这个账户打开一次 claude.ai/code。
Claude Cloud refused the request because of a rate limit. 稍等片刻。如果云端给出等待时间,提示会说 Wait about N s。
The cloud session of this conversation was not found. 它可能已在 claude.ai 上被删除,或中继主机登录到了另一个 Claude 账户。开始一个新的 Claude Cloud 对话。
Claude Cloud takes images only, sent inline (JPEG, PNG, GIF or WebP, up to 5 MB each). Not sent: ... 移除附件,或把智能体需要的内容放进仓库或消息。消息未发送。
the Claude Cloud turn failed (...) 中继无法命名的失败,例如 Anthropic 更改了接口之后。重试或发送新消息;若持续失败,更新 OAR。
环境列表显示 Could not list the cloud environments: ... 中继无法从 Anthropic 读取列表。已保存的环境仍可选择。

可能过去的连接问题不会让该轮失败:消息回到队列并再次投递。