CodeRouter概要
CodeRouter

CodeRouter

CodeRouterはcmuxの背後にあるモデルルーターです。コーディングエージェントはリクエストをCodeRouterに送り、CodeRouterは各リクエストをチームが追加したサブスクリプションまたはAPIキーに転送します。アカウントがレート制限を受けたり、拒否されたり、停止したりすると、CodeRouterは処理を別のアカウントに移すため、エージェントは動き続けます。

利用する理由

  • 複数のChatGPT、Claude、OpenCode GoのサブスクリプションとAPIキーをまとめ、チームで共有できます。
  • 1つのアカウントが使用量の上限に達しても、エージェントは作業を続けられます。
  • マシンに認証情報を保存せずに、cmux Cloudマシンにモデルへのアクセスを与えます。
  • アカウント、APIキー、Cloudマシンごとのトークン使用量を確認できます。

対応アカウント

各アカウントは、そのプロバイダーのAPIを使うエージェントに対応します。CodexとPiは1つのプールを共有し、Claude CodeはClaudeアカウントの別のプールを使います。

アカウント対応エージェント追加方法
ChatGPTサブスクリプション(個人またはチームワークスペース)Codex, Picr add codex
OpenAI APIキーCodex, PiCodeRouterダッシュボード
OpenRouter APIキーCodex, PiCodeRouterダッシュボード
OpenCode GoサブスクリプションOpenCodecr add opencode
Claude MaxまたはPro(Claude Codeのセットアップトークン)Claude Codecr add claude
Anthropic APIキーClaude Codecmux coderouter claude add api-key
Amazon Bedrockの認証情報Claude Codecmux coderouter claude add bedrock

CodeRouterダッシュボードでも、APIキー、Claudeトークン、Bedrockの認証情報を追加できます。ダッシュボードには、すべてのアカウントが状態、クールダウン、アクティブなセッションとともに表示されます: cmux.com/dashboard/coderouter

ルーティングの仕組み

各エージェントセッションは、アカウントが正常な間は同じアカウントにとどまり、プロバイダーのプロンプトキャッシュを有効に保ちます。新しいセッションは、アクティブなセッションが最も少ないアカウントに割り当てられます。

プロバイダーがレート制限を返したとき、認証情報を拒否したとき、または応答しないとき、CodeRouterはそのアカウントをクールダウンに入れ、別のアカウントでリクエストを再試行します。再試行はモデルの出力がエージェントに届く前に限られるため、ストリーミングが始まった応答が二重に送られることはありません。

プロバイダーへのリクエストはCodeRouterのホスト型サービスが行います。そのため、プロバイダーへの通信はMacやCloudマシンからではなく、CodeRouterから送られます。

Macでのクイックスタート

  1. CodeRouter CLIをインストールします。coderouterとcrの両方の名前でインストールされます。cmux crを実行することもでき、初回はインストールを提案します。
  2. cmuxアカウントでサインインします。cr loginはブラウザを開くので、表示されたコードを承認してください。
  3. サブスクリプションを追加します。cr addはプロバイダーのメニューを開き、cr add codexはブラウザでChatGPTにサインインします。
  4. cr codex、cr opencode、cr piでエージェントをCodeRouter経由で実行します。エージェント名の後の引数はそのままエージェントに渡されます。
curl -fsSL https://cmux.com/coderouter/install.sh | sh
cr login
cr add codex
cr codex

cmux Cloudマシンの場合

すべてのCloudマシンは作成時にCodeRouterに接続されます。マシン上のClaude Code、Codex、OpenCode、Piは、サインインや設定なしでチームのアカウントを使います。

Cloudマシンでのエージェントの設定方法

チームと共有

アカウントはサインイン中のチームに属します。cr org listでチームを表示し、cr org switchでcrが使うチームを切り替えます。cmux coderouterのコマンドは--team <id>を受け付けます。

組織に追加したアカウントはチームに共有され、すべてのメンバーとチームのCloudマシンが使えます。ダッシュボードの「非公開にする」で追加した人だけに限定でき、「チームと共有」で元に戻せます。

個人チームでは新しいアカウントは非公開で、非公開のアカウントも自分のCloudマシンで使われます。組織のCloudマシンは共有アカウントだけを使うため、非公開のアカウントはマシンで使う前に共有する必要があります。

チームのメンバーは誰でも、チームの共有アカウントを追加、名前変更、無効化、移管、削除できます。cr transferは確認後にアカウントを別のチームへ移します。

cr org list
cr org switch <name-or-id>
cr accounts
cr transfer [account] [--to <team>]
cr remove [account]

使用量と上限

各プロバイダーは、リクエストを処理したアカウントの使用量を、そのアカウント自身のプランと上限に従って計測します。CodeRouterは処理を複数のアカウントに分散しますが、個々のアカウントの上限は引き上げません。

crは各サブスクリプションのクォータ状態を表示します。--watchを付けると30秒ごとに更新し、--jsonを付けるとスクリプト用の出力になります。

cmux coderouter machinesは、各Cloudマシンの30日間のトークン使用量とAPI換算額を表示します。マシン内では、cmux coderouter usageがそのマシンの使用量を日、ワークスペース、エージェント、モデル別に表示します。

API換算額は公開価格に基づく見積もりです。請求額ではありません。

cr
cr usage --watch
cmux coderouter machines

認証情報とプライバシー

  • プロバイダーの認証情報は暗号化してから保存されます。保存された認証情報を返すCodeRouterのAPIやダッシュボード画面はありません。アカウントにはラベル、メールアドレス、またはマスクされたキーだけが表示されます。
  • cr addとcmux coderouter claude addは、シェル履歴に残るコマンド引数としてプロバイダーの認証情報を受け取りません。環境変数、標準入力、または非表示のプロンプトから読み取ります。
  • cr add codexとcr add opencodeは、ブラウザでプロバイダーにサインインします。cr codexはその実行に限ってCodeRouterの設定をCodexに渡し、通常のCodexのログインと設定は変更しません。
  • Cloudマシンは認証情報を保持しません。マシン上のエージェントは公開のプレースホルダーキーをCodeRouterの非公開アドレスに送り、マシンのネットワークエッジがそのマシンに紐づいた署名付きの認証情報を付加します。CodeRouterは他のマシンからのその認証情報を拒否し、マシンが削除されると失効させます。
  • CodeRouterのすべての応答には、リクエストを識別するx-coderouter-request-idヘッダーが含まれます。

次のステップ