Codex CLI と Codex App:違いと選び方
ワークフロー、並列作業、diff、自動化、認証、検証の観点から Codex CLI とデスクトップアプリを比較します。
作業がすでにターミナル、リモートマシン、スクリプトの中にあるなら Codex CLI が向いています。複数の並列タスク、視覚的な diff レビュー、プロジェクト管理にはデスクトップアプリが向いています。これは別のモデルではなく Codex の二つのインターフェースです。カスタムプロバイダーを使う場合、クライアントによって認証方法も変わります。CLI と Desktop App は同じ方式ですが、VS Code 拡張機能は別の方式です。
Codex CLI と Codex App:短い結論
OpenAI は、デスクトップアプリが CLI と IDE 拡張機能のセッション履歴や設定を引き継げると説明しています。両方を組み合わせやすくなりますが、同じ実行環境になるわけではありません。環境変数、再起動、検証はクライアントごとに確認します。subagent は CLI と App の両方で使えます。App の強みは並列実行そのものではなく、スレッド、worktree、diff を視覚的に管理できることです。
カスタムプロバイダーが実際に適用される場所
BetterToken は OpenAI 互換ツール向けの API アクセスを提供します。Codex では OpenAI 公式クライアント、カスタムプロバイダー、Base URL https://www.bettertoken.ai/v1、Responses プロトコルを使います。BetterToken は Codex 本体、ChatGPT へのサインイン、アプリのインストールを置き換えるものではありません。自分の BetterToken アカウントと API Key を使用します。
まず、タスクをどこから開始するかを確認してください。
- Terminal の
codexコマンドは CLI です。 - デスクトップアプリ内の Codex は Desktop App です。
- VS Code 内の Codex パネルは拡張機能です。
三者とも ~/.codex/config.toml(Windows では %USERPROFILE%\.codex\config.toml)を読みますが、認証は異なります。
どちらのモードも [model_providers.custom] セクションを一つだけ使います。同じ名前のセクションを一つの TOML に二つ書かないでください。利用中のクライアントの認証方式を選び、正確なフィールドと現在の Model ID は Codex CLI/Desktop App と Codex VS Code Extension で確認してください。
Desktop App と IDE 拡張機能は、shell プロファイルだけで設定した変数を受け取れない場合があります。新しいプロセスが BETTERTOKEN_API_KEY を見つけられない場合は、現在のクライアント別ガイドに従い、クライアントを完全に再起動して新しいセッションを作ります。キーを記事、スクリーンショット、共有リポジトリに書いてはいけません。
プロバイダーが適用されたことを確認する方法
再起動後、少ないコンテキストで短いタスクを送ります。CLI では /status を開いて現在のプロバイダーを確認します。CLI、Desktop App、VS Code のいずれでも、応答後に BetterToken Dashboard で時刻とモデルが一致する記録を探してください。これでモデルリクエストが BetterToken を通過したことを確認できます。古いセッションは変更後の設定を検証するのに適しません。401、403、model not found が出ないことは基本的な動作確認にすぎず、/status または Dashboard の一致記録なしでは、どのプロバイダーと Base URL が使われたかは証明できません。
ワークフローの違い
CLI:ターミナル、SSH、再現可能なコマンド
CLI は現在の shell プロセス内で動きます。対話モードはリポジトリ作業に、codex exec は非対話タスクやスクリプトに、/agent は組み込み subagent の確認や切り替えに使えます。SSH セッション、コンテナ、CI チェック、既存のコマンドセットに組み込みやすい方法です。並列作業は可能ですが、ディレクトリ、プロセス、結果は通常自分で管理します。同じ作業コピーを二つのタスクが変更してはいけない場合は、別の worktree またはディレクトリを使い、マージ前に diff を確認します。
Desktop App:プロジェクト、スレッド、視覚的な diff
Desktop App は複数のタスクを一つの画面にまとめます。スレッドはコンテキストを分け、組み込み worktree は変更を分離し、diff はタスクの会話の横で確認できます。バグ修正、新機能、レビューを同時に進めるときに便利です。デスクトップアプリの提供状況、画面名、配置は更新で変わる可能性があるため、導入や更新の前に公式のダウンロードページを確認してください。
具体的なワークフローでの選び方
次の場合は CLI を選びます
- 主な画面が Terminal、SSH、コンテナである。
codex exec、shell スクリプト、外部スケジュールが必要である。- 再現可能なコマンド列が重要である。
- 並列の作業ディレクトリを自分で管理できる。
次の場合は Desktop App を選びます
- 複数のタスクやプロジェクトが同時に動く。
- グラフィカル画面で diff とコメントを確認しやすい。
- worktree と結果キューを一か所で見たい。
- タスクが端末コマンドではなく、文書、調査、運用プロセスから始まる。
両方のインターフェースを使う場合
リモートマシンと自動化には CLI を、管理とレビューには Desktop App を使います。共有履歴と設定は切り替えを容易にしますが、実行前に作業ディレクトリ、権限、有効なプロバイダー、認証方式を毎回確認してください。
よくあるプロバイダーの問題
CLI では動くのに VS Code では動かない
CLI/Desktop App と拡張機能は異なる認証フィールドを使います。env_key 方式を完全な解決策として拡張機能にコピーせず、公式の auth.json を BetterToken API Key で上書きしないでください。拡張機能用ガイドを開き、Reload Window を実行します。
Codex が公式サインインを再度求める
CLI/Desktop App でカスタムプロバイダーを使う場合、新しい Codex プロセスが BETTERTOKEN_API_KEY にアクセスできるか確認します。拡張機能では公式サインインを維持し、モデルリクエストのキーは別フィールドで渡します。
プロバイダーが見つからない
model_provider = "custom" の値は [model_providers.custom] セクション名と一致しなければなりません。重複セクションを削除し、wire_api = "responses" を確認してください。
設定を保存したのに何も変わらない
古いプロセスを終了し、新しいターミナルを開くか Reload Window を実行してから、新しいセッションを作ります。App が shell のキーを認識しない場合は、現在のクライアント別ガイドに従って完全に再起動します。エラーが続く場合は、Model ID、API Key、Base URL、認証モードを一つずつ確認し、複数の値を同時に変えないでください。
最終的な選択
ターミナル、SSH、スクリプト、直接的なプロセス管理には Codex CLI を選びます。並列タスク、worktree、視覚的なレビューには Desktop App を選びます。カスタムプロバイダーでは最初にクライアントを選び、その認証方式を適用し、短い新しいセッションで結果を確認します。
現在の BetterToken パラメーターは Codex ガイド を、VS Code は拡張機能の個別ガイドを確認してください。