sybil-solutions/codex-shim

Local Responses-API shim that exposes Factory BYOK models (and optional ChatGPT GPT-5.5 passthrough) to Codex Desktop.

codex‑shim – Codex Desktop 用のローカルルーティング shim

概要

  • Codex Desktop が期待する OpenAI Responses API を装う小さな Python + aiohttp サーバー。
  • 127.0.0.1:8765 で待ち受け、設定した任意のアップストリームモデル(OpenAI、Anthropic、Ollama、Z‑AI、DeepSeek、Gemini、OpenRouter、またはプライベートな ChatGPT‑Codex エンドポイント)に各リクエストを転送します。
  • shim はアップストリームの応答(ストリーミング Server‑Sent Events、ツール呼び出し、画像入力など)を Codex Desktop のネイティブ UI が理解する正確な形式に変換するため、任意の「持ち込みモデル」(BYOK) を使用しながら完全な Codex UX を維持できます。

使用する理由

  • 再ビルド不要 – Codex Desktop はサーバーが広告するモデルのみを表示します。codex‑shim を実行することで、Codex を再コンパイルせずに任意のモデルをピッカーに追加できます。
  • 高度な機能を維持 – 関数呼び出し/ツール出力処理、画像対応モデル、ストリーミング、エージェントループロジックはすべて、shim が忠実なプロトコル変換を行うため、変更なしで動作します。
  • ハイブリッド設定 – 公式の ChatGPT Codex モデル (gpt‑5.5) をフォールバックとして維持したり、Cursor/Composer エージェントを有料サブスクリプションにルーティングして API キーを公開せずに済ませたりできます。
  • スマート自動ルーター(オプション) – 安価な分類器が、特定のリクエストを処理できる最も安いモデルを自動的に選択し、「簡単な」ターンを小さいモデルに、「難しい」ターンを大きいモデルに送信します。
  • プロキシ対応 – shim の HTTP エンドポイントは、別のローカルプロキシでラップして、プロンプトの注入、リクエストの重複排除、ポリシーの適用が可能です。

仕組み

  1. 設定 – ~/.codex‑shim/models.json(またはカスタムファイル)を作成し、次のようなフィールドを持つモデルをリストします。
    {
      "model": "gpt‑5.5",
      "provider": "openai",
      "base_url": "https://api.openai.com/v1",
      "api_key": "sk‑…",
      "display_name": "OpenAI GPT‑5.5",
      "max_context_limit": 400000
    }
    
    サポートされる provider 値は、openai、anthropic、および汎用の OpenAI 形状チャット API です。
  2. カタログ生成 – codex‑shim generate は JSON を読み取り、Codex 互換のモデルカタログ (custom_model_catalog.json) と、~/.codex/config.toml 内の小さなプロバイダーブロックを書き込みます。
  3. デーモン起動 – codex‑shim start はループバックアドレスで aiohttp サーバーを起動します。
  4. Codex 起動 – codex‑shim app . は、shim 管理のブロックを設定に含めた状態で Codex Desktop を起動するため、UI にすべてのカスタムエントリが表示されます。
  5. モデル切り替え – codex‑model list / codex‑model <slug> は同じ設定ブロックを更新してデフォルトモデルを変更します。codex‑app は Codex を再起動して変更を適用します。

プラットフォームサポート

  • macOS、Linux、WSL、Git Bash、ネイティブ Windows (PowerShell/cmd) で動作します。コアサーバーは純粋な Python で、オプションの macOS「ピッカーパッチ」のみが Electron アプリに触れます。
  • Windows Store/MSIX ビルドにはより厳格な許可リストがあります。shim は引き続き機能しますが、パッチなしのルートを使用しない限り、UI がカスタムスラッグを非表示にする場合があります。

追加ユーティリティ

  • codex‑shim patch‑app / restore‑app – macOS で Codex の非表示モデルフィルターを無効にする 1 行の ASAR パッチを適用または元に戻します。
  • codex‑shim opencode‑go refresh – OpenCode Go サービスからライブモデルリストを取得し、設定にマージします。
  • codex‑shim generate、list、status、disable – カタログ管理とヘルスチェック用の CLI ヘルパー。

誰が恩恵を受けるか

  • すでに Codex Desktop(AI 搭載コーディングアシスタント)を使用しているが、プライベートまたはより安価な LLM エンドポイントを指したい開発者。
  • Codex UI を維持しながら、内部プロキシまたは資格情報ポリシーに準拠する必要があるチーム。
  • 複数のプロバイダーを試し、単一のローカルホスト型ルーティングレイヤーを望む人。

TL;DR: codex‑shim は、Codex Desktop が組み込みの OpenAI エンドポイントと通信していると思い込ませながら、実際には設定した任意の LLM にリクエストを転送する軽量 Python サーバーです。BYOK モデルを追加し、すべての Codex 機能を維持し、デスクトップアプリを再ビルドせずにタスクを自動ルーティングすることもできます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト