Claude Code on the Web 完整教學 — 把任務丟進雲端沙箱,筆電闔上它繼續跑
在終端機打 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 |
|
快取存的是檔案,不是程序。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,去吃飯。
參考來源:









