コンテンツにスキップ

CLI プロバイダー、アカウント、およびモデル

これらのコマンドは、上流プロバイダーの構成、アカウントの認証、資格情報プールの管理、Codex に公開されるモデル カタログの制御を行います。

非対話型のプロバイダー管理。レジストリ エントリは名前によってシードされます。カスタム名には --adapter--base-url の両方が必要です。

サブコマンド サポートされているフラグ アクション
list --json 構成されたプロバイダーと残りのレジストリ エントリを一覧表示します。
add <name> --adapter <adapter>--base-url <url>--api-key <key>--default-model <model>--set-default--force--json--sync レジストリ/カスタムプロバイダーを追加します。 --force は上書きします。 --sync は、実行中のプロキシを人間出力モードで更新します。
edit <name> プロバイダーフィールドフラグ、--json キー プールを置き換えずに、検証済みのライブ プロバイダー フィールドを編集します。
test <name> --json 実際の上流モデルのエンドポイントを調査します。
show <name> --json API キーをマスクして設定を表示します。
remove <name> --json デフォルト以外のプロバイダーを削除します。最後のプロバイダーは削除できません。
set-default <name> --json 既存のプロバイダーをデフォルトとして選択します。
selected <name> --set <ids>--clear--json プロバイダー モデルのホワイトリストを読み取るか更新します。
quota --refresh--json プロバイダー クォータ レポートを読み取ります。
presets --json ダッシュボードプロバイダーのプリセットを一覧表示します。
account-mode pooldirect--json プールされた Codex アカウント ルーティングまたは直接の Codex アカウント ルーティングを選択します。
Terminal window
ocx provider list --json
ocx provider test ark
ocx provider add anthropic --api-key sk-ant-... --set-default --sync
ocx provider add local-dev --adapter openai-chat --base-url http://localhost:11434/v1
ocx provider show anthropic --json
ocx models --provider anthropic --json
ocx models live --provider ark --json

プロバイダーの登録済みログイン フローを開始します。 OAuth プロバイダーはブラウザを開き、自動更新された認証情報を ~/.opencodex/ に保存します。 API キー ログイン プロバイダーは、キー ダッシュボードを開き、キーの入力を求め、可能な場合は検証し、結果のプロバイダー設定を保存します。名前が欠落しているか不明な場合、このコマンドは現在受け入れられている OAuth および API キーのプロバイダー ID を出力します。

ocx status / ocx doctor が再認証が必要であるか、端末の更新失敗を報告した後、同じコマンドを使用して 再認証します (またはダッシュボードで再認証を使用します)。 Codex プール アカウントはパブリック ocx login プロバイダーではありません。代わりに、ダッシュボード Codex アカウント プール (再認証) またはヘッドレス ocx account reauth フローを介して再認証します。

Terminal window
ocx login xai
ocx login anthropic

保存されているプロバイダーの OAuth 資格情報を削除します。

実行中のプロキシを介してプロバイダー アカウントと API キー プールを一覧表示し、切り替えます。出荷されたヘルプ画面は次のとおりです。

Usage: ocx account <list|current|use|refresh|auto-switch|login|reauth|code|cancel|remove|add-key|reset-credits> ...
list [provider] Codex account pool, OAuth accounts and API keys (identifiers shown masked as the API returns them).
current <provider> Show the active account or key.
use <provider> <id> Switch the active credential; 'main' selects the Codex App login.
refresh <provider> Force-refresh Codex or provider quota reports.
auto-switch <provider> <on|off|status|threshold N> Control the Codex pool threshold.
remove <provider> <id> --yes Remove a stored account or key after an existence check.
add-key <provider> [--label <label>] Add a key read only from piped stdin.
login/reauth/code/cancel Run browser or manual-code auth from a headless shell.
reset-credits <id|main> [--consume --yes] Inspect or consume Codex reset credits.
Codex pool selection applies to the next request after clearing existing affinity; in-flight requests keep their captured account.

すべてのサブコマンドではプロキシが実行されている必要があります。 CLI は、記録されたランタイム ポートを自動解決します。操作が成功した場合は 0 で終了します。無効な使用法、不明なプロバイダーまたはアカウント/キー ID、到達不能なプロキシ、または API エラーが発生した場合は 1 で終了します。資格情報フィールドは、管理 API が返したとおりに表示されます (マスキングを含む)。生の API キーと OAuth トークンは決して返されません。表示の利便性は、ダッシュボードと同様にクライアント側で合成されます。main は、openai アカウント プール内の Codex アプリ ログインの CLI エイリアスであり、電子メールのない OAuth アカウントは Account N として表示され、プラン/ラベル列はプラン、マスクされた電子メール、ラベル、およびマスクされたキーにわたってフォールバックされます。

--json アカウント行では、次の一般的な形状が使用されます (オプションのフィールドが使用できない場合は省略されます)。

{
"provider": "openai",
"type": "codex | oauth | api-key",
"id": "__main__",
"label": "plus",
"email": "m***@example.com",
"plan": "plus",
"masked": "sk-ab****wxyz",
"active": true,
"needsReauth": false,
"quota": null
}

ocx account list [provider] [--json] [--all]

Section titled “ocx account list [provider] [--json] [--all]”

プロバイダーを使用しない場合、Codex プール、OAuth アカウント、および設定された API キー プールが一覧表示されます。 --all が存在しない限り、空のプロバイダーはスキップされます。プロバイダーを使用すると、その資格情報ファミリーのみがリストされます。人間の出力では PROVIDER TYPE ID PLAN/LABEL STATUS を使用します。手動で選択した Codex 行には selected というマークが付けられます。保存された Kiro アカウントが存在する場合、出力には、Kiro には 1 つのログイン スロットがあり、再度サインインすると現在のアカウントが置き換えられることが示されます。結果が空であっても成功です。 --json は次を返します:

{ accounts: AccountRow[], notes: string[] }

アクティブなアカウントまたはキーを表示します。手動ピンのない Codex プールは、自動的に最低使用量の選択を報告します。アクティブな認証情報を持たない別のファミリーは、その状態を報告し、依然として 0 を終了します。--json は次を返します。

{ provider, type, activeId: string | null, autoSwitchThreshold?: number, account: AccountRow | null }

ocx account use <provider> <account-or-key-id|main> [--json]

Section titled “ocx account use <provider> <account-or-key-id|main> [--json]”

既存の Codex アカウント、OAuth アカウント、または API key を選びます。openaimain は Codex App ログインを 選択します。Codex Pool の選択は process-local affinity を消去し、既存の表示タスクを含む次のリクエストから適用されます。プロキシ再起動や affinity eviction 後もタスクは未紐付けになり得ますが、処理中のリクエストは取得済みアカウントを維持します。この選択は Pool routing のみを制御し、Direct mode は caller-owned/native main credential を使い続けます。使用量ベースのプロアクティブ切り替え、401/403 再認証、429/retry-after cooldown、除外、出力前 429/402 の障害回復により、後で別の適格 Pool アカウントが選ばれる場合があります。これらの回復経路は使用量ベース切り替えが off でも有効です。アカウント変更後も OpenCodex は会話コンテキストを再生しますが、provider prompt cache は再ウォームアップが必要な場合があります。 不明なプロバイダーや id は終了コード 1 です。--json は次を返します。 401/403 では、そのアカウントへのプロセスローカルな affinity を解除し、再認証を要求します。 429 では Retry-After を尊重してアカウントの cooldown を開始し、affinity を解除したうえで、 別の適格な Pool アカウントへリクエストを切り替えることがあります。これらの障害回復は autoSwitchThreshold: 0 でも有効であり、0 が無効にするのは使用量に基づく予防的な切り替えだけです。

{ ok: true, provider, type, activeId }

