Claude CodeでVertex AIとTeamプランを切り替える方法|Skill・Hookで自動化

Claude Codeの接続先をVertex AIとTeamプランの間で切り替え、SkillとHookで自動化する様子を表したイラスト
実務で使っている切り替え術

Claude CodeでVertex AIとClaude Teamなどのサブスクを切り替える方法を、実際の業務フローをもとに解説します。設定変更をSkillにまとめ、起動時にはHookで接続先を表示。切り替え後も/resumeで元のセッションへ戻れます。

この記事の結論
  • 接続先は~/.claude/settings.jsonの環境変数で切り替えられる
  • Vertex AI利用中は/loginが無効になるため、設定変更後の再起動が必要
  • 再開は/exitclaude→Claude Code内で/resumeが分かりやすい
  • Skillで設定変更を定型化し、SessionStart Hookで誤接続を防げる

筆者は別PCの実務環境で、会社のGoogle Cloudプロジェクトを使うVertex AIと、Claude TeamなどClaude.ai側のサブスクリプションを用途に応じて切り替えています。毎回手作業でJSONを書き換えると、別プロジェクトへ誤って接続するリスクがあるため、現在は切り替え手順をSkill化し、起動時に利用中のProviderとプロジェクトをHookで表示しています。

※以下の設定例は、実務環境のプロジェクト名や社内情報を架空の値へ置き換えた再現用サンプルです。Claude Codeのバージョンや組織の管理設定によって表示や挙動が異なる場合があります。

Claude CodeのVertex AIとTeamプランは何が違う?

どちらもClaude Codeを使えますが、リクエストの送信先、認証方法、料金の管理先が異なります。

項目Claude.aiサブスクGoogle Vertex AI
対象例Pro・Max・Team・EnterpriseGoogle Cloud上のClaudeモデル
認証/loginでAnthropicアカウントへログインGoogle Cloudの認証情報を使用
利用管理Claudeのプラン利用枠GCPプロジェクト単位の請求・権限
主な設定Vertex AI用の設定を外すCLAUDE_CODE_USE_VERTEX=1などを設定

Anthropic公式ドキュメントでは、Vertex AIを使う場合にCLAUDE_CODE_USE_VERTEX=1ANTHROPIC_VERTEX_PROJECT_IDCLOUD_ML_REGIONなどを設定します。これらはシェルの環境変数だけでなく、settings.jsonenvにも保存できます。

重要:Vertex AI利用中は/login/logoutが無効になります。Google Cloud認証を使うモードだからです。そのため、Teamプランへ戻す際はVertex AI設定を無効化し、Claude Codeをいったん終了してから起動し直します。

Vertex AIでAuto Modeが表示されない場合は、関連記事「Vertex AI・BedrockでClaude CodeのAuto Modeが出ない理由」も参考にしてください。

設定前にsettings.jsonと認証状態を確認する

個人設定として全プロジェクトに適用する場合、主に編集するのは~/.claude/settings.jsonです。プロジェクト固有にしたい場合は.claude/settings.jsonまたは、Git管理から外れる.claude/settings.local.jsonを使います。

Vertex AIを有効にする基本設定

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "env": {
    "CLAUDE_CODE_USE_VERTEX": "1",
    "CLOUD_ML_REGION": "global",
    "ANTHROPIC_VERTEX_PROJECT_ID": "example-production"
  }
}

example-productionは実際のGCPプロジェクトIDへ置き換えてください。Google Cloud側では、Vertex AI APIの有効化、利用するClaudeモデルへのアクセス、Application Default Credentialsなどの認証設定も必要です。

編集前には必ずバックアップする

cp ~/.claude/settings.json ~/.claude/settings.json.backup

編集後は/doctorで設定エラーを確認できます。複数スコープの設定が競合していないか確認したい場合は/statusも便利です。

プロジェクトIDの優先順位に注意:GOOGLE_CLOUD_PROJECTGCLOUD_PROJECTGOOGLE_APPLICATION_CREDENTIALSで参照される認証情報などが設定されていると、ANTHROPIC_VERTEX_PROJECT_IDより優先されることがあります。JSONを書き換えたのにプロジェクトが変わらない場合は、シェルや認証情報側も確認してください。

Vertex AIからClaude Teamプランへ切り替える手順

