Codex のアカウント状態、モデル通信、チャット履歴は関連していますが、別の状態です。原因が 分かりにくい 401、圧縮失敗、「消えた」履歴の多くは、これらを同じものとして扱うと発生します。
まず正しい構造を理解する
| 名前 | 保存場所 | 実際の役割 |
|---|---|---|
| OcHub 接続 ID | OcHub データベース | 接続カードを識別。内部では UUID のままでよい |
| Codex Provider ID | config.toml の model_provider |
[model_providers.<id>] と Codex 履歴バケットを選択 |
| Codex プロバイダー名 | [model_providers.<id>].name |
表示・能力互換フィールド。履歴バケットではない |
| ChatGPT ログイン | auth.json または OS 資格情報ストア |
ChatGPT 資格情報を保存・更新 |
| モデルプロバイダー資格情報 | 現在の Provider 認証フィールド | サードパーティーまたは OcHub ローカルゲートウェイへのモデル要求を認証 |
OcHub カード名を変えても履歴は移行されません。model_provider を変えると、新しい履歴が
別バケットへ入る可能性があります。OcHub は内部 UUID と Codex Provider ID を分離し、新しい
モデルプロバイダー接続には安定した custom を使います。company_proxy などへ変更もできます。
ChatGPT ログインを保持してモデルプロバイダーを使う
ChatGPT のアカウント状態を残しながら、モデル推論をサードパーティー Responses API または OcHub モデルプロバイダーへ送る方式です。
-
先に ChatGPT へログインします。 公式 Codex 接続だけで動作することを確認します。 資格情報は
~/.codex/auth.jsonまたは OS キーチェーンに保存されます。 -
ログイン状態を接続バージョンとして保存します。 公式接続を現在にしたまま別の接続へ 切り替え、OcHub が
auth.jsonとconfig.tomlの差分を表示したら、新しいバージョン として保存を選びます。 -
Codex 接続を追加し「モデルプロバイダー」を選びます。 既存プロバイダーとクライアント モデルを選択します。
-
安定した Provider ID を設定します。 例は
company_proxy。これは履歴バケットであり、 OcHub の内部接続 ID ではありません。 -
「ChatGPT ログイン + サードパーティー API」を選びます。 OcHub はログイン情報を この接続バージョンに含め、ローカルゲートウェイ用に別のクライアントキーを発行します。
-
プレビューを確認します。
model_providerは安定 ID、base_urlは OcHub ローカル ゲートウェイを指し、Provider には OpenAI ログイン要件とゲートウェイ bearer の両方が必要です。 -
保存、切り替え、Codex 再起動。 短い要求を送り、「使用量 → リクエストログ」で
gateway経由か確認します。
生成例です。キーは OcHub が生成するため、無関係なマシンへ手動コピーしないでください。
model_provider = "company_proxy"
[model_providers.company_proxy]
name = "Company Proxy"
base_url = "http://127.0.0.1:4180/v1"
wire_api = "responses"
requires_openai_auth = true
experimental_bearer_token = "rd-..."認証経路は 2 本あります。
- ChatGPT ログインキャッシュは Codex が管理します。
- モデル要求は
rd-...で OcHub ゲートウェイへ入り、ゲートウェイが上流資格情報を使います。
auth.json を保持してもサードパーティー API が ChatGPT OAuth を受け入れるわけではありません。
ゲートウェイキーだけを持っていても、ChatGPT へログイン済みとは限りません。
ネイティブ Fast と Ultra で Codex を起動する
macOS の OcHub でローカルの Codex アプリページを開き、Codex を起動をクリック します。OcHub は独立したデスクトップインスタンスを起動し、対応モデルの Fast と Ultra を Codex 標準モデルピッカーで直接表示・選択できるようにします。カスタムモデルプロバイダーを 使い、通常のアカウント権限判定が選択肢を隠す、または消去する場合に利用します。
このランチャーはメモリ内 JavaScript インジェクションを実行します。ループバックだけで待ち
受ける Chrome DevTools Protocol エンドポイントを開き、renderer の最初のアプリスクリプトが
実行される前に自動接続して app-initial-*.js をインターセプトします。パッチは Fast と Ultra
の ChatGPT アカウント制限を解除し、thread/start または turn/start の直前に選択済み Fast
service tier が消去されないようにします。ピッカー、React コンポーネント、設定ストレージ、
要求形式は Codex 標準実装のままです。インストール済み App の変更や再署名は行いません。
-
Codex 接続を設定して切り替えます。 直結またはモデルプロバイダーを選び、クライアント モデルに下表の正確な ID を使います。
-
ローカル Codex ページを開きます。 リモートノードと macOS 以外では利用できません。
-
「Codex を起動」をクリックします。 OcHub は
/Applicationsまたは~/ApplicationsのCodex.app/ChatGPT.appを探し、独立インスタンスを起動して、 最初のドキュメントへ注入してから成功を表示します。 -
コンポーザー下の標準ピッカーを使います。 Codex 内でモデル、推論強度、Fast を選びます。
-
短い要求を送り、「使用量 → リクエストログ」を確認します。 重要な作業の前に、モデルと 上流が選択したモードを受け入れたことを確認します。
現在、OcHub 生成カタログの能力は正確なモデル ID だけに適用されます。
| モデル ID | Fast | Max | Ultra |
|---|---|---|---|
gpt-5.6-sol |
対応 | 対応 | 対応 |
gpt-5.6-terra |
対応 | 対応 | 対応 |
gpt-5.6-luna |
対応 | 対応 | 非対応 |
不明なモデルや似た名前のサードパーティーモデルは能力を継承しません。Codex が正確なモデル エントリーを提供済みの場合、その能力メタデータを保持します。
注入は OcHub から起動したインスタンスだけで有効です。新しい renderer も処理できるよう
OcHub を実行したままにし、Codex 終了後は再度 OcHub から起動してください。デバッグ待受は
127.0.0.1 に限定され、OcHub はループバック以外のターゲットを拒否します。
Codex 更新で想定した renderer 制限の形が変わると、パッチは安全側で停止して注入失敗を 表示します。すべての Codex / ChatGPT App ウィンドウを終了し、新しい OcHub があれば更新後に 再試行してください。Dock から失敗したインスタンスを開くと OcHub ランチャーを経由しません。
圧縮は何を圧縮するのか
長いチャットには別の 2 種類の状態があります。
- ローカル transcript:
/resume、セッション一覧、確認用にディスクへ保存。 - アクティブコンテキスト:次のモデル要求へ送る履歴。コンテキストウィンドウ制限を受ける。
/compact はアクティブコンテキストを圧縮します。古いターンを簡潔な要約へ置き換え、重要な
決定を残しながら無制限な増加を防ぎます。ローカル transcript の削除とは異なります。Codex は
モデル既定値で自動圧縮もでき、上級者は model_auto_compact_token_limit で閾値を上書きできます。
リモート圧縮とは
通常圧縮はクライアント側で要約できます。リモート圧縮は Responses 固有の圧縮要求を、その
意味を実装した上流へ委譲します。現在の OcHub では Responses の compaction_trigger を含み、
Chat Completions や Anthropic Messages に忠実な変換先はありません。
そのため OcHub は、選択したモデルプロバイダーに原生 Responses 上流がある場合だけ提供します。
- モデルプロバイダーで Responses インターフェースを有効化。
- Codex 接続を編集し、そのプロバイダーを選択。
- Provider セクションで「リモート圧縮」を有効化。
- プレビューでプロバイダー名が正確に
OpenAIになったことを確認。 - Codex を再起動し、長いチャットで
/compactを確認。
プロバイダー名 OpenAI は現在の Codex/OcHub の能力互換ルールです。
model_provider = "openai" と混同しないでください。前者はカスタム Provider の名前、後者は
Codex 予約済みの内蔵 OpenAI Provider を選択し、独自転送には使えません。
Responses WebSocket とは
supports_websockets = true は、このモデル Provider が Responses API WebSocket 通信へ
対応すると Codex に伝えます。対応 Provider は、毎回 HTTP/SSE 要求を作る代わりに、持続する
双方向接続で Responses イベントを運べます。
混同しやすい 2 種類の WebSocket:
| WebSocket | 接続 | OcHub/Codex 設定 |
|---|---|---|
| Responses WebSocket | Codex モデルクライアント ↔ モデル Provider | supports_websockets = true |
| app-server WebSocket | 外部クライアント ↔ codex app-server |
codex --remote / app-server --listen |
OcHub が設定するのは前者であり、Codex CLI をリモート app-server にする機能ではありません。
WebSocket を有効にする条件
次のすべてを満たす場合だけ有効にします。
- 上流が HTTP streaming だけでなく Responses WebSocket を明示的にサポート。
- モデルプロバイダーの Responses インターフェースで WebSocket 能力が有効。
- ネットワークプロキシ、TLS 終端、社内 CA が
wss://ハンドシェイクと長時間接続を許可。 - 通常の Responses 要求がすでに成功。
モデルプロバイダーで有効にすると、OcHub は能力を Codex 接続へ反映します。
[model_providers.company_proxy]
wire_api = "responses"
supports_websockets = trueWebSocket は接続の繰り返しコストを減らし、継続イベントストリームに適する可能性がありますが、 すべての上流で高速になる保証はありません。ハンドシェイク失敗、頻繁な切断、HTTPS のみの 企業プロキシでは無効にします。モデル、認証、Base URL の誤りを直す機能ではありません。
チャット履歴の保存場所
公式 Codex は再開可能なセッション transcript をローカルに保存します。現在のバージョンは
通常 $CODEX_HOME(既定 ~/.codex)の次の場所を使います。
sessions/:アクティブセッションの rollout JSONL。archived_sessions/:アーカイブ済みだが復元可能なセッション。state_5.sqlite:スレッド一覧、索引、Provider バケット状態。
ファイル名は現在の実装詳細で、将来変更される可能性があります。Codex 実行中の一括編集より、
/resume、/archive、codex unarchive、OcHub セッション管理を優先してください。
auth.json は履歴ではありません。機密ログイン情報を含むためパスワードと同様に保護し、
Git、チケット、公開チャットへ貼り付けないでください。
Provider ID が履歴へ影響する理由
Codex はセッションメタデータとスレッド索引に model_provider を記録します。内蔵 openai、
共有 custom、その他 Provider を区別できますが、ID の変更は履歴バケットも変えます。
- URL、モデル、キーだけを変更:Provider ID を保持。
- サードパーティー接続間で履歴共有:同じ安定 ID(例
custom)を使用。 - チームと個人履歴を分離:
team_proxy、personal_proxyのように別 ID を使用。 - 旧 UUID を置換:Codex を終了し、OcHub から保存して JSONL と SQLite をバックアップ・移行。
/archiveはローカル保持、/deleteは現在のセッションと派生子セッションを永久削除。
安全なトラブルシューティング順序
- ログイン層:Codex はログイン済みか。ファイル保存かキーチェーンか。
- Provider 層:
model_providerが存在する[model_providers.<id>]を指すか。 - ゲートウェイ層:Base URL が OcHub ローカルか、
rd-...がこの接続用か。 - 通常要求:リモート圧縮と WebSocket を無効にし、Responses 要求を 1 件確認。
- WebSocket 層:上流とネットワーク対応を確認してから有効化。
- 圧縮層:最後にリモート圧縮を有効にし、
/compactを個別確認。 - 履歴層:
/resumeが変わったら、削除前にCODEX_HOMEと Provider ID を確認。
公式参考と実装境界
- OpenAI Codex 設定リファレンス:
model_provider、requires_openai_auth、supports_websockets、自動圧縮閾値。 - OpenAI Codex 認証とセッション:ログインキャッシュと保存。
- OpenAI Codex CLI コマンド:
/compact、/resume、/archive、/delete。 - OpenAI Codex モデル選択:モデル、推論、Max、Ultra。
- OpenAI Codex 速度ガイド: ChatGPT Fast モードと API Priority processing の違い。
- Provider 名によるリモート圧縮判定、Responses-only 保護、標準ピッカーへの注入、UUID 履歴 移行、具体的な走査パスは現在の Codex 向け OcHub 互換動作であり、OpenAI が保証する永久 プロトコルではありません。