Codex プールの場合は、ocx account refresh openai [--json] を使用します。アカウント クォータを強制的に更新し、利用可能な週次/月次のパーセンテージとリセット時間を出力します。不足しているクォータ データは、0% ではなく不明として報告されます。その JSON エンベロープは { accounts: AccountRow[] } で、Codex の各行に quota があります。

OAuth プロバイダーと API キー プロバイダーの場合、これによりプロバイダー クォータ レポート エンドポイントが強制的に更新されます。これは、トークンの再ログインや単純なアカウント リストの再読み取りではありません。 --json{ provider, report: ProviderQuotaReport | null } を返します。サポートされているクォータ レポートがないプロバイダーは、no quota report available for <provider> を出力して 0 を終了します。不明なプロバイダーと管理 API のエラーは 1 を終了します。失敗またはタイムアウトしたアップストリーム クォータ プローブは、代わりに null または古いレポートに劣化し (終了 0)、ダッシュボードのクォータ バーと一致します。

ocx account auto-switch <provider> <on|off|status|threshold <0-100>> [--json]

Section titled “ocx account auto-switch <provider> <on|off|status|threshold <0-100>> [--json]”

openai Codex アカウント プールのみを制御します。 on は 80% を設定し、off は 0% を設定します。status は現在の値を読み取り、threshold <n> は 0 ~ 100 の整数を受け入れます。他のプロバイダーと無効な値は 1 を終了します。--json は次を返します。

{ provider, autoSwitchThreshold: number, enabled: boolean }

ヘッドレス シェルからブラウザベースまたは手動コードのアカウント認証を実行します。プロバイダー固有のコマンド形式には ocx account --help を使用します。

ocx account remove <provider> <id|main> --yes [--json]

Section titled “ocx account remove <provider> <id|main> --yes [--json]”

この保護された非対話型削除には --yes が必要です。削除する前に、ID が存在することが確認されます。 ID が欠落している場合は、DELETE を送信せずに 1 が終了します。メインの Codex App ログインは削除できないため、remove openai main --yes は拒否されます。削除後、ファミリーは再度読み取られます。固定された Codex アカウントを削除すると、ピンがクリアされ、自動選択に戻ります。 OAuth は最初に残ったアカウントを昇格させるか、何も報告しません。 API キー プールは、最初に残っているキーを昇格するか、何も報告しません。 --json の成功と失敗の形状は次のとおりです。

{ ok: true, provider, id, removedActive: boolean, promotedActiveId: string | null }
{ error: string } // stderr, exit 1

ocx account add-key <provider> [--label <label>] [--json]

Section titled “ocx account add-key <provider> [--label <label>] [--json]”

API キー プロバイダーのキーを追加してアクティブ化します。キーは、非 TTY パイプ/リダイレクトされた標準入力からの読み取り専用です。インタラクティブ TTY 入力、空の入力、OAuth/Codex プロバイダー、および API エラー終了 1。キーがラベル内に表示される場合も含め、キーがエコーされることはありません。シークレット マネージャーまたはヒア文字列を使用することをお勧めします。

Terminal window
ocx account add-key openrouter --label personal <<< "$OPENROUTER_API_KEY"
security find-generic-password -w openrouter | ocx account add-key openrouter --json

--json{ ok: true, id: string | null, label?: string } を返しますが、キーは決して含まれません。

ocx account reset-credits <id|main> [--consume --yes]

Section titled “ocx account reset-credits <id|main> [--consume --yes]”

アカウントの Codex リセット クレジットを検査します。クレジットの消費は破壊的であり、--consume--yes の両方が必要です。

ocx models [subcommand]ocx model <subcommand>

Section titled “ocx models [subcommand]・ocx model <subcommand>”

