このプロジェクトは Z.ai によってスポンサーされており、GLM CODING PLAN でのサポートを受けています。
GLM CODING PLAN は AI コーディング向けに設計されたサブスクリプションサービスで、月額わずか $10 から始まります。10 以上の人気 AI コーディングツール(Claude Code、Cline、Roo Code など)にアクセスできる GLM-4.7 & (GLM-5 は Pro ユーザーのみ利用可能)モデルを提供し、開発者に一流で高速、安定したコーディング体験を提供します。
GLM CODING PLAN で 10% 割引を取得:https://z.ai/subscribe?ic=8JVLJQFSKB
Claude Code リクエストをさまざまなモデルにルーティングし、リクエストをカスタマイズできる強力なツールです。
- モデルルーティング:ニーズに基づいてリクエストを異なるモデルにルーティングできます(例:バックグラウンドタスク、思考、長いコンテキスト)。
- マルチプロバイダーサポート:OpenRouter、DeepSeek、Ollama、Gemini、Volcengine、SiliconFlow などのさまざまなモデルプロバイダーをサポートしています。
- リクエスト/レスポンス変換:トランスフォーマーを使用して、異なるプロバイダーのリクエストとレスポンスをカスタマイズできます。
- 動的モデル切り替え:Claude Code 内で
/modelコマンドを使用してモデルをオンザフライで切り替えられます。 - CLI モデル管理:ターミナルから
ccr modelでモデルとプロバイダーを直接管理できます。 - GitHub Actions 統合:GitHub ワークフローで Claude Code タスクをトリガーできます。
- プラグインシステム:カスタムトランスフォーマーで機能を拡張できます。
まず、Claude Code がインストールされていることを確認してください:
npm install -g @anthropic-ai/claude-code次に、Claude Code Router をインストールします:
npm install -g @musistudio/claude-code-router~/.claude-code-router/config.json ファイルを作成・設定してください。詳しくは config.example.json を参照できます。
config.json ファイルにはいくつかの主要なセクションがあります:
-
PROXY_URL(オプション):API リクエストのプロキシを設定できます。例:"PROXY_URL": "http://127.0.0.1:7890"。 -
LOG(オプション):trueに設定するとログを有効にできます。falseに設定すると、ログファイルは作成されません。デフォルトはtrueです。 -
LOG_LEVEL(オプション):ログレベルを設定します。利用可能なオプションは:"fatal"、"error"、"warn"、"info"、"debug"、"trace"です。デフォルトは"debug"です。 -
ログシステム:Claude Code Router は 2 つの独立したログシステムを使用します:
- サーバーレベルログ:HTTP リクエスト、API 呼び出し、サーバーイベントは pino を使用して
~/.claude-code-router/logs/ディレクトリにccr-*.logのようなファイル名でログされます。 - アプリケーションレベルログ:ルーティング決定とビジネスロジックイベントは
~/.claude-code-router/claude-code-router.logにログされます。
- サーバーレベルログ:HTTP リクエスト、API 呼び出し、サーバーイベントは pino を使用して
-
APIKEY(オプション):リクエストを認証するためのシークレットキーを設定できます。設定された場合、クライアントはAuthorizationヘッダー(例:Bearer your-secret-key)またはx-api-keyヘッダーでこのキーを提供する必要があります。例:"APIKEY": "your-secret-key"。 -
HOST(オプション):サーバーのホストアドレスを設定できます。APIKEYが設定されていない場合、セキュリティ上の理由から不正アクセスを防ぐためホストは127.0.0.1に強制されます。例:"HOST": "0.0.0.0"。 -
NON_INTERACTIVE_MODE(オプション):trueに設定すると、GitHub Actions、Docker コンテナ、その他の CI/CD システムなどのインタラクティブでない環境との互換性が有効になります。これは適切な環境変数(CI=true、FORCE_COLOR=0など)を設定し、自動環境でプロセスがハングするのを防ぐために stdin ハンドリングを設定します。例:"NON_INTERACTIVE_MODE": true。 -
Providers:異なるモデルプロバイダーを設定するために使用されます。 -
Router:ルーティングルールを設定するために使用されます。defaultはデフォルトモデルを指定し、他のルートが設定されていない場合はすべてのリクエストに使用されます。 -
API_TIMEOUT_MS:API 呼び出しのタイムアウトをミリ秒で指定します。
Claude Code Router は、安全な API キー管理のための環境変数補間をサポートしています。config.json で $VAR_NAME または ${VAR_NAME} 構文を使用して環境変数を参照できます。
{
"OPENAI_API_KEY": "$OPENAI_API_KEY",
"GEMINI_API_KEY": "${GEMINI_API_KEY}",
"Providers": [
{
"name": "openai",
"api_base_url": "https://api.openai.com/v1/chat/completions",
"api_key": "$OPENAI_API_KEY",
"models": ["gpt-5", "gpt-5-mini"]
}
]
}これにより、機密の API キーを設定ファイルにハードコードする代わりに、環境変数に保持できます。補間はネストされたオブジェクトと配列を通じて再帰的に機能します。
以下に包括的な例を示します。
{
"APIKEY": "your-secret-key",
"PROXY_URL": "http://127.0.0.1:7890",
"LOG": true,
"API_TIMEOUT_MS": 600000,
"NON_INTERACTIVE_MODE": false,
"Providers": [
{
"name": "openrouter",
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
"api_key": "sk-xxx",
"models": [
"google/gemini-2.5-pro-preview",
"anthropic/claude-sonnet-4",
"anthropic/claude-3.5-sonnet",
"anthropic/claude-3.7-sonnet:thinking"
],
"transformer": {
"use": ["openrouter"]
}
},
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com/chat/completions",
"api_key": "sk-xxx",
"models": ["deepseek-chat", "deepseek-reasoner"],
"transformer": {
"use": ["deepseek"],
"deepseek-chat": {
"use": ["tooluse"]
}
}
},
{
"name": "ollama",
"api_base_url": "http://localhost:11434/v1/chat/completions",
"api_key": "ollama",
"models": ["qwen2.5-coder:latest"]
},
{
"name": "gemini",
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
"api_key": "sk-xxx",
"models": ["gemini-2.5-flash", "gemini-2.5-pro"],
"transformer": {
"use": ["gemini"]
}
},
{
"name": "volcengine",
"api_base_url": "https://ark.cn-beijing.volces.com/api/v3/chat/completions",
"api_key": "sk-xxx",
"models": ["deepseek-v3-250324", "deepseek-r1-250528"],
"transformer": {
"use": ["deepseek"]
}
},
{
"name": "modelscope",
"api_base_url": "https://api-inference.modelscope.cn/v1/chat/completions",
"api_key": "",
"models": ["Qwen/Qwen3-Coder-480B-A35B-Instruct", "Qwen/Qwen3-235B-A22B-Thinking-2507"],
"transformer": {
"use": [
[
"maxtoken",
{
"max_tokens": 65536
}
],
"enhancetool"
],
"Qwen/Qwen3-235B-A22B-Thinking-2507": {
"use": ["reasoning"]
}
}
},
{
"name": "dashscope",
"api_base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
"api_key": "",
"models": ["qwen3-coder-plus"],
"transformer": {
"use": [
[
"maxtoken",
{
"max_tokens": 65536
}
],
"enhancetool"
]
}
},
{
"name": "aihubmix",
"api_base_url": "https://aihubmix.com/v1/chat/completions",
"api_key": "sk-",
"models": [
"Z/glm-4.5",
"claude-opus-4-20250514",
"gemini-2.5-pro"
]
}
],
"Router": {
"default": "deepseek,deepseek-chat",
"background": "ollama,qwen2.5-coder:latest",
"think": "deepseek,deepseek-reasoner",
"longContext": "openrouter,google/gemini-2.5-pro-preview",
"longContextThreshold": 60000,
"webSearch": "gemini,gemini-2.5-flash"
}
}ルーターを使用して Claude Code を起動します:
ccr code注記: 設定ファイルを修正した後は、変更を反映させるためにサービスを再起動する必要があります:
ccr restart
より直感的なエクスペリエンスのために、UI モードを使用して設定を管理できます:
ccr uiこれにより、config.json ファイルを簡単に表示・編集できるウェブベースのインターフェースが開きます。
ターミナルベースのワークフローを好むユーザーのために、対話的な CLI モデルセレクターを使用できます:
ccr modelこのコマンドは以下を行うための対話的インターフェースを提供します:
- 現在の設定を表示:
- 設定されたすべてのモデルを参照 (default、background、think、longContext、webSearch、image)
- モデルを切り替える: 各ルータータイプで使用されるモデルを素早く変更
- 新しいモデルを追加: 既存のプロバイダーにモデルを追加
- 新しいプロバイダーを作成: 以下を含む完全なプロバイダー設定をセットアップ:
- プロバイダー名と API エンドポイント
- API キー
- 利用可能なモデル
- 以下をサポートするトランスフォーマー設定:
- 複数のトランスフォーマー (openrouter、deepseek、gemini など)
- トランスフォーマーオプション (例: カスタム制限付き maxtoken)
- プロバイダー固有のルーティング (例: OpenRouter プロバイダー設定)
CLI ツールはすべての入力を検証し、設定プロセスをガイドするための有用なプロンプトを提供することで、JSON ファイルを手動で編集することなく複雑なセットアップを簡単に管理できます。
プリセットを使用することで、設定を簡単に保存・共有・再利用できます。現在の設定をプリセットとしてエクスポートしたり、ファイルまたは URL からプリセットをインストールできます。
# 現在の設定をプリセットとしてエクスポート
ccr preset export my-preset
# メタデータ付きでエクスポート
ccr preset export my-preset --description "My OpenAI config" --author "Your Name" --tags "openai,production"
# ローカルディレクトリからプリセットをインストール
ccr preset install /path/to/preset
# インストール済みのすべてのプリセットをリスト表示
ccr preset list
# プリセット情報を表示
ccr preset info my-preset
# プリセットを削除
ccr preset delete my-presetプリセット機能:
- エクスポート: 現在の設定をプリセットディレクトリ (manifest.json を含む) として保存
- インストール: ローカルディレクトリからプリセットをインストール
- 機密データの処理: API キーやその他の機密データはエクスポート時に自動的にサニタイズされます (
{{field}}プレースホルダーとしてマーク) - 動的設定: プリセットはインストール時に必要な情報を収集するための入力スキーマを含めることができます
- バージョン管理: 各プリセットはアップデート追跡用のバージョンメタデータを含みます
プリセットファイル構造:
~/.claude-code-router/presets/
├── my-preset/
│ └── manifest.json # 設定とメタデータを含む
activate コマンドを使用すると、環境変数をシェルでグローバルに設定でき、claude コマンドを直接使用したり、Agent SDK を使用して構築されたアプリケーションと Claude Code Router を統合したりできます。
環境変数を有効化するには、以下を実行します:
eval "$(ccr activate)"




