# Claude Code CLI — Configuration with OmniRoute (日本語) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇹 [am](../../../am/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇦 [ar](../../../ar/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇦🇿 [az](../../../az/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇬 [bg](../../../bg/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇩 [bn](../../../bn/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇦 [bs](../../../bs/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇨🇿 [cs](../../../cs/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇩🇰 [da](../../../da/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇩🇪 [de](../../../de/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇬🇷 [el](../../../el/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇸 [es](../../../es/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇪 [et](../../../et/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇷 [fa](../../../fa/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇫🇮 [fi](../../../fi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇫🇷 [fr](../../../fr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇪 [ga](../../../ga/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [gu](../../../gu/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [ha](../../../ha/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇱 [he](../../../he/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [hi](../../../hi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇭🇷 [hr](../../../hr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇭🇺 [hu](../../../hu/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇦🇲 [hy](../../../hy/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇩 [id](../../../id/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [ig](../../../ig/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇹 [it](../../../it/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇬🇪 [ka](../../../ka/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇭 [km](../../../km/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [kn](../../../kn/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇷 [ko](../../../ko/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇹 [lt](../../../lt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇻 [lv](../../../lv/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [ml](../../../ml/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [mr](../../../mr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇾 [ms](../../../ms/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇹 [mt](../../../mt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇲 [my](../../../my/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇵 [ne](../../../ne/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇱 [nl](../../../nl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇴 [no](../../../no/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [or](../../../or/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [pa](../../../pa/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇭 [phi](../../../phi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇱 [pl](../../../pl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇹 [pt](../../../pt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇴 [ro](../../../ro/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇺 [ru](../../../ru/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇰 [si](../../../si/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇰 [sk](../../../sk/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇮 [sl](../../../sl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇸 [sr](../../../sr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇪 [sv](../../../sv/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇪 [sw](../../../sw/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [ta](../../../ta/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [te](../../../te/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇭 [th](../../../th/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇷 [tr](../../../tr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇰 [ur](../../../ur/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇺🇿 [uz](../../../uz/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇻🇳 [vi](../../../vi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [yo](../../../yo/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/CLAUDE-CODE-CONFIGURATION.md) --- **Claude Code** CLI(`claude`)を OmniRoute(ローカルまたはリモート VPS)に接続し、 Codex の設定と同様にモデルごとのプロファイルを使用します。 --- ## クイックスタート ```bash # ローカルの OmniRoute に接続して Claude Code を起動(アクティブなコンテキストを自動検出) omniroute launch # リモートの OmniRoute に接続(`omniroute connect ` の実行後は自動) omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx # モデルごとのプロファイルを生成してから、いずれかを使用して起動 omniroute setup-claude # ~/.claude/profiles//settings.json に書き込み omniroute launch --profile glm52 # OmniRoute 経由で glm/glm-5.2 を使用する Claude Code ``` --- ## Claudeコードがゲートウェイに接続する方法 Claudeコードは次のことを話します**AnthropicメッセージAPI**環境変数を持つカスタム エンドポイントを指します ( `--base-url`フラグはありません)。 | 変数 | 目的 | | -------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | ゲートウェイ ルートURL (Claudeコードは`/v1/messages`を追加します)。** `/v1`サフィックスはありません。** | | `ANTHROPIC_AUTH_TOKEN` | `Authorization: Bearer …` —として送信され、 OmniRouteアクセス トークン / APIキーを使用してください | | `ANTHROPIC_API_KEY` | 代替案: `x-api-key`として送信されます。両方がセットされた場合、 `ANTHROPIC_AUTH_TOKEN`勝ちます | | `ANTHROPIC_MODEL` | 特定のモデルを強制します ( `/model`ピッカーのデフォルトをオーバーライドします) | | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` →ネイティブ`/model`ピッカーは、 `/v1/models`からの`claude*`/`anthropic*`モデルをリストします。 | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 応答ごとの出力トークンの制限 (例: `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 自動圧縮のトークンしきい値 | > 環境変数が読み取られます**起動時に1回**変更後、 — Claudeコードを再起動します。 固定文字列ではなく循環する資格情報の場合は、 `~/.claude/settings.json`の`apiKeyHelper`を、現在の資格情報を stdout に出力するコマンドに設定します。 Claudeコードは、デフォルトで出力を 5 分間キャッシュし (`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`それをオーバーライドします)、値を`Authorization: Bearer`と`x-api-key`両方に送信します。スクリプトは資格情報を出力する必要があり、それ以外は何も出力しません—一緒にバナーを出力すると、v2.1.227 +ではヘルパーが失敗します。 This is how Entra ID SSO works: `scripts/cli/omniroute-sso.mjs token` prints a short-lived Entra access token that OmniRoute verifies instead of an API key. See [`docs/security/ENTRA_SSO.md`](../security/ENTRA_SSO.md). `omniroute launch`これらすべてを設定します。アクティブなコンテキストからベースURL +トークンを解決し (つまり、 `omniroute connect `の後に`omniroute launch`動作するだけです)、サーバーのヘルスチェックを行い、 `claude`を実行します。 --- ## ディスカバリエイリアス — `/model` ピッカーに Claude 以外のモデルを表示する Claude Code のゲートウェイモデルディスカバリは、`claude` または `anthropic` で始まる ID のみをリストアップします。そのため、`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` を設定しても、ネイティブの `/model` ピッカーには通常 OmniRoute の Claude/Anthropic モデル**のみ**が表示され、`kimi/kimi-k2.6` や `glm/glm-5.2` はルーティングが正常に機能していても一切表示されません。 OmniRoute は、有効になっている任意のモデル(およびコンボ)を `claude/…` ID の下にミラーリングできるため、そのフィルターを通過してピッカーに表示されるようになります: ``` kimi/kimi-k2.6 → claude/kimi/kimi-k2.6 "Kimi K2.6 (OmniRoute)" glm/glm-5.2 → claude/glm/glm-5.2 "GLM 5.2 (OmniRoute)" → claude/combo/custo-otimizado ``` Claude Code でこれらのいずれかを選択すると、OmniRoute はルーティング前に `claude/` ラッパーを取り除いて実際の ID に戻します。本物の `claude/` ID(実際の Claude OAuth プロバイダー)は常にそのまま変更されません。 デフォルトではベース ID のみがミラーリングされます。オプトインの `CATALOG_MIRROR_REFINEMENTS_ENABLED` フィーチャーフラグをオンにすると、カタログにすでにリストされている推論エフォートバリアント(例: `codex/gpt-6-sol-high`)も他の ID と同様にミラーリングされるため、Claude Code で明示的なエフォートレベルを選択できるようになります。また、リクエストパスで実体化できない組み込みの `auto/*` ID はミラーリングされません。エフォートバリアントがそもそもリストされるかどうかは、引き続き `OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS` によって制御されます。ミラーリングがベースカタログに存在しないバリアントを追加することはありません。 **これはデフォルトでオフ**になっており、3 段階のゲート(最も具体的な設定が優先)によって制御されるため、通常の OmniRoute が Claude Code を使用しないクライアントに対してカタログを二重に公開することはありません: | レベル | 場所 | | ------------ | ---------------------------------------------------------------------------------------- | | モデル | プロバイダー詳細ページ → モデルごとの「Expose in Claude Code」(Claude Code で公開)トグル | | プロバイダー | プロバイダー詳細ページ → プロバイダーレベルのトグル(そのすべてのモデルをカバー) | | グローバル | 設定 → フィーチャーフラグ → `EXPOSE_CC_DISCOVERY_ALIASES`(デフォルトはオフ) | `EXPOSE_CC_DISCOVERY_ALIASES` 環境変数はグローバルレベルを強制的にオンにし、ダッシュボードのオーバーライドよりも優先されます(有効になっている場合、フィーチャーフラグ画面に「active via environment variable」(環境変数経由で有効)という注記が表示されます)。プロバイダーごとおよびモデルごとのトグルはそこからさらに細かく調整します。たとえば、グローバルがオフで Kimi プロバイダーがオンの場合、Kimi のモデルのみが公開されます。 > ⚠️ **Claude 以外のモデルでのウィンドウ不一致。** Claude Code は、認識できない ID に対して 200K のコンテキストウィンドウを想定します(`/v1/models` から実際のウィンドウを読み取ることができません)。より大きなウィンドウを持つモデル(例: Kimi K2 の 256K)の場合、自動コンパクションが早すぎるタイミングで発動しないよう、`CLAUDE_CODE_AUTO_COMPACT_WINDOW` をモデルの実際のウィンドウより小さい値に設定してください。上記の生成済みプロファイルは、モデルごとにすでにこの設定を行っています。 --- ## ダッシュボードのオンボーディングブロック Claude ツールカード(**ダッシュボード → CLI Code**)には、このインスタンス用の正確な `settings.json` フラグメントが、検出エイリアス情報ボタンおよびコピーボタンとともに表示されます。 ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://<あなたの OmniRoute>:20128", "ANTHROPIC_AUTH_TOKEN": "<あなたの OmniRoute API キー>", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` ベース URL には、カードによって解決されたもの(入力したカスタムオーバーライドを含む)が使用され、すでに正規化されています。つまり、`/v1` サフィックスも末尾のスラッシュもありません。**キーが表示されることはありません**。このブロックではプレースホルダーが使用されるため、スクリーンショットや貼り付けたスニペットからキーが漏洩することはありません。プレースホルダーを自分のキーで置き換えてください。 実際のコンテキストウィンドウが 200K ではないモデルについては、同じ `env` ブロック内に `CLAUDE_CODE_AUTO_COMPACT_WINDOW` を追加してください。Claude Code は、認識できないすべての ID に対して 200K と想定するため、設定しない場合、自動コンパクションが誤ったタイミングで実行されます(前のセクションの警告を参照)。スニペットビルダーもこの値を受け付けるため、ターゲットモデルのウィンドウサイズを把握している呼び出し元は、その値を直接出力できます。 ソース:`src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet`(単体テスト済みの純粋なビルダー)。`ClaudeGatewayOnboardingBlock` によってレンダリングされます。 ### 1 つのアカウントに固定する(任意) すべての Claude Code リクエストを特定のプロバイダーアカウント経由で送信するには、同じ `env` ブロック内の `ANTHROPIC_CUSTOM_HEADERS` を使用して `x-omniroute-connection` ヘッダーを追加します。 ```jsonc "ANTHROPIC_CUSTOM_HEADERS": "x-omniroute-connection: " ``` プロバイダーページの接続行にある `xxxxxxxx…` チップから ID をコピーしてください。固定は単一モデル ID(`provider/model`)にのみ適用され、コンボには適用されません。正確なフォールバック動作については、[リクエスト単位のアカウント固定](../reference/API_REFERENCE.md#account-pinning-per-request)を参照してください。 --- ## プロファイル (`CLAUDE_CONFIG_DIR`) Claude Code には、Codex の `~/.codex/.config.toml` とは異なり、**ネイティブのプロファイルファイルはありません**。 標準的な仕組みは `CLAUDE_CONFIG_DIR` です。これはプロファイルごとに個別の設定ディレクトリを使用するもので、それぞれが独自の `settings.json`、認証情報、履歴、キャッシュを持ちます。 `omniroute setup-claude` は稼働中の `/v1/models` カタログを取得し、 モデルごとに 1 つのプロファイルを `~/.claude/profiles//settings.json` に書き込みます。 このとき、**`setup-codex` と同じ名前**(`glm52`、`kimi-k27`、`deepseek-pro`、…)が再利用されます。 ```jsonc // ~/.claude/profiles/glm52/settings.json { "$schema": "https://json.schemastore.org/claude-code-settings.json", "model": "glm/glm-5.2", "effortLevel": "xhigh", "env": { "ANTHROPIC_BASE_URL": "http://192.168.0.15:20128", "ANTHROPIC_MODEL": "glm/glm-5.2", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "190000", }, } ``` > **認証トークンがプロファイルに書き込まれることはありません。** > `omniroute launch --profile ` で起動するか(アクティブなコンテキストから `ANTHROPIC_AUTH_TOKEN` が注入されます)、 > 自分で `ANTHROPIC_AUTH_TOKEN` をエクスポートして > `CLAUDE_CONFIG_DIR=~/.claude/profiles/ claude` を実行してください。 **モデル検出後の自動同期(オプトイン)。** OmniRoute は、プロバイダーのモデル同期によって稼働中のカタログが変更されるたびに、同じ `~/.claude/profiles//settings.json` ファイルを自動的に再生成できます。これにより、新規モデルや名前が変更されたモデルのプロファイルを、コマンドを再実行せずに作成できます。 この機能は**デフォルトでは無効**です。**CLI Code ダッシュボード**(「CLI profile auto-sync」→ Claude Code)から切り替えるか、`OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true` を設定してください(デフォルトで有効な `CLI_ALLOW_CONFIG_WRITES` の設定にも従います)。 有効にした場合も、書き込まれるのはプロファイルファイルのみです。アクティブまたはデフォルトの Claude 設定、認証情報、`~/.claude/settings.json` が変更されることはありません。 ### プロファイルの生成と使用 ```bash # ローカルの OmniRoute omniroute setup-claude # リモート VPS(各プロファイルに VPS の URL を埋め込む) omniroute setup-claude --remote http://192.168.0.15:20128 --api-key oma_live_xxx # 一部のプロバイダーのみ omniroute setup-claude --only glm,kimi # このホストで検出されなかったローカル CLI プロバイダー(zcode、auggie、devin-cli-agentic、 # codex-app-server)のプロファイルも書き込む(ローカルターゲットではデフォルトでスキップ) omniroute setup-claude --include-local # 書き込まずにプレビュー omniroute setup-claude --dry-run # プロファイルを起動 omniroute launch --profile kimi-k27 ``` --- ## モデルティア(オプション) Claude Code は機能ティアに応じてルーティングします。ティアごとに異なるプロバイダーを使用したい場合は、env / settings を介して、それぞれを OmniRoute モデルにマッピングします。 ```bash export ANTHROPIC_DEFAULT_OPUS_MODEL="glm/glm-5.2" export ANTHROPIC_DEFAULT_SONNET_MODEL="kmc/kimi-k2.6" export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm/glm-4.7-flash" ``` 指定しない場合は、単一の `ANTHROPIC_MODEL`(プロファイルによって設定されるもの)がすべてに使用されます。 --- ## リモートモード `omniroute connect ` を実行すると([リモートモード](./REMOTE-MODE.md)を参照)、`omniroute launch` と `omniroute setup-claude` は自動的にそのリモートサーバーを対象とし、スコープ付きアクセストークンを使用します。追加のフラグは必要ありません。呼び出しごとに上書きするには、`--remote` / `--api-key` を使用します。 --- ## トラブルシューティング **Claude Code がゲートウェイを無視する** — `ANTHROPIC_BASE_URL` に **`/v1` が含まれていない**ことを確認し、`claude` を再起動してください(env は起動時に一度だけ読み込まれます)。`omniroute launch` はこれを自動的に処理します。 **`/model` の選択画面が空、またはゲートウェイモデルが表示されない** — Claude Code v2.1.219+ と `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` が必要です。選択画面には `claude*` / `anthropic*` のモデル ID のみが表示されます。それ以外のモデルを強制的に使用するには、`ANTHROPIC_MODEL=` を指定してください(プロファイルはこの方法を使用します)。 **`400 Ambiguous model 'claude-…'`** — Claude Code は常に**プレフィックスなし**のモデル ID(例:`claude-opus-4-8`)を送信するため、Claude Code(`cc/…`)と Claude(`claude/…`)の両方のプロバイダーが接続されている場合、プレフィックスなしの ID が2つのルートに一致し、OmniRoute は推測を行いません。次のいずれかの方法で修正できます。`ANTHROPIC_MODEL=cc/claude-opus-4-8` を指定してプレフィックス付き ID に固定するか、**プレフィックスなしの Claude モデルでは Claude Code を優先する**を有効にします。これは Claude プロバイダーページの切り替え項目、または `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true`(デフォルトではオフ。[環境](../reference/ENVIRONMENT.md)を参照)で設定でき、プレフィックスなしの `claude-*` ID を代わりに Claude Code へルーティングします。明示的なプロバイダープレフィックスが常に優先されます。 **認証エラー** — プロファイルにはトークンが保持されません。`omniroute launch --profile`(トークンを挿入します)を使用するか、`ANTHROPIC_AUTH_TOKEN` をエクスポートしてください。 **プロファイルが分離されない** — 各プロファイルは個別の `CLAUDE_CONFIG_DIR` です。セッション内で `echo $CLAUDE_CONFIG_DIR` を実行し、`~/.claude/profiles/` を指していることを確認してください。