ocx modelocx models の別名です。サブコマンドを使用しない場合、構成されたプロバイダーに静的にシードされたモデルを一覧表示します。 --provider は 1 つの構成済みプロバイダーをフィルターし、--json はモデル メタデータを返します。 live は実行中のカタログを読み取ります。 addeditremove、および list-custom は手動カタログ エントリを管理します。 enabledisable、および provider は可視性を制御します。 selected はプロバイダー許可リストを制御します。 context はプロバイダーのコンテキストの上限を制御します。 shadow はバックグラウンドのシャドウ コール インターセプトを管理します。

ダッシュボードが提供するモデルごとの操作はすべてここで利用できるため、ヘッドレスインストールではカタログを管理するために GUI が必要ありません。 addremove、および list-custom は設定ファイルに対して機能し、カタログ同期を通じて実行中のプロキシに適用されます。残りはライブ管理 API と通信し、プロキシが実行されている必要があります (ocx start、またはインストールされたサービス)。

サブコマンド サポートされているフラグ アクション
list (デフォルト) --provider <name>--json 構成されたプロバイダーにシードされたモデルをリストします。
live --provider <name>--json 実行時に検出されたモデルを含む、実行中のカタログを読み取ります。行には、native/routedcustom、および enabled/disabled というフラグが付けられます。
add <provider> <modelId> --display-name <name>--context-window <tokens>--modalities <text,image,audio> プロバイダー カタログが宣伝していないモデルを登録します。
edit <custom-id> --model-id <id>--display-name <name|->--context-window <tokens|0>--modalities <text,image,audio|->--json カスタムモデルを編集します。 - はフィールドをクリアします。 0 はコンテキスト ウィンドウをクリアします。
remove <custom-id|provider/modelId> --yes カスタムモデルを削除します。標準入力が対話型端末ではない場合は、--yes が必要です。
list-custom --json 他のサブコマンドで取得される custom-id を持つすべてのカスタム モデルを表示します。
enable <provider/model|native-model> --native--json 1 つのモデルを Codex に表示できるようにします。
disable <provider/model|native-model> --native--json Codex から 1 つのモデルを非表示にします。
provider <name> <on|off> --json 1 つのプロバイダーのすべてのモデルを 1 回の書き込みで有効または無効にします。
selected <provider> --set <id,id...>--clear--json プロバイダー モデルのホワイトリストを読み取るか置き換えます。 --clear はホワイトリストを削除し、すべてのモデルが提供されるようにします。
context <status|value <tokens>|provider <name> <on|off>|all <on|off>> --json コンテキスト ウィンドウ キャップをグローバルに、またはプロバイダーごとに読み取りまたは設定します。
shadow <status|set> [model|-] --enabled <on|off>--json Codex のバックグラウンド ヘルパー呼び出しの置換モデルを読み取るか、設定します。 - はモデルをクリアします。 statussourceModels も報告し、ヘルパースラッグはプロキシをインターセプトします (デフォルト: gpt-5.4-mini および gpt-5.6-luna)。
Terminal window
ocx models live --json # what Codex can actually see right now
ocx models disable anthropic/claude-haiku-4 # hide one routed model
ocx models enable gpt-5.6-sol # no slash, so it is treated as native
ocx models provider zenmux off # hide a noisy provider wholesale
ocx models selected anthropic --set claude-opus-5,claude-fable-5
ocx models selected anthropic --clear # drop the allowlist again
ocx models add deepseek deepseek-v4 --display-name 'DeepSeek V4' --context-window 128000 --modalities text,image
ocx models list-custom --json # read the custom-id for edit/remove
ocx models remove deepseek/deepseek-v4 --yes

スラッシュの付いたモデル セレクターはルーティングされます (anthropic/claude-opus-5)。裸の ID はネイティブ OpenAI モデルとして扱われるため、--native は、ルーティングされているように見える ID の読み取りを強制する場合にのみ必要です。

--modalities は、textimage、および audio のみを受け入れます。 Codex はそのフィールドを閉じた列挙型として解析し、他の値を含むカタログ全体を拒否するため、addedit、および管理 API はすべて、カタログ作成者が後で削除する必要があるものを保存するのではなく、不正な値を拒否します (#759)。