Claude Code Web(Claude Code on the web)は、ブラウザ上の claude.ai/code からクラウドVMでタスクを走らせる機能です。ターミナルを閉じてもセッションが残り、スマホからも進捗を見られます。本記事ではローカルの Claude Code CLI v2.1.241 で --cloud と --teleport が実在することを確認したうえで、ターミナルとの受け渡しが一方向であること、GitHubなしで動かす条件、そしてIP許可リストを使う組織では全滅するという落とし穴までを公式ドキュメントと突き合わせて整理します。
30秒でわかる Claude Code Web
・claude.ai/code のクラウドVMでタスクを実行。実測時点でリサーチプレビュー(Pro / Max / Team / Enterprise の一部)
・ローカルCLI v2.1.241 で --cloud --teleport --environment の存在を確認(--remote は --cloud の非推奨エイリアス)
・受け渡しはCLIから一方向。クラウド→ターミナルは --teleport で可能、ターミナル→Webは不可
・GitHubなしでも動く。ローカルリポジトリをバンドル送信(100MB未満・1コミット以上・未追跡ファイルは対象外)
・IP許可リストを使う組織はAnthropicホストのセッションが全滅する。除外申請か自社ホスト環境が必要
・クラウドVMに別料金はないが、レート制限はアカウント全体で共有
Claude Code 本体のインストールや設定はClaude Code|2026年版・インストールからCLAUDE.md・Hooks・本番運用までの実装手引きにまとめてあります。本記事はそれを「ブラウザとクラウドVMで動かす」話です。
Claude Code Webとは——クラウドVMで動く非同期のClaude Code
Claude Code Web は、Anthropic が管理するクラウドインフラ上でタスクを実行する仕組みです。組織が自社ホスト環境へルーティングしている場合は、そちらで実行されます。
公式ドキュメントの位置づけはこうです。
Claude Code on the web is in research preview for Pro, Max, and Team users, and for Enterprise users with premium seats or Chat + Claude Code seats.
リサーチプレビューであること、対象プランが限定されていることが明記されています。
ローカルのターミナルで動かす Claude Code との一番の違いは、セッションがあなたのマシンに依存しないことです。ブラウザを閉じてもセッションは走り続け、Claude モバイルアプリから進捗を見たり指示を出したりできます。
この非同期性が何を変えるかというと、待ち時間の扱いです。ローカルのターミナルでClaude Codeを回している間、その端末は基本的に占有されます。テストの実行やビルドを含む長いタスクだと、終わるまで別の作業に移りにくい。クラウドセッションはそこを切り離すので、「重いリファクタは投げておいて、手元では別のことをする」という組み方ができます。並列に複数投げられるのも同じ理由で効きます。
一方で、手元の環境に依存する作業には向きません。 クラウドVMがcloneするのはGitHubリモートの内容なので、ローカルにしかない設定ファイルや、未pushのコミット、ローカルで動いているデータベースには触れません。この線引きが、後述する「何ができて何ができないか」のほぼすべてを決めています。
何が「クラウド環境」を決めるのか
すべてのクラウドセッションは cloud environment(クラウド環境)という保存済み設定の上で動きます。この設定が制御するのは3つです。
・ネットワークアクセス
・環境変数
・セットアップスクリプト
環境がまだ無い場合、オンボーディングが Trusted network access を持つ Default 環境を用意します。この環境定義は、Web・ターミナル・Claude Tag・routines・モバイル/デスクトップアプリのどこからクラウドセッションを開始しても共通で適用されます。
ローカルCLIで実測——--cloud と --teleport は本当にあるか
公式ドキュメントの記述を、手元の Claude Code CLI で確認しました。バージョンは 2.1.241 です。
claude --version
# 2.1.241 (Claude Code)
claude --help | grep -E "cloud|teleport|environment"
出力で確認できたのは次の4つです。
| フラグ / コマンド | --help の説明(原文要旨) |
|---|---|
--cloud [description\|session_id\|url] |
説明文を渡すとクラウドセッションを新規作成、セッションIDまたは claude.ai/code のURLを渡すと既存セッションに接続 |
--teleport [session] |
テレポートセッションを再開。セッションIDの指定も可能 |
--environment <environment_id> |
指定した自社ホスト環境(ccpool_...)で新規クラウドセッションを作成 |
ultrareview [options] [target] |
現在のブランチ(またはPR番号/ベースブランチ)に対するクラウドホストのマルチエージェントコードレビューを実行 |
ドキュメントの記述とCLIの実装は一致していました。 --remote という古い綴りも --cloud の非推奨エイリアスとして残っていると公式は記載しています。
【重要】ターミナルとの受け渡しは一方向
ここが最も誤解されやすい点です。公式ドキュメントは明確にこう書いています。
From the CLI, session handoff is one-way: you can pull cloud sessions into your terminal with
--teleport, but you can’t push an existing terminal session to the web.
CLIからの受け渡しは一方向です。整理すると次のようになります。
| やりたいこと | CLIでできるか |
|---|---|
| クラウドセッションをターミナルに引き込む | できる(--teleport) |
| いま話しているターミナルセッションをWebへ送る | できない |
| ターミナルから新しいクラウドセッションを作る | できる(--cloud "タスク説明") |
| 既存のクラウドセッションにメッセージを送る | できる(-p "..." --cloud <session-id>) |
--cloud "タスク説明" は「新規作成」であって「持ち出し」ではありません。 いま手元で積み上げた会話のコンテキストは引き継がれません。
流れを図にすると、非対称がはっきりします。
手元の会話は引き継がれない" W->>W: "GitHubリモートをclone(ローカルではない)" T->>W: "claude -p "追記" --cloud <session-id>" Note over T,W: "既存セッションへメッセージを投げる" W-->>T: "claude --teleport <session-id>" Note over W,T: "会話履歴とブランチを引き込む。
以降ターミナル側の作業はWebに戻らない" T--xW: "既存のターミナルセッションをWebへ送る" Note over T,W: "CLIからは不可(デスクトップアプリのみ・未検証)"
なお公式は、デスクトップアプリには Continue in メニューがあり、そこからローカルセッションをWebへ送れると記載しています。この動作は本記事では未検証です。
ターミナル → Web(新規作成)
claude --cloud "Fix the authentication bug in src/auth/login.ts"
ここで重要な注意があります。クラウドVMがcloneするのは、カレントディレクトリのGitHubリモートの現在のブランチであって、ローカルのチェックアウトではありません。ローカルにコミットがあるなら先にpushしてください。 --cloud は一度に1リポジトリだけを扱います。
公式が勧める組み合わせは「ローカルで計画、クラウドで実行」です。
claude --permission-mode plan
プランモードでファイルを読み、方針を固め、計画をリポジトリにコミットしてpushしてから、クラウドへ投げます。
複数タスクを並列に走らせることもできます。--cloud は1回ごとに独立したセッションを作るので、そのまま並べれば同時に走ります。進捗は CLI の /tasks で確認します。
Web → ターミナル(テレポート)
引き込む方法は5つあります。
・claude --teleport(対話的なセッション選択)/claude --teleport <session-id>(直接指定)
・CLIセッション内で /teleport または /tp
・/tasks を開いて t キー
・Web画面のセッションメニューから Open in > Terminal
・クラウドセッション内で /teleport と打つと、実行すべきコマンドを返してくれる(セッション環境の Claude Code が v2.1.223 以降であること)
テレポート時、Claude はリポジトリの一致を検証し、クラウドセッションのブランチを fetch して checkout し、会話履歴をターミナルに読み込みます。
ここも誤解しやすい点があります。 テレポート後のターミナルはそのセッションのコピーを持ちます。ターミナル側で進めた新しい作業は、claude.ai やモバイルアプリ側のクラウドセッションには反映されません。スマホから引き続き操作したいなら、ローカルセッションで /remote-control を起動する必要があります。
セッションを機械をまたいで引き継ぐという発想自体は、OSS側にも先行例があります。happier徹底解説:Claude CodeやCodexのセッションをリモートで引き継ぐE2E暗号化クライアントは同じ課題をエンドツーエンド暗号化で解いており、公式のクラウドセッションとは信頼モデルが異なります。自社のコードをAnthropic管理のVMに置けない事情がある場合の比較対象になります。
--teleport と --resume も別物です。--resume はそのマシンのローカル履歴を開くだけでクラウドセッションは一覧に出ません。
テレポートの4条件
公式が挙げる前提条件は4つです。1つでも欠けるとエラーか確認プロンプトになります。
| 条件 | 内容 |
|---|---|
| クリーンなgit状態 | 未コミット変更があると stash を促される |
| 正しいリポジトリ | 同一リポジトリのチェックアウトから実行すること。forkは不可 |
| ブランチがpush済み | クラウドセッションのブランチがリモートに存在すること |
| 同一アカウント | クラウドセッションと同じ claude.ai アカウントで認証されていること |
--teleport が使えない場合、原因はたいてい認証です。APIキー認証では使えません——/login で claude.ai アカウントにサインインし直す必要があります。
GitHubを使わずにクラウドセッションへ送る
GitHubに接続されていないリポジトリで claude --cloud を実行すると、Claude Code はローカルリポジトリをバンドルしてアップロードします。GitLab や Bitbucket を使っている場合の逃げ道になります。
バンドルには全ブランチの履歴と、追跡済みファイルの未コミット変更が含まれます。GitHub接続済みでも強制できます。
CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"
ただし制約が4つあります。
・gitリポジトリで、最低1コミットが必要
・バンドルは100MB未満。超えると現在のブランチのみ→作業ツリーの単一スカッシュスナップショット、と段階的に縮小し、それでも大きければ失敗する
・未追跡ファイルは含まれない。クラウドに見せたいファイルは git add しておくこと
・バンドル由来のセッションはリモートにpushできない(別途GitHub認証を構成していない限り)
最後の制約が実務では効きます。GitLab のリポジトリを送って直せても、結果を GitLab に戻すのはクラウドセッションからはできません。
CLIから既存セッションへメッセージを送る
クラウドセッションが走り始めたあと、ログイン済みのどのマシンからでも追記できます。
claude -p "テストも追加しておいて" --cloud <session-id>
この形はメッセージをキューに入れて即座に終了します。返答は待ちません。CI スクリプトから長時間セッションを操作する用途を想定した設計で、セッションを開始したマシンである必要はありません(ローカルのセッション状態を送らないため)。
-p を付けずに claude --cloud <session-id> とすると、ターミナルをセッションにアタッチして対話できます。ただしこの対話アタッチは段階的なロールアウト中で、Attaching to an existing cloud session is not enabled for your account が出る場合があります。-p のキュー投入形式はロールアウトの影響を受けません。
<session-id> には session_... や cse_... といった素のID、あるいは claude.ai/code/<id> のURL(スキームやクエリ文字列の有無は問わない)を渡せます。
機械可読な結果が欲しい場合は --output-format json を付けると {ok, session_id, url} が返ります。ただし設定エラー(未対応プロバイダ、組織ポリシー無効など)はJSONにならずstderrへ出るので、スクリプトで扱うときは終了コードとstderrの両方を見る必要があります。--output-format stream-json は --cloud <session-id> と併用できません。
クラウドセッションの分離とセキュリティ
公式は分離の仕組みを4層で説明しています。
隔離されたVM:各セッションは Anthropic 管理の独立VMで動きます。自社ホスト環境へルーティングされたセッションは自社インフラで動き、その場合の分離は自社デプロイの責任になります。
ネットワークアクセス制御:Anthropicホスト環境では既定でネットワークアクセスが制限され、無効化もできます。ただし公式は正直に書いています——ネットワークを無効にしても Claude Code は Anthropic API と通信できるため、データがVMの外へ出る余地は残る。
認証情報の保護:Anthropicホスト環境では、gitの認証情報や署名鍵といった機微な情報はサンドボックス内に置かれません。スコープを絞った資格情報を使う安全なプロキシ経由で認証されます。
隔離環境内での解析:PR作成前のコード解析・変更はセッションの隔離環境内で行われます。
Auto-fix PR を有効にする前の注意
Claude が PR を監視し、CI失敗やレビューコメントに自動で応答する Auto-fix 機能があります。便利ですが、公式が明示的な警告を出しています。
If your repository uses comment-triggered automation such as Atlantis, Terraform Cloud, or custom GitHub Actions that run on
issue_commentevents, be aware that Claude can reply on your behalf, which can trigger those workflows.
Claude はあなたのGitHubアカウントでレビューコメントに返信します(Claude Code が書いたというラベルは付きます)。issue_comment イベントで動く自動化——Atlantis や Terraform Cloud、独自のGitHub Actions——がある場合、Claudeの返信がそれを発火させます。PRコメントでインフラがデプロイされるリポジトリでは Auto-fix を有効にしないでください。
もう1点、GitHubはベースブランチが進んでマージコンフリクトが生じてもwebhookを出さないため、Auto-fix はコンフリクトに自力で反応できません。セッションを開いてリベースを依頼する必要があります。
CI側でClaudeを動かす選択肢としては GitHub Action もあり、権限モデルの違いはClaude Code Actionとは|39入力とv1タグの実体、権限バイパス2つを実測解説にまとめました。Web の Auto-fix は「Claude GitHub App を入れてPR単位でトグル」、Action は「ワークフローを書いて権限を宣言」という違いがあります。
Claude Code Web の導入前に確認すべき制約
公式の Limitations から、実務で効くものを挙げます。
レート制限はアカウント全体で共有されます。 Claude Code Web は他の Claude / Claude Code の利用と同じレート制限を消費します。並列にタスクを走らせればその分だけ消費します。ただしクラウドVMそのものへの別料金はありません。
リポジトリのcloneとPR作成にはGitHubが必要です。 GitHub Enterprise Server は Team / Enterprise プランでサポートされます。GitLab・Bitbucket はバンドル送信で持ち込めますが、前述のとおり結果をpushで戻せません。
IP許可リストは致命的です。 これが最も見落とされやすい制約です。
If your organization has IP allowlisting enabled, every Anthropic-hosted cloud session fails with an authentication error.
Anthropicホストのクラウドセッションは自社ネットワークではなく Anthropic 管理インフラから API を呼ぶため、組織のIP許可リストに阻まれます。Code Review や routines も同様です。対処は2つ——Anthropicサポートに連絡して除外してもらうか、自社ホスト環境へルーティングするかです。導入検討の初期に情シスへ確認しておくべき項目です。
サードパーティプロバイダ経由では使えません。 Amazon Bedrock や Google Vertex AI 経由で Claude Code を使っている場合、クラウドセッションは利用できません。ANTHROPIC_BASE_URL だけで構成したLLMゲートウェイはこの判定上サードパーティ扱いにはなりませんが、いずれにせよ claude auth login でのサインインが要ります。
つまずいたときの切り分け
公式ドキュメントのトラブルシューティングから、原因が分かりにくいものを3つ挙げます。
Unable to get organization UUID — --cloud と --teleport は claude.ai アカウントでのサインインを要求します。APIキー認証のままか、保存されたアカウント情報が古いとこのエラーになります。/login でサインインし直してください。
Remote Control session expired / Access denied — --teleport はクラウドセッションと同じ Remote Control のインフラを通るため、認証や有効期限のエラーが Remote Control の文言で出ます。接続トークンは短命でアカウントにスコープされています。/login で資格情報を更新し、セッションの所有アカウントと一致しているか確認します。
Session creation failed / プロビジョニングで停止 — VMを確保できていません。status.claude.com を確認し、1分ほど待って再試行します。あわせて、接続しているGitHubアカウントがそのリポジトリにアクセスできるかを確認してください。Claude GitHub App をリポジトリにインストールしている必要はなく、App の認可か /web-setup で同期した gh トークンのどちらかがあれば足ります。
なお、クラウドセッションは一定時間の無操作でVMが回収されます(Webのセッション一覧では expired と表示)。claude.ai/code から開き直せば、会話履歴を保ったまま新しいVMがプロビジョニングされます。
まとめ
・Claude Code Web は claude.ai/code のクラウドVMでタスクを回す機能。実測時点でリサーチプレビュー
・ローカルCLI v2.1.241 で --cloud / --teleport / --environment / ultrareview の存在を確認。ドキュメントと実装は一致
・CLIからの受け渡しは一方向。--teleport でクラウド→ターミナルは可能、ターミナル→Webは不可。--cloud は新規作成であって持ち出しではない
・テレポート後のターミナルはセッションのコピー。以降の作業はWeb側に反映されない
・GitHubなしでもバンドル送信で動くが、100MB未満・1コミット以上・未追跡ファイル除外・push不可の制約つき
・IP許可リストを使う組織はAnthropicホストのセッションが全滅する。除外申請か自社ホスト環境が必要
・Auto-fix はあなたのアカウントでPRに返信する。issue_comment で動く自動化があるリポジトリでは有効化しない
「ブラウザで動くClaude Code」と一言で言っても、実際にはどこでcloneされ、誰の資格情報で認証され、結果をどこへ戻せるのかがすべて別々に決まります。導入前に自分の環境でその3つを確認しておくと、後から詰まりません。
参照ソース
- Use Claude Code on the web — Anthropic公式。
--cloud/--teleportの仕様、バンドル送信の制約、Auto-fix の警告、Limitations(2026-08-27 参照) - Claude Code Docs — Overview — 製品全体の位置づけ(2026-08-27 参照)
- Claude Code CLI
--help出力(v2.1.241・ローカル実測) —--cloud/--teleport/--environment/ultrareviewの存在とヘルプ文言(2026-08-27 実測)