在終端機打 claude --remote "修掉 auth.spec.ts 那個 flaky test",然後闔上筆電去吃午餐——任務還在跑。回來打開手機的 Claude app,它已經改完在等你看 diff。這個流程現在對 Pro、Max、Team 用戶都開放了(research preview),入口是 claude.ai/code

但先別管它能做什麼。值得拆開看的是底層:你按下送出的那一刻,到底發生了什麼事?搞懂這條鏈,後面所有設定選項都會變得理所當然。

按下送出之後的 60 秒

每個雲端 session 開始時,Anthropic 會開一台全新的隔離 VM——Ubuntu 24.04,大約 4 vCPU、16GB RAM、30GB 硬碟——然後從 GitHub clone 你的 repo 進去。注意這個字:clone。VM 的世界裡只有 GitHub,沒有你的電腦。所以你本機有、但沒 push 的 commit,雲端看不到;你 ~/.claude/ 底下的個人設定,雲端也看不到。

這條規則決定了什麼東西會跟過去、什麼不會:

  • 會跟過去:repo 裡的 CLAUDE.md.claude/settings.json 的 hooks、.mcp.json 宣告的 MCP server、.claude/skills/.claude/agents/.claude/commands/——因為它們都是 clone 的一部分
  • 不會跟過去:你的 ~/.claude/CLAUDE.md、用 claude mcp add 加在本機的 server、AWS SSO 這種要開瀏覽器的互動式登入

判斷標準只有一條:有 commit 進 repo 的才存在。想讓雲端 session 用某個設定,就把它從個人設定搬進專案設定。這順便逼你做一件早該做的事——把「只有你的電腦跑得起來」的專案,變成「任何乾淨環境都跑得起來」的專案。

VM 裡預裝了常見的工具鏈:Python 3.x 全家桶(pip、poetry、uv、pytest)、Node 20/21/22、OpenJDK 21 加 Maven 跟 Gradle、Go、Rust、Docker、PostgreSQL 16、Redis 7。想確認確切版本,在雲端 session 裡叫 Claude 跑 check-tools——這個指令只存在於雲端環境。

Git 操作為什麼不會洩漏你的 token

這是整個設計裡最漂亮的一塊。你的 GitHub token 從頭到尾不會進入沙箱。沙箱裡的 git client 拿到的是一個特製的 scoped credential,所有 git 操作打到一個專用 proxy,由 proxy 驗證這個替身憑證、翻譯成你真正的 GitHub token,再去跟 GitHub 講話。

所以就算 Claude 在沙箱裡跑了惡意程式碼、整台 VM 被攻破,攻擊者翻遍檔案系統也找不到你的 token——它根本不在裡面。proxy 還順手做了一層保險:push 只能推到當前工作分支,想動 main 也動不了。

對外網路是另一套閘門,每個環境(environment)選一個等級:

等級 出站連線
None 完全斷網
Trusted(預設) 白名單域名:npm、PyPI、crates.io 等套件庫、GitHub、Docker Hub、雲端 SDK
Custom 自訂白名單(可疊加預設清單),支援 *.internal.example.com 萬用字元
Full 任何域名

預設的 Trusted 已經涵蓋你裝套件需要的九成場景。要連公司內部 API 才需要 Custom。Full 等級給出去之前想清楚——一個能自主執行程式碼又能連任意網站的 agent,等於把資料外洩的管道全開。

Setup script 跑一次,之後吃快取

VM 每次都是全新的,那每次都要重裝依賴?不用,這裡有一層設計:環境快取

你可以在環境設定裡放一段 Bash setup script(以 root 執行),第一次開 session 時跑完,Anthropic 會把整個檔案系統拍一張快照。之後的新 session 直接從快照啟動——依賴、工具、連 Docker image 都已經在硬碟上,setup script 直接跳過。快照大約七天過期,或在你改了 setup script、改了網路白名單時重建。

兩個實務守則:script 總時長壓在五分鐘內(不然快取建不起來,獨立的安裝用 &wait 平行跑),非關鍵指令接 || true(script 非零退出整個 session 會起不來)。要裝 gh CLI 就是標準範例:

1
2
#!/bin/bash
apt update && apt install -y gh

快取存的是檔案,不是程序。PostgreSQL 裝好了會在快照裡,但不會自己跑起來——每個 session 開始時叫 Claude service postgresql start 就好。

–remote 出去,–teleport 回來

雲端跟終端機之間的搬家是單行道設計。出去用 --remote

1
claude --remote "把 logger 重構成結構化輸出"

這會用你當前目錄的 GitHub remote 跟分支開一個新的雲端 session。記得先 push——VM 是從 GitHub clone 的,不是從你電腦複製的。每下一次 --remote 就多開一個獨立 session,三個任務可以同時在三台 VM 上跑,用 /tasks 看進度。repo 沒接 GitHub 也有退路:Claude Code 會把本機 repo 打包直接上傳(上限 100MB,未追蹤的檔案不會進去)。

回來用 --teleport(或 session 裡打 /tp):挑一個雲端 session,Claude 會確認你在同一個 repo、fetch 雲端那條分支、把完整對話歷史載回終端機。前提有四個——工作目錄乾淨(有未 commit 的變更會先要你 stash)、同一個 repo、雲端分支已經 push、同一個 claude.ai 帳號。

容易搞混的兩組指令值得釐清:--remote 是把任務送上雲端 VM 跑;--remote-control把本機 session 暴露給手機遙控,跑的還是你自己的電腦。--teleport 是拉雲端 session 回來;--resume 只翻本機的對話歷史,看不到雲端。

實戰上最順的組合是「本地規劃、雲端執行」:先在本機用 plan mode 跟 Claude 把計畫敲定,存進 repo、commit、push,然後 claude --remote "執行 docs/migration-plan.md 的遷移計畫" 丟上雲端自主跑。策略你控制,苦工它來扛。想連規劃都丟上雲端,那是 ultraplan 的領域。

還沒解的部分,老實講

這套東西目前有幾個邊界。最大的一個:還沒有專用的 secrets store。環境變數跟 setup script 存在環境設定裡,任何能編輯那個環境的人都看得到——要塞 API key 進去之前,先想清楚這件事。其次,資源上限 4 vCPU / 16GB RAM 對大型 build 或吃記憶體的測試可能不夠,超過的 workload 官方建議改用 Remote Control 跑自己的硬體。啟用 Zero Data Retention 的組織整個功能都不能用。互動式登入(AWS SSO 這類)在雲端 session 裡無解。

另外 gh CLI 沒有預裝——內建的 GitHub 工具涵蓋了讀 issue、列 PR、抓 diff、留言,不夠用才需要自己裝。

同一個原理,到處都是

回頭看這套機制的骨架:隔離的執行環境、憑證永遠留在邊界外由 proxy 代答、檔案系統快照當快取、網路白名單分級。把這四件事記下來,你會發現它不只是 Claude Code 的設計——CI/CD 的 runner、GitHub Actions 的 secrets 注入、Codespaces 的 prebuild,全是同一組原理的變奏。

雲端沙箱真正改變的不是「在哪裡跑」,是任務的所有權:本機 session 是你開著終端機陪它跑,雲端 session 是你把任務「交出去」,人可以走開。一次能交出去幾件事,才是這個功能拉開效率差距的地方。今天就可以試:挑一個你拖了兩週的小重構,push,claude --remote,去吃飯。

參考來源: