Claude CodeでVertex AIとClaude Teamなどのサブスクを切り替える方法を、実際の業務フローをもとに解説します。設定変更をSkillにまとめ、起動時にはHookで接続先を表示。切り替え後も/resumeで元のセッションへ戻れます。
- 接続先は
~/.claude/settings.jsonの環境変数で切り替えられる - Vertex AI利用中は
/loginが無効になるため、設定変更後の再起動が必要 - 再開は
/exit→claude→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・Enterprise | Google Cloud上のClaudeモデル |
| 認証 | /loginでAnthropicアカウントへログイン | Google Cloudの認証情報を使用 |
| 利用管理 | Claudeのプラン利用枠 | GCPプロジェクト単位の請求・権限 |
| 主な設定 | Vertex AI用の設定を外す | CLAUDE_CODE_USE_VERTEX=1などを設定 |
Anthropic公式ドキュメントでは、Vertex AIを使う場合にCLAUDE_CODE_USE_VERTEX=1、ANTHROPIC_VERTEX_PROJECT_ID、CLOUD_ML_REGIONなどを設定します。これらはシェルの環境変数だけでなく、settings.jsonのenvにも保存できます。
/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も便利です。
GOOGLE_CLOUD_PROJECT、GCLOUD_PROJECT、GOOGLE_APPLICATION_CREDENTIALSで参照される認証情報などが設定されていると、ANTHROPIC_VERTEX_PROJECT_IDより優先されることがあります。JSONを書き換えたのにプロジェクトが変わらない場合は、シェルや認証情報側も確認してください。
Vertex AIからClaude Teamプランへ切り替える手順
/exit/login/resume1. Vertex AI用の設定を削除する
settings.jsonのenvから、少なくとも次の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を起動します。
claude3. /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.jsonのenvはClaude Codeプロセスの起動時に反映されます。稼働中のセッションでファイルだけを書き換えても、現在のプロセスが古い接続先を保持している可能性があります。
サブスクからVertex AIへ戻す場合
settings.jsonへCLAUDE_CODE_USE_VERTEX=1を追加する- プロジェクトIDとリージョンを設定する
/exitで終了するclaudeで再起動する- 起動時のHook表示を確認する
/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 globalSkillにファイル編集を任せる場合でも、最初の数回は差分を確認してください。組織管理の設定やシェル側の環境変数まで自動変更する設計にはせず、何を変更したかを表示させるのが安全です。
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.shsettings.jsonへSessionStart Hookを追加する
既存のhooks設定と統合し、次の内容を追加します。
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/show-provider.sh"
}
]
}
]
}
}SessionStartのstartupは新規起動、resumeは/resume、--resume、--continueなどでの再開時に発火します。スクリプトが標準出力へ書いた内容は、セッション開始時のコンテキストにも追加されます。
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点をセットにするのが安全です。
- SkillでProviderとプロジェクトの切り替えを定型化する
/exitしてClaude Codeを起動し直す- SessionStart Hookで現在の接続先を目視確認する
そして、作業を続けるときはシェルでclaudeを起動した後、Claude Code内の/resumeを使います。接続先を変えても会話を選び直せるため、実務の流れを大きく止めずに済みます。
最初は1つのテスト用GCPプロジェクトで確認しましょう。
Skillの変更差分とHookの表示が一致することを確認してから、本番プロジェクトやTeam環境へ展開すると安全です。


