コンテンツにスキップ
OmniRoute source

Claude Code CLI — Configuration with OmniRoute (日本語)

ターミナルウィンドウ
# ローカルの OmniRoute に接続して Claude Code を起動(アクティブなコンテキストを自動検出)
omniroute launch
# リモートの OmniRoute に接続(`omniroute connect <host>` の実行後は自動)
omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx
# モデルごとのプロファイルを生成してから、いずれかを使用して起動
omniroute setup-claude # ~/.claude/profiles/<name>/settings.json に書き込み
omniroute launch --profile glm52 # OmniRoute 経由で glm/glm-5.2 を使用する Claude Code

Claude Code がゲートウェイに接続する仕組み

Section titled “Claude Code がゲートウェイに接続する仕組み”

Claude Code は Anthropic Messages API と通信し、環境変数を使用してカスタム エンドポイントに接続します(--base-url フラグはありません)。

変数 用途
ANTHROPIC_BASE_URL ゲートウェイのルート URL(Claude Code が /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 自動コンパクションを実行するトークンしきい値

環境変数は起動時に一度だけ読み込まれます。変更後は Claude Code を再起動してください。

omniroute launch は、これらをすべて自動的に設定します。アクティブなコンテキストから ベース URL とトークンを解決するため、omniroute connect <vps> の後に omniroute launch を実行するだけで動作します。さらに、サーバーのヘルスチェックを行い、 claude を exec します。


ディスカバリーエイリアス — Claude 以外のモデルを /model ピッカーに表示

Section titled “ディスカバリーエイリアス — Claude 以外のモデルを /model ピッカーに表示”

Claude Code のゲートウェイモデルディスカバリーでは、ID が claude または anthropic で始まるモデルのみが表示されます。そのため、 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)"
<コンボ "custo-otimizado"> → claude/combo/custo-otimizado

Claude Code でこれらのいずれかを選択すると、OmniRoute はルーティング前に claude/ ラッパーを取り除き、実際の ID に戻します。一方、本物の claude/&lt;real-claude-model&gt; ID(実際の Claude OAuth プロバイダー)は常にそのまま維持されます。

この機能はデフォルトで無効であり、3 段階のゲートによって制御されます (より具体的な設定が優先されます)。そのため、Claude Code を使用しないクライアントに 対して、通常の OmniRoute がカタログを二重に表示することはありません。

レベル 場所
モデル プロバイダー詳細ページ → モデルごとの「Claude Code で公開」トグル
プロバイダー プロバイダー詳細ページ → プロバイダー単位のトグル(全モデルが対象)
グローバル 設定 → 機能フラグ → EXPOSE_CC_DISCOVERY_ALIASES(デフォルトではオフ)

EXPOSE_CC_DISCOVERY_ALIASES 環境変数を設定すると、グローバルレベルが強制的に有効になり、 ダッシュボードでの上書きよりも優先されます。この場合、機能フラグ画面には 「環境変数によって有効」という注記が表示されます。そのうえで、プロバイダー単位および モデル単位のトグルによって、さらに設定を絞り込めます。たとえば、グローバルがオフで Kimi プロバイダーがオンの場合、Kimi のモデルだけが公開されます。

⚠️ Claude 以外のモデルにおけるウィンドウの不一致。 Claude Code は、認識できない ID に対して 200K のコンテキストウィンドウを想定します(/v1/models から実際の ウィンドウサイズを読み取ることはできません)。より大きなウィンドウを持つモデル (例:Kimi K2 の 256K)では、自動コンパクションが早すぎるタイミングで実行されないよう、 CLAUDE_CODE_AUTO_COMPACT_WINDOW をモデルの実際のウィンドウサイズより小さい値に 設定してください。上記で生成されるプロファイルでは、モデルごとにこの設定が すでに適用されています。


ダッシュボード上のオンボーディングブロック

Section titled “ダッシュボード上のオンボーディングブロック”

Claude ツールカード(ダッシュボード → CLI Code)には、このインスタンス用の正確な settings.json フラグメントが、検出エイリアスの情報ボタンとコピーボタンの横に表示されます。

{
"env": {
"ANTHROPIC_BASE_URL": "http://<your OmniRoute>:20128",
"ANTHROPIC_AUTH_TOKEN": "<your OmniRoute API key>",
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1",
},
}

ベース URL には、カードによって解決された URL(入力したカスタムオーバーライドを含む)が使用され、すでに正規化されています。/v1 サフィックスも末尾のスラッシュもありません。キーが表示されることはありません。このブロックにはプレースホルダーが設定されているため、スクリーンショットや貼り付けたスニペットからキーが漏洩することはありません。プレースホルダーを自分のキーで置き換えてください。

実際のコンテキストウィンドウが 200K ではないモデルについては、同じ env ブロックの下に CLAUDE_CODE_AUTO_COMPACT_WINDOW を追加してください。Claude Code は認識できないすべての id に対して 200K を想定するため、設定しないと自動コンパクションが誤ったタイミングで実行されます(前のセクションの警告を参照してください)。スニペットビルダーもこの値を受け付けるため、ターゲットモデルのウィンドウサイズを把握している呼び出し元は、その値を直接出力できます。

ソース: src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet(純粋なビルダー、単体テスト済み)。ClaudeGatewayOnboardingBlock によってレンダリングされます。


Claude Code には(Codex の ~/.codex/&lt;name&gt;.config.toml とは異なり)ネイティブのプロファイルファイルはありません。標準的な仕組みは CLAUDE_CONFIG_DIR です。プロファイルごとに個別の設定ディレクトリを用意し、それぞれ独自の settings.json、認証情報、履歴、キャッシュを保持します。

omniroute setup-claude は稼働中の /v1/models カタログを取得し、モデルごとに 1 つのプロファイルを ~/.claude/profiles/&lt;name&gt;/settings.json に書き込みます。名前には setup-codex と同じ名前(glm52、kimi-k27、deepseek-pro、…)が再利用されます。

~/.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 &lt;name&gt; で起動するか(アクティブなコンテキストから ANTHROPIC_AUTH_TOKEN が注入されます)、自分で ANTHROPIC_AUTH_TOKEN をエクスポートしてから CLAUDE_CONFIG_DIR=~/.claude/profiles/&lt;name&gt; claude を実行してください。

モデル検出後の自動同期(オプトイン)。 OmniRoute は、プロバイダーモデルの同期によって稼働中のカタログが変更されるたびに、同じ ~/.claude/profiles/&lt;name&gt;/settings.json ファイルを自動的に再生成できます。これにより、コマンドを再実行しなくても、新規モデルや名前が変更されたモデルのプロファイルが作成されます。これはデフォルトでは無効です。CLI Code ダッシュボードから切り替えるか(「CLI プロファイルの自動同期」→ Claude Code)、OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true を設定してください(デフォルトで有効な CLI_ALLOW_CONFIG_WRITES の設定も適用されます)。有効にした場合、プロファイルファイルのみが書き込まれます。アクティブまたはデフォルトの Claude 設定、認証、~/.claude/settings.json が変更されることはありません。

ターミナルウィンドウ
# ローカルの 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
# 書き込まずにプレビュー
omniroute setup-claude --dry-run
# プロファイルを起動
omniroute launch --profile kimi-k27

Claude Code は機能ティアに応じてルーティングします。ティアごとに異なるプロバイダーを使用したい場合は、env / settings を介して、それぞれを OmniRoute モデルにマッピングします。

ターミナルウィンドウ
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 &lt;host&gt; を実行すると(リモートモードを参照)、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=&lt;id&gt; を指定してください(プロファイルはこの方法を使用します)。

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(デフォルトではオフ。環境を参照)で設定でき、プレフィックスなしの claude-* ID を代わりに Claude Code へルーティングします。明示的なプロバイダープレフィックスが常に優先されます。

認証エラー — プロファイルにはトークンが保持されません。omniroute launch --profile(トークンを挿入します)を使用するか、ANTHROPIC_AUTH_TOKEN をエクスポートしてください。

プロファイルが分離されない — 各プロファイルは個別の CLAUDE_CONFIG_DIR です。セッション内で echo $CLAUDE_CONFIG_DIR を実行し、~/.claude/profiles/&lt;name&gt; を指していることを確認してください。


OmniRoute ソースコード (a58000c7685f)

HagiCode

HagiCode は構造化ワークフロー、マルチエージェント実行、Hero Dungeon ビューを備えたエージェント型コーディングワークスペースです。

よりスマートで速く、楽しいエージェント型ワークフローで、使いやすいソフトウェアを形にします。

HagiCode ライトテーマのメイン画面
  • Smart構造化ワークフローは意図をアイデアから変更のリリースまで実行可能な道筋にします。
  • Efficientマルチエージェントのワークフローで調査、実装、レビューを並行して進めます。
  • FunHero Dungeon により長時間のコーディングを視覚的で協力的な体験にします。
HagiCode を見る