ウェブダッシュボード
opencodex はプロキシが提供するローカルウェブダッシュボード(gui/ 配下の Vite/React アプリ)を含みます。
プロバイダー、Codex/ChatGPT アカウント、カタログモデル、サイドカー、サブエージェント設定、リクエストトラフィックを最も
早く管理できる画面です。
ocx guiブラウザで http://localhost:<port> を開きます。プロキシがオフなら先に自動で起動します。
開発中は実行中のプロキシと GUI 開発サーバーを別々に起動できます。
ocx startbun run dev:guilocalhost や 127.0.0.1 などのループバックアドレスで開いたダッシュボードは、短時間有効な GUI セッションを自動的に受け取るため、通常はトークン入力が不要です。ループバック以外のホストで公開する場合は、OPENCODEX_ADMIN_AUTH_TOKEN、または自動生成される ~/.opencodex/admin-api-token ファイルの管理トークンが必要です。
リモートダッシュボードでは標準のパスワードフォームが表示され、ブラウザのパスワードマネージャーで保存・自動入力できます。ダッシュボード自体はトークンをメモリ内だけに保持し、localStorage や sessionStorage には書き込みません。保存するかどうかはブラウザまたはパスワードマネージャーだけが決定します。
| 領域 | 機能 |
|---|---|
| ダッシュボード要約 | マルチエージェントモード、オンライン状態、バージョン、稼働時間、プロバイダー数、直近30日トークン合計、アクティブプロバイダーと利用可能なネイティブ/ルーティングモデルを表示します。 |
| サブエージェント委任 | OpenCodex の委任ガイダンスとオプションの Codex ネイティブサブエージェント既定値で共有するネイティブ/ルーティングモデルと任意の推論強度を選びます。スポーンごとのルーターではありません。下記を参照してください。 |
| サイドカー | ウェブ検索モデルと強度、画像説明モデルを選択します。次回リクエストから適用されます。 |
| メンテナンス | Codex モデルカタログを再同期し、プロジェクトローカル設定のバイパス警告を確認し、latest/preview 更新を照会またはオプションのプロキシ再起動と共にインストールします。 |
| 起動安全性 | 注入された Codex ルーティングが再起動後も機能するか、サービスと launcher shim の状態、正確な修復コマンドと共に表示します。 |
| Windows トレイ | ユーザーのログイントレイを導入し、プロキシ開始・停止・再起動・ダッシュボード・状態をクリックで操作します。トレイは再起動サービスではありません。 |
| Codex 自動起動 | インストール済み Codex launcher shim に ocx ensure の実行を許可します。このトグルは shim やバックグラウンドサービスをインストールしません。 |
| プロバイダー | プロバイダーを追加、編集、既定に設定(有効なプロバイダーのみ)、有効化/無効化、削除し、対応する OAuth アカウントプールと API キープールを管理します。現在の既定を削除すると、残っている最初の有効なプロバイダーに切り替わります(存在する場合)。なければ削除は拒否され、現在の既定は保持されます。Claude(Anthropic)OAuth プールでは、ログイン済みの各アカウントに独自の 5 時間・週間レート制限バーが表示され(利用量は資格情報単位)、取得失敗時は直近の値を保持して一時利用不可と表示します。 |
| プロバイダー追加 | レジストリベースのプリセットからアカウントログイン、API キーサービス、ローカルサーバー、custom エンドポイントを検索します。 |
| Codex 認証 | ChatGPT/Codex プールアカウントを追加し、次回セッションアカウントを選び、5 時間 / 週間 / 30 日クォータを更新し、クォータ自動切り替えのオン/オフと 1~100% のしきい値、一時的失敗フェイルオーバーを設定します。 |
| サブエージェント | spawn_agent オーバーライド一覧にネイティブまたはルーティングモデルを最大 5 つまで優先公開します。 |
| モデル | ネイティブ GPT とルーティングモデルをオン/オフし、プロバイダー許可リストとコンテキスト上限、v1/base/v2、v2 スレッド数を設定します。 |
| ログ | トークン、要求された強度と(利用可能な場合は)実際に送信された強度、実際のモデル、プロバイダー、状態、リクエスト ID、所要時間、エラー詳細を含む最近のリクエストを自動更新します。アダプターが reasoning パラメーターを送信した場合、詳細表示に正確な wire field も表示されます。 |
| 使用量 / デバッグ | トークン使用量の測定範囲と推移を見るか、オプションのプロバイダートランスポート/使用量抽出診断をオンにします。 |
| ストレージ | CODEX_HOME のディスク内訳(セッション、アーカイブ、DB、添付)を読み取り専用で表示。任意のアーカイブクリーンアップ: 最古 N% をプレビューし、既定では CODEX_HOME/.trash へ隔離、または明示チェックで完全削除。自動クリーンアップ方針はオプトインで既定 OFF(storageCleanupPolicy.enabled)。Storage ページでしきい値/目標/スケジュール/モードを設定するか 今すぐ実行。隔離エントリは Storage ページから復元可能(JSONL + スレッド)。アクティブセッションは読み取り専用。最新/アクティブな state_*.sqlite がロック中はクリーンアップと復元を拒否。 |
| 停止 | プロキシとインストールされたバックグラウンドサービスを正常終了しネイティブ Codex を復元した後終了します(POST /api/stop)。ただし Windows のタスク スケジューラ バックエンドではダッシュボードが拒否し、ocx stop の実行を促します。タスク終了後もラッパーがプロキシを再起動しうるため、クライアント設定を戻す前にその再起動区間を確認できるのはプロキシの外で動く stop だけです。拒否されたときは何も変更されません。 |
リクエストログの絞り込み
Section titled “リクエストログの絞り込み”Logsではサーフェス、インターセプトされたリクエスト、プロバイダー、完全なモデル名、ステータス、時間、速度、会話IDを組み合わせて、読み込み済みログを絞り込みます。選択肢にはフォールバック試行も含まれます。モデル名は大文字小文字と前後の空白を無視しますが、部分一致ではありません。ログから消えた選択肢は全件に戻ります。
時間は直近15分・1時間・1日で、Logsタブでは自動更新をオフにしても30秒ごとに更新します。速度はリクエスト全体の時間あたりの毎秒出力トークン数で、15未満、15以上50未満、50以上です。速度フィルター中は測定不能な行を除外します。成功は2xx、エラーは4xx/5xxです。
一致件数と読み込み総数を表示し、リセットで全行を復元します。一致なしと空ログを区別します。サーフェスは矢印キーとHome/Endで操作できます。読み込み範囲外の履歴は検索しません。
セクションへのリンク
Section titled “セクションへのリンク”レイアウトは 1 つだけなので、切り替える設定はありません。代わりに Dashboard の各セクションに URL があります。#dashboard は Overview、#dashboard/providers と #dashboard/models は残りの 2 つです。再読み込み・ブックマーク・戻る操作のいずれでも、表示していたセクションが保たれます。Logs も #logs と #logs/debug で同じように動作します。以前の #providers/workspace のブックマークは #providers に移動します。
ログと使用量のコスト値は報告されたトークンで計算した API 定価換算値です。請求明細や 実際の請求証拠ではなく、サブスクリプション使用量またはプロバイダークレジットが代わりに適用される場合があります。
モデルの表示
Section titled “モデルの表示”モデル スイッチは Codex での最終的な表示状態を示します。ルーティングモデルはプロバイダーの allowlist に含まれる(または allowlist がない)うえで、無効化されていない場合だけオンになります。オン操作は両方のフィルターを原子的に調整し、すべてオン は allowlist を解除して新しいモデルも含めます。
プロバイダー画面でモデルを管理する
Section titled “プロバイダー画面でモデルを管理する”プロバイダーの モデル タブで Delete(削除) を選ぶと、保存されたカスタム定義を削除します。 元のネイティブモデルやライブ検出されたモデルが再び表示され、モデル数が変わらない場合があります。 非表示 はカタログの表示だけを変更し、定義の削除や直接ルーティングのポリシー変更は行いません。 モデルで表示を管理 から モデル ページを開き、表示を復元できます。プロバイダーのタブが 空になっていても、この操作は利用できます。
追加 はカスタム定義を保存しますが、既存の非表示設定やプロバイダーの選択ルールを解除しません。 保存後もモデルが非表示のままになることがあります。すでに登録されたモデルの表示は モデル で 管理してください。保存が確認できた場合、カタログ更新に失敗しても保存自体は完了しています。 再追加せず、更新の案内に従ってください。変更を確認できない場合は、モデルの状態を再読み込みしてから 再試行してください。
プロバイダーのモデル数は、サーバーが返した現在のモデル一覧のうち、無効でない重複なしの項目数です。 検索や表示件数の制限を適用する前に数えます。許可リストの件数やライブ検出件数ではなく、上流で検出した 項目であることを示す値でもありません。選択バッジと検出情報は、この件数とは別に扱います。
委任セレクターとスポーンルーティングの違い
Section titled “委任セレクターとスポーンルーティングの違い”ダッシュボードの サブエージェント委任 セレクターは injectionModel とオプションの injectionEffort を
保存します。選択値は OpenCodex が作成する委任ガイダンスで使われ、そのガイダンスは
multiAgentGuidanceEnabled で別に制御されます。モデルを消去すると保存済み effort も消去され、
ネイティブ既定値の同期も無効になります。
Codex ネイティブサブエージェント既定値として使用を有効にすると、OpenCodex が有効な Codex
ルーティングを管理している場合、次回の sync または restart で選択したモデルと effort がネイティブ
[agents] 既定値として適用されます。外部のユーザー管理 provider 設定は変更しません。この既定値は新しく作成される
Codex タスクだけに適用され、このオプション自体が委任を発生させることはありません。既存のユーザー所有
[agents] 既定値は上書きせず保持するため、要求した既定値と実際の Codex 既定値が異なる場合があります。
Remote Hub のセッション、キー、使用量
Section titled “Remote Hub のセッション、キー、使用量”ダッシュボードの管理プレーンと client→hub のモデル通信は別経路です。Integrations → API Keys は保留中の更新を表示し、新しい秘密値を一度だけ示し、明示的な確定または中止を要求します。ブラウザーのログアウトは現在のセッションだけを無効にします。接続中の使用量は hub で apiKeyId に絞り、切断後はローカル記録を使い、ミラーリングしません。
セレクターには有効化されたネイティブおよびルーティングモデルと Codex グローバル推論段階が表示されます。API は 選んだ強度がグローバル段階にあるか検査し、Codex は再び対象カタログ項目がその強度をサポートするか 検査します。
Codex 認証とアカウントプール
Section titled “Codex 認証とアカウントプール”Codex 認証ページはネイティブ ChatGPT/Codex ルートを管理します。
プールモードはメインと追加した Codex アカウントを横断して選択します。Direct は呼び出し元またはメインのログインのみを使います。送信中のリクエストは取得済みの資格情報を維持し、401/403 の再認証や 429 の cooldown が affinity を解除して別の適格なプールアカウントへ切り替えることがあります。これは openai-apikey や他のプロバイダーとは別の仕組みです。
- アカウントを直接選ぶとすぐに反映されます。すでにアカウントが紐付いた thread も次のリクエストで選んだ アカウントに移り、すでに送信中のリクエストだけが取得済みのアカウントを使い続けます。手動で選んだアカウントは固定もされます。 カードに 固定中 バッジが付き、そのアカウントが使い切られるか、別のアカウントを選ぶか、いずれかの アカウントの選択順序を変更するまで、より上位の選択順序が割り込むことはありません。
- 各アカウントカードには 選択順序 のコントロール(最初 / 早め / 標準 / 遅め / 最後)があります。
順序が上のものから使われ、その上にあるアカウントがすべて使い切られるか利用できなくなって初めて
下の順序へ下がります。順序を変更すると 次の未バインドリクエスト から適用され、すでにアカウントに
紐づいた thread を移動させることはありません。Codex Desktop(メイン)アカウントも同じように
並べ替えられるので、最後 にして予備に回せます。
ocx account priorityでプリセット以外の値を設定した場合も、カード上に 選択肢として残ります。 - Thread affinity がリクエストごとにアカウントが揺れるのを防ぎます。クォータ自動切り替えがオンなら長く 実行される thread も定期的に再評価します。関連使用量がしきい値以上で、使用量が確実により低い 健全アカウントがあればそのアカウントに再紐付けできます。
- 新規セッションは使用量が最も低い健全アカウントを選べます。有料プランは既知の 5 時間、週間、30 日 枠のうち最も高い使用率でスコア付けし、Go/Free プランは 30 日枠のみ使います。
- クォータ更新はアカウント使用量を即座に再読み込みし、ルーティングと画面のアカウントカードが同じ値を見るようにします。
- プールリクエストログにはメールの代わりに
p3fa91cのような不透明なラベルを使います。 - モデルピッカーで使用する Codex アカウントを指定 は明示的な opt-in です。有効にすると、通常の
GPT picker 項目が公開 account selector ごとの項目に置き換わります。選択した会話はそのアカウントに
固定され、Pool のローテーションや fallback は行われず、active Pool account も変わりません。組み込みの
Codex App login には専用 selector があり、生成 map では通常
main、衝突時はmain-2のような安全な suffix が使われます。追加アカウントには安定した privacy-safe label が割り当てられます。 既存の会話と保存済みのモデル選択は引き続きルーティングされます。無効にしても account、selector、 exact route は削除されず、通常の GPT id は従来どおり Pool / Direct で動作します。 - account の追加・削除と picker 設定は catalog refresh より先に保存されます。refresh が完了できない場合は
amber の回復案内が表示されます。変更自体は保存済みなので、
ocx syncで refresh を再試行してください。
Providers の概要は、Pool モードの使用状況を表示専用の重み付き容量推定値として別途まとめ、現在の 有効アカウントの生のクォータと次の容量回復も併せて表示します。表示される項目、不完全な対象範囲の 意味、ルーティング上の境界については、プロバイダー概要のプール容量を参照してください。
ダッシュボードがプロキシと通信する方式
Section titled “ダッシュボードがプロキシと通信する方式”GUI はプロキシの JSON 管理 API を使うシンクライアントです。主なエンドポイントは次のとおりです。
| エンドポイント | 用途 |
|---|---|
GET / PUT /api/settings |
設定を読み、Codex 自動起動、stream/memory、account-targeting picker の表示を更新します。 |
GET /api/startup-health |
秘密情報を含まないルーティング、サービス、shim、再起動安全性診断を読み取ります。 |
GET / POST /api/windows-tray |
Windows トレイの導入・表示状態を読み取り、install、start、stop、uninstall を実行します。 |
POST /api/sync |
共有モデルカタログを再構築し Codex モデルキャッシュを古い状態としてマークします。 |
GET /api/update/check · POST /api/update/run · GET /api/update/status |
自己更新作業を確認、実行、追跡します。 |
GET / PUT /api/sidecar-settings |
検索/ビジョンサイドカーモデル設定を読むか変えます。 |
GET / PUT /api/injection-model |
委任ガイダンスのモデル/effort、ガイダンストグル、Codex ネイティブサブエージェント既定値の同期トグルを読み取りまたは変更します。 |
GET / PUT /api/v2 |
サーフェスモード、Codex 機能フラグ、v2 スレッド上限を読むか変えます。 |
GET /api/providers · POST /api/providers · PATCH /api/providers?name=... · DELETE /api/providers?name=... |
プロバイダー一覧の参照、追加/差替、有効化/無効化、既定設定、削除。PATCH は有効なプロバイダーに対して { "setDefault": true } のみ。POST は作成/差替時に setDefault を含められ、こちらも有効なプロバイダーのみ。現在の既定を削除すると、残っている最初の有効なプロバイダーに再割当てします(存在する場合)。なければ 409(code: "last_provider")を返し、現在の既定を保持します。 |
GET /api/models · PUT /api/disabled-models |
ネイティブ/ルーティングモデル行を参照し共有 disabled model 一覧を更新します。 |
GET /api/selected-models · PUT /api/model-visibility |
プロバイダー allowlist を読み取り、モデルまたはプロバイダーグループの最終表示状態を原子的に変更します。 |
GET /api/key-providers · GET /api/oauth/providers |
API キーおよび OAuth プロバイダーカタログを読みます。 |
POST /api/oauth/login · GET /api/oauth/status |
プロバイダー OAuth ログインを開始し完了可否を確認します。 |
GET /api/codex-auth/accounts?refresh=1 |
メインおよびプールアカウントを参照しクォータを強制更新し、メインの hasCredential / terminal needsReauth 状態を返します。 |
PUT /api/codex-auth/active · PUT /api/codex-auth/auto-switch · PUT /api/codex-auth/failover |
次のリクエストで使うアカウントとプールルーティングポリシーを設定します。 |
GET /api/codex-auth/active · PUT /api/codex-auth/accounts/priority |
実効アカウント(固定中かどうかを示す pinned と、固定されているアカウントを示す pinnedAccountId を含む)を読み、アカウント 1 件の選択順序を設定します。 |
POST /api/codex-auth/login · GET /api/codex-auth/login-status |
ブラウザログインでプールアカウントを追加します。 |
GET /api/logs?tail=50&limit=20&offset=0&provider=...&status=5xx |
tail、プロバイダー、正確な状態コードまたは状態等級で最近のリクエストメタデータを参照します。limit/offset は最新行から過去方向にページングします(offset=0 が最新ページ)。応答は { timeZone, generatedAt, total, logs } で、total はページング前の一致件数です。 |
GET / PUT /api/subagent-models |
spawn_agent に優先公開するモデル 5 つを読むか設定します。 |
POST /api/stop |
プロキシ/サービスを停止しネイティブ Codex を復元した後終了します。Windows タスク スケジューラ バックエンドでは respawnable_service、その状態を読み取れない場合は service_state_unknown で拒否し、どちらの場合も何も変更されません。 |