STEP 1Vertex設定を無効化
STEP 2/exit
STEP 3再起動して/login
STEP 4/resume

1. Vertex AI用の設定を削除する

settings.jsonenvから、少なくとも次のVertex AI用キーを削除します。

"CLAUDE_CODE_USE_VERTEX": "1",
"CLOUD_ML_REGION": "global",
"ANTHROPIC_VERTEX_PROJECT_ID": "example-production"

CLAUDE_CODE_USE_VERTEX"0"にするより、キー自体を削除するほうが確実です。設定元がほかにもないか、シェルのexportやプロジェクト設定も確認してください。

2. Claude Codeを終了して起動し直す

現在のセッション内で次を実行します。

/exit

シェルへ戻ったら、同じプロジェクトディレクトリでClaude Codeを起動します。

claude

3. /loginでサブスクリプションへログインする

/login

ブラウザでClaude Teamなど、利用したいClaude.aiアカウントの認証を完了します。ログイン後は/statusで接続状態を確認しておくと安心です。

4. /resumeで作業中のセッションへ戻る

ここが今回確認したポイントです。Claude Codeの中で次を入力します。

/resume

セッション選択画面から、切り替え前に作業していた会話を選びます。つまり、普段の操作に合わせると正確な流れは/exit→シェルでclaude→Claude Code内で/resumeです。

--resumeとの違い:claude --resumeはシェルからセッション選択画面付きで起動する方法です。一方、/resumeは起動済みのClaude Code内で実行するスラッシュコマンドです。どちらも公式機能ですが、本記事では実際の運用に合わせて/resumeを標準手順にしています。

Vertex AIのプロジェクトを切り替える手順

Vertex AIのまま利用するGCPプロジェクトだけを変更する場合は、ANTHROPIC_VERTEX_PROJECT_IDを書き換えます。

{
  "env": {
    "CLAUDE_CODE_USE_VERTEX": "1",
    "CLOUD_ML_REGION": "global",
    "ANTHROPIC_VERTEX_PROJECT_ID": "example-development"
  }
}

書き換えた後は、同様に/exitで終了し、claudeで再起動してから/resumeで元のセッションへ戻ります。

なぜ再起動するのか:settings.jsonenvはClaude Codeプロセスの起動時に反映されます。稼働中のセッションでファイルだけを書き換えても、現在のプロセスが古い接続先を保持している可能性があります。

サブスクからVertex AIへ戻す場合

  1. settings.jsonCLAUDE_CODE_USE_VERTEX=1を追加する
  2. プロジェクトIDとリージョンを設定する
  3. /exitで終了する
  4. claudeで再起動する
  5. 起動時のHook表示を確認する
  6. /resumeで作業中の会話へ戻る

接続先の切り替えをClaude Code Skillにする

毎回同じ設定を手作業で変更するなら、Skillにする価値があります。個人用Skillは~/.claude/skills/<skill-name>/SKILL.mdへ配置すると、全プロジェクトからスラッシュコマンドで呼び出せます。

例えば、次の場所にファイルを作成します。

~/.claude/skills/switch-claude-provider/SKILL.md

再現用のSkill例は次のとおりです。

---
name: switch-claude-provider
description: Claude Codeの接続先をClaude.aiサブスクまたはVertex AIへ切り替える
argument-hint: "team | vertex <project-id> [region]"
disable-model-invocation: true
---

# Claude Code接続先切り替え

引数: $ARGUMENTS

1. ~/.claude/settings.json を読み込む。
2. 変更前に ~/.claude/settings.json.backup へバックアップする。
3. 引数が team の場合:
   - envからCLAUDE_CODE_USE_VERTEXを削除する。
   - envからANTHROPIC_VERTEX_PROJECT_IDを削除する。
   - envからCLOUD_ML_REGIONを削除する。
   - /exit後に再起動し、/loginが必要だと案内する。
4. 引数が vertex の場合:
   - CLAUDE_CODE_USE_VERTEXを"1"にする。
   - 第2引数をANTHROPIC_VERTEX_PROJECT_IDに設定する。
   - リージョン未指定ならCLOUD_ML_REGIONを"global"にする。
5. 既存のpermissions、hooks、その他のenv設定は変更しない。
6. 保存後にJSON構文を検証する。
7. 変更前後のProvider、Project、Regionだけを表示する。
8. 認証情報、トークン、キーの値は表示しない。
9. 最後に「/exit → claude → /resume」が必要だと案内する。

