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의 숨겨진 모델 필터를 비활성화하는 한 줄 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 기능을 유지하며 데스크톱 앱을 다시 빌드하지 않고도 작업을 자동 라우팅할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트