Claude Codeはオフライン環境で使えるか
Claude Codeが完全なオフライン・エアギャップ環境で動かない理由と、最低限必要な4つの通信先をAnthropic公式ドキュメントの記載から示します。
Claude Codeは完全なオフライン環境やエアギャップ環境(インターネットから物理的に切り離されたネットワーク)では動作しません。コマンドの応答を含め、あらゆる処理がAnthropicのAPIへのリクエストとして送られるため、ネットワーク接続を完全に断つとサインインの時点で先に進めなくなります。最低限必要な通信はapi.anthropic.comを含む4つのドメインに絞られ、それ以外のホストは個別機能が欠けるだけで中核の動作は止まりません。
Claude Codeがオフラインで動かない理由
Claude Codeとは、モデル推論をローカル端末で完結させるツールではなく、入力のたびにAPIへリクエストを送って応答を受け取るCLIです。ネットワークから完全に切り離された環境では、コマンドを実行した瞬間から応答が返らず、それ以上作業を進められません。
公式ドキュメントは、スタンドアロンCLIが到達できる必要のあるURLを一覧にしています。中でもapi.anthropic.comはClaude APIへのリクエスト全般(WebFetchのドメイン安全性チェック・機能フラグ取得・テレメトリ送信を含む)を担い、ここが塞がれると中核のAPIリクエストが失敗し、ほぼ全機能が止まります。認証にはclaude.ai(claude.aiアカウントのサインイン)とplatform.claude.com(Anthropic Consoleアカウントの認証、およびclaude.aiアカウントのOAuthトークン交換・更新・失効)も必須です。さらに、claude.aiアカウントでのサインインはブラウザ上でclaude.comのページを一度開いてからclaude.aiにリダイレクトする経路のため、claude.comへの到達性もサインイン導線に必要です。
WebFetchのドメイン安全性チェックとは、Claudeが指定URLを取得する前に、そのURLが安全かどうかをAnthropic側で判定する仕組みです。単にコマンド入力への応答を生成するだけの操作でも、WebFetchのような周辺機能を1つでも使えば追加でこの呼び出しが発生します。機能フラグ取得はアカウントごとに有効な機能を切り替える仕組み、テレメトリ送信は利用状況の計測で、いずれもapi.anthropic.com宛てです。
最低限必要な通信 — この4つが塞がれると起動すらしない
| ドメイン | 役割 | ブロック時の影響 |
|---|---|---|
api.anthropic.com | 役割Claude APIリクエスト全般 | ブロック時の影響中核のAPIリクエストが失敗し、ほぼ全機能が止まる |
claude.ai | 役割claude.aiアカウントの認証 | ブロック時の影響claude.ai認証でのサインインができなくなる |
claude.com | 役割claude.aiアカウントのサインイン画面をブラウザで開く導線 | ブロック時の影響サインイン画面に到達できない |
platform.claude.com | 役割Anthropic Consoleアカウント認証・OAuthトークン交換 | ブロック時の影響Console・claude.aiどちらのサインインもトークン交換に失敗する |
初回セットアップでは、サインイン画面を表示する前にapi.anthropic.comとplatform.claude.comへの疎通確認が先に走ります。どちらかに到達できないと、次のようなメッセージを出して起動を終了します。
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ECONNREFUSED
Connection to api.anthropic.com timed out after 10 secondsnpmやbunでインストールする場合は、パッケージレジストリのregistry.npmjs.org(または社内ミラー)にも到達できる必要があります。ネイティブインストーラ経由なら、このホストへの到達性は不要です。それ以外のホスト(mcp-proxy.anthropic.com・downloads.claude.ai・raw.githubusercontent.com等)は個別機能が欠けるだけで、中核のAPIリクエストは動き続けます。ファイアウォールで許可するドメインの全一覧と、企業プロキシ配下でのCA証明書・mTLS設定手順はClaude Codeプロキシ設定にまとめています。
一時的な通信断とエアギャップ環境は別物
Wi-Fiが数秒切れる、VPNが瞬断する、といった一時的な通信断は「オフラインで使えない」とは別の話です。Claude Codeはストリーミング中に接続が切れると自動的にリトライし、初回応答が来る前のタイムアウトでは「Unable to connect to API」に続けてConnectionRefused・ENOTFOUND・EHOSTUNREACHのような接続失敗の種類を表示します。原因の多くはインターネット未接続、api.anthropic.comを塞ぐVPN、未設定の社内プロキシです。
これに対し、ネットワークへの経路そのものが恒久的に存在しないエアギャップ環境では、この再試行がいつまでも成功しません。起動時の疎通確認で止まるか、コマンドを実行するたびに同じタイムアウトを繰り返す状態になります。一時的な切断ならプロキシ設定や接続の見直しで解消しますが、エアギャップ環境ではその見直し自体ができません。
ストリーミング中の応答が完全に途切れた場合、Claude CodeはAnthropic APIへの直接接続で180秒の初回バイト到達期限(first-byte deadline)を過ぎると接続を打ち切り、リトライするか、ここまでの出力を保持したまま「応答が不完全な可能性がある」旨の通知を出して終了します。一時的な瞬断ならこのリトライ1〜2回で復帰しますが、エアギャップ環境では何度リトライしても最初のバイトすら届きません。
なお、組織がcloud gateway経由のサインインを使っていて、管理設定でforceLoginMethodをgatewayに設定している場合は、初回セットアップのこの疎通確認自体が省略されます。この構成では代わりにサインイン画面が「Cloud gateway」を表示するため、api.anthropic.comへの到達性チェックで足止めされることはありません。ただし、ゲートウェイ自体への到達性は別途必要です。
他のプロバイダー経由に切り替えても解消しない
「社内でAWSやGoogle Cloud経由なら閉域網で完結するのでは」という発想も成り立ちません。Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundry、またはLLM gatewayを使う構成では、モデルへの通信と認証先がapi.anthropic.com・claude.ai・platform.claude.comからそれぞれのプロバイダーやゲートウェイに変わるだけで、ネットワーク接続そのものが不要になるわけではありません。Amazon BedrockでClaudeを使う場合も、AWSのAPIエンドポイントへの到達性は必須です。
self-hosted runnerで自社マシンからクラウドセッションを動かす構成も同様です。公式ドキュメントによれば、Anthropicホスト型のクラウドセッションはAnthropic管理インフラからリポジトリに接続するのに対し、self-hosted環境のセッションは自社ネットワークの内側から接続します(Anthropic git proxyを使うランナーを除く)。つまりself-hosted環境が変えるのは接続の発信元だけで、Claude Code自体がAnthropicのAPIエンドポイントへ到達できることが前提である点は変わりません。
Claude DesktopやWebブラウザ版も同じ制約を受けるか
ここまでは、ターミナルから実行するスタンドアロンCLIとしてのClaude Codeを対象にしています。Claude DesktopアプリやWebブラウザで使うclaude.aiは、アプリコードやアーティファクトの読み込みにassets-proxy.anthropic.comや他の*.claudeusercontent.com系ホストなど、CLIの一覧には含まれない追加のAnthropic CDNホストを使います。claude.aiだけを許可してこれらのホストをブロックすると、エラーメッセージではなく白紙のページが表示される点もCLIとは異なる挙動です。
到達すべきホストの構成はCLI・Desktop・ブラウザ版で異なりますが、いずれもAnthropicのインフラと通信して初めて応答を返す点は共通です。モデルの重みを端末側に持たず、推論のたびにAPIへリクエストを送る設計そのものが、3形態のどれを使ってもオフラインでは完結しない根本理由になっています。この設計は各形態で共通のため、どれか1つをネットワーク要件で選び分ける余地はありません。
よくあるつまずき
- npm・bunでインストール済みだから初回起動もオフラインで動くと思い込む — 初回セットアップの疎通確認で
api.anthropic.comとplatform.claude.comへの到達性を見るため、インストール後も初回サインインまではネットワークが要ります - 社内LLM gatewayを導入すれば
api.anthropic.comへの通信をゼロにできると思い込む — WebFetchのプリフライトとfast modeの可否チェックは、ゲートウェイ経由の構成でもapi.anthropic.comを呼び続けます raw.githubusercontent.comをブロックしただけで他の機能まで止まると思い込む — 影響は/release-notesコマンドと更新後のchangelog表示に限られ、中核のAPIリクエストは動き続けます- self-hosted環境やself-hosted runnerを使えばネットワークが要らなくなると思い込む — 変わるのは接続の発信元が自社内になることだけで、Anthropicのエンドポイントへの到達性は引き続き必須です
まとめ
Claude Codeは完全なオフライン・エアギャップ環境では動作しません。最低限api.anthropic.com・claude.ai・claude.com・platform.claude.comへの到達性が必須で、npm・bunインストールならregistry.npmjs.orgも加わります。任意の通信(テレメトリ・エラーレポート等)はClaude Code環境変数リファレンスにあるCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICでまとめて止められますが、中核APIへの通信自体は止められません。エンタープライズネットワークでの許可ドメイン設定や、症状別の切り分けはClaude Codeでよくあるエラー10選も参照してください。
オフライン専用のインストールモードや、通信を完全にゼロにする設定は公式ドキュメントに記載がなく、CLI・Desktop・ブラウザ版のどの形態にも用意されていません。