このSkillは次のように呼び出します。

/switch-claude-provider team

/switch-claude-provider vertex example-production global

/switch-claude-provider vertex example-development global

Skillにファイル編集を任せる場合でも、最初の数回は差分を確認してください。組織管理の設定やシェル側の環境変数まで自動変更する設計にはせず、何を変更したかを表示させるのが安全です。

Skillの基本的な作り方は「Claude Codeでスキルを登録する方法」でも解説しています。

起動時にProviderとプロジェクトをHookで表示する

設定を自動化しても、起動後に接続先が見えなければ誤操作は防ぎにくいものです。そこで、SessionStart Hookを使い、新規起動時と/resume時に利用中のProviderを表示します。

表示用スクリプトを作る

~/.claude/hooks/show-provider.shを作り、次のように記述します。

#!/bin/bash

if [ "${CLAUDE_CODE_USE_VERTEX:-}" = "1" ]; then
  PROJECT="${GOOGLE_CLOUD_PROJECT:-${GCLOUD_PROJECT:-${ANTHROPIC_VERTEX_PROJECT_ID:-未設定}}}"
  REGION="${CLOUD_ML_REGION:-未設定}"

  echo "Claude Code接続先: Google Vertex AI"
  echo "GCP Project: ${PROJECT}"
  echo "Region: ${REGION}"

  if [ -n "${GOOGLE_APPLICATION_CREDENTIALS:-}" ]; then
    echo "注意: GOOGLE_APPLICATION_CREDENTIALSが設定済みです"
  fi
else
  echo "Claude Code接続先: Claude.aiサブスクリプション"
  echo "必要に応じて /status でログイン状態を確認してください"
fi

実行権限を付けます。

chmod +x ~/.claude/hooks/show-provider.sh

settings.jsonへSessionStart Hookを追加する

既存のhooks設定と統合し、次の内容を追加します。

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume",
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/hooks/show-provider.sh"
          }
        ]
      }
    ]
  }
}

SessionStartstartupは新規起動、resume/resume--resume--continueなどでの再開時に発火します。スクリプトが標準出力へ書いた内容は、セッション開始時のコンテキストにも追加されます。

Hookに秘密情報を表示しない:アクセストークン、サービスアカウントキー、認証ファイルの中身は出力しないでください。表示するのはProvider、プロジェクトID、リージョンなど、接続先を判断するための最小限の情報にします。

Hooksの設定全般は「Claude Code Hooksの設定方法と実用例」もご覧ください。

切り替わらないときの確認ポイント

症状主な原因対処
/loginが使えないVertex AIモードのままVertex用キーを削除し、/exit後に再起動
プロジェクトIDが変わらない別の環境変数や認証情報が優先GOOGLE_CLOUD_PROJECTなどを確認
Skillが見つからない配置先やディレクトリ名が違う~/.claude/skills/<name>/SKILL.mdを確認
Hookが表示されないJSON構造、実行権限、matcherの誤り/doctor/hooksで確認
以前の会話が見つからない違う作業ディレクトリで起動元のプロジェクトへ移動してclaude/resume

設定が競合していないか確認する

Claude Codeの設定は、管理設定、ユーザー設定、プロジェクト設定、ローカル設定、環境変数など複数箇所から読み込まれます。変更が反映されないときは、/statusで有効な設定元を確認し、/doctorでJSONの不正なキーや構文エラーを調べます。

まとめ:切り替え・再起動・表示の3点をセットにする

Claude CodeでVertex AIとClaude Teamなどのサブスクを併用する場合、単にsettings.jsonを書き換えるだけでなく、次の3点をセットにするのが安全です。

  1. SkillでProviderとプロジェクトの切り替えを定型化する
  2. /exitしてClaude Codeを起動し直す
  3. SessionStart Hookで現在の接続先を目視確認する

そして、作業を続けるときはシェルでclaudeを起動した後、Claude Code内の/resumeを使います。接続先を変えても会話を選び直せるため、実務の流れを大きく止めずに済みます。

最初は1つのテスト用GCPプロジェクトで確認しましょう。
Skillの変更差分とHookの表示が一致することを確認してから、本番プロジェクトやTeam環境へ展開すると安全です。

公式ドキュメント

タイトルとURLをコピーしました