GLM-5.2 / GLM-4.7-Flash モデルを Claude Code で使用するには
Claude Code CLI (claude) は、Anthropic 純正のモデルだけでなく、OpenRouter が提供する
Anthropic Messages API 互換エンドポイント("Anthropic Skin")を使うことで、任意のモデルを
バックエンドとして動かせる。今回は会話のメインモデルに z-ai/glm-5.2、タイトル生成などの
軽量な背景タスク用に z-ai/glm-4.7-flash を割り当てる設定を試したので、そのやり方をまとめる。
参考: https://openrouter.ai/docs/cookbook/coding-agents/claude-code-integration
前提条件
$env:OPENROUTER_API_KEYに OpenRouter の API キーが設定済みであること。- Claude Code に
claude.aiアカウントでログイン済みでも、環境変数による認証があればそちらが 優先される。その際⚠ claude.ai connectors are disabled ...という警告が出るが、動作には 影響しない。
必要な環境変数
| 変数 | 値 | 備考 |
|---|---|---|
ANTHROPIC_BASE_URL | https://openrouter.ai/api | OpenRouter の Anthropic 互換エンドポイント |
ANTHROPIC_AUTH_TOKEN | OpenRouter の API キー | Authorization: Bearer として送られる |
ANTHROPIC_API_KEY | ""(明示的に空文字) | 未設定/非空だと認証方式が競合してエラーになる |
ANTHROPIC_MODEL | z-ai/glm-5.2 | メインの会話モデル。OpenRouter 上のモデル ID をそのまま指定する |
ANTHROPIC_SMALL_FAST_MODEL | z-ai/glm-4.7-flash | タイトル生成など軽量な背景タスク用のサブモデル |
メイン/サブモデルの使い分け
ANTHROPIC_MODEL はメインの会話モデルのみを制御する。タイトル生成や auto-mode 判定など、
Claude Code が内部的に使う軽量・高速なサブモデルは ANTHROPIC_SMALL_FAST_MODEL で指定する。
この変数を設定しておけば、それだけで軽量タスク用のモデルを確実に切り替えられる。
セットアップ方法
方法A: プロジェクト単位で有効にする(推奨)
リポジトリの .claude/settings.local.json に以下を設定する。
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_MODEL": "z-ai/glm-5.2",
"ANTHROPIC_SMALL_FAST_MODEL": "z-ai/glm-4.7-flash"
}
}
ANTHROPIC_AUTH_TOKEN(秘密情報)はファイルに書かず、シェル側で OPENROUTER_API_KEY から
供給する。PowerShell プロファイル($PROFILE)に以下を一度追加しておけば、以後シェルを開くたびに
自動で設定される。
$env:ANTHROPIC_AUTH_TOKEN = $env:OPENROUTER_API_KEY
bash/zsh の場合は ~/.bashrc や ~/.zshrc に:
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
この状態でこのディレクトリ内で claude -p "..." を実行すると、.claude/settings.local.json
の設定が自動的に読み込まれ、OpenRouter 経由でメイン/サブ両モデルが使われる。他のプロジェクトの
Claude Code 実行には影響しない。
方法B: 特定のコマンドだけ一時的に切り替える
シェルプロファイルを変更したくない場合、その場で環境変数を指定して実行する。
PowerShell:
$env:ANTHROPIC_BASE_URL = "https://openrouter.ai/api"
$env:ANTHROPIC_AUTH_TOKEN = $env:OPENROUTER_API_KEY
$env:ANTHROPIC_API_KEY = ""
$env:ANTHROPIC_MODEL = "z-ai/glm-5.2"
$env:ANTHROPIC_SMALL_FAST_MODEL = "z-ai/glm-4.7-flash"
claude -p "1+1は?"
bash:
ANTHROPIC_BASE_URL="https://openrouter.ai/api" \
ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" \
ANTHROPIC_API_KEY="" \
ANTHROPIC_MODEL="z-ai/glm-5.2" \
ANTHROPIC_SMALL_FAST_MODEL="z-ai/glm-4.7-flash" \
claude -p "1+1は?"
方法C: マシン全体のデフォルトにする(非推奨)
上記の変数を Windows のユーザー環境変数として永続化すれば、どのターミナル・どのプロジェクトでも デフォルトで OpenRouter/GLM 経由になる。ただし他のプロジェクトで通常の Claude(Anthropic) を 使うつもりの操作にも影響してしまうため、意図せず全体のデフォルトを変えたくない場合は方法A/Bを推奨。
動作確認
以下のコマンドで応答および課金ログ (modelUsage) に z-ai/glm-5.2 が記録されることを確認した。
claude -p "Reply with exactly: OK-GLM-TEST" --output-format json
{
"result": "OK-GLM-TEST",
"modelUsage": {
"z-ai/glm-5.2": { "inputTokens": 3272, "outputTokens": 8, "costUSD": 0.028336 }
}
}
また、少し長めのプロンプトで --debug all を付けて実行すると、メインモデルとサブモデルへの
ディスパッチが両方とも実際に発生することも確認できた。
[API:timing] dispatching to firstParty model=z-ai/glm-4.7-flash
[API:timing] dispatching to firstParty model=z-ai/glm-5.2
1 回のプロンプトに対し、軽量タスクは z-ai/glm-4.7-flash、本編の応答は z-ai/glm-5.2 と、
モデルが正しく使い分けられている。
既知の注意点: 対話型セッションでのリクエスト増殖
対話型の claude セッション(VS Code から開いた場合や TTY 上で直接起動した場合)では、軽く
入力しただけで OpenRouter の Activity ログ上に同一分内で 13 回もの API 呼び出しが記録された。
そのうち 12 回はサブモデル(GLM 4.7 Flash)宛ての小さな呼び出しで、最後の 1 回だけメインモデル
(GLM 5.2)による本編の応答だった。合計コストは約 $0.0094 に収まっている。
一方、claude -p(非対話・print モード)による単発実行では、この増殖はほぼ発生しないことを
確認済み。コストを抑えたい用途では -p を使う方が安全。対話型セッションを常用する場合は、
ANTHROPIC_SMALL_FAST_MODEL を設定して安価なモデルにリクエストを流しつつ、OpenRouter の
Activity ダッシュボードで消費を監視するとよい。
トラブルシューティング
⚠ claude.ai connectors are disabled because ANTHROPIC_API_KEY or another auth source is set...という警告は無視してよい(claude.ai のコネクタ機能が無効になるだけで、API 呼び出し自体は成功する)。ANTHROPIC_API_KEYを空文字ではなく未設定のままにすると認証方式が曖昧になりエラーになることがある。 必ず""を明示的に設定すること。- 別モデルに切り替えたい場合は
ANTHROPIC_MODELを OpenRouter 上のモデル ID (例:anthropic/claude-opus-4-8,openai/gpt-5など)に変更するだけでよい。 - ツール検索の最適化(
ENABLE_TOOL_SEARCH)は非 Anthropic ホストではデフォルト無効になる。 必要ならENABLE_TOOL_SEARCH=trueを追加する。