AI 뉴스

Show GN: opencodex — Codex에서 아무 LLM이나 쓸 수 있는 로컬 프록시

노동1호 2026. 6. 23. 01:02

Codex는 기본적으로 OpenAI 모델만 쓸 수 있다. Claude나 GLM, Gemini로 코딩하고 싶으면 OpenAI가 공식 어댑터를 추가해줄 때까지 기다려야 한다는 뜻이다. 2026년 6월 현재, 이 답답함을 풀어줄 로컬 프록시 opencodex가 깃허브에 올라왔다. Codex와 외부 LLM 프로바이더 사이에 끼어들어 Responses API를 실시간으로 번역해 주는 도구로, npm 한 줄로 설치하고 ocx 명령어 두세 개면 Codex 환경 전체가 멀티 프로바이더로 전환된다.

opencodex란 무엇인가

opencodex는 Codex Responses API(/v1/responses)를 다른 LLM 프로토콜로 양방향 번역하는 로컬 프록시다. Codex 자체는 Responses API 하나만 받아들이지만, 대부분의 LLM은 OpenAI Chat Completions나 Anthropic Messages, Google Gemini, Azure OpenAI 포맷을 쓴다. opencodex는 그 사이에서 다섯 가지 어댑터 — Anthropic Messages, Google Gemini, Azure, OpenAI passthrough, OpenAI-compatible Chat Completions — 를 제공해 코덱스가 그 존재를 모른 채로 다른 모델과 대화하게 만든다. 라우팅 결과는 Codex 모델 선택기에 provider/model 형식으로 네이티브 등록되므로, 한 세션 안에서 GPT-5와 Claude Opus를 자유롭게 섞어 쓸 수 있다.

| 어댑터 | 대상 프로바이더 | 비고 |

|---|---|---|

| Anthropic Messages | Claude Opus/Sonnet/Haiku | system 블록 변환 |

| Google Gemini | Gemini 2.x/3.x | 추론 토큰 매핑 |

| Azure OpenAI | Azure 배포 GPT | 엔드포인트 토큰 인증 |

| OpenAI passthrough | OpenAI 본사 | 기본 Codex 호환 |

| OpenAI-compatible | GLM, Kimi, DeepSeek, vLLM, Ollama 등 40개+ | base URL만 맞으면 OK |

어떻게 작동하는가

설치는 간단하다. 글로벌 npm 패키지로 받은 뒤 ocx init으로 프록시 모드와 사용할 프로바이더를 고르고, ocx start로 백그라운드 데몬을 띄운다. 그다음 codex를 호출할 때 -m "anthropic/claude-opus-4-8" 처럼 모델 이름 앞에 프로바이더/ 접두사만 붙이면 끝이다. 스트리밍, 도구 호출(tool use), 추론 토큰, 이미지 입력까지 전부 양방향으로 통과해 코덱스의 네이티브한 경험이 그대로 유지된다. 40개 이상의 프로바이더가 기본 내장돼 있어 별도 설정 없이 바로 쓸 수 있다.


npm install -g @bitkyc08/opencodex
ocx init   # 프로바이더 선택
ocx start  # 프록시 시작
codex -m "anthropic/claude-opus-4-8" "이 버그 고쳐줘"

만들면서 어려웠던 점

작성자가 공개한 구현 노트에는 세 가지 고비가 남아 있다. 첫째, reasoning effort 매핑이다. Codex는 low/medium/high/xhigh 네 단계로 추론 강도를 표현하지만, GLM은 max라는 다른 이름을 쓰고 Kimi는 아예 이 파라미터를 거부한다. 프로바이더별로 effort 이름을 Codex 네이티브 단계로 되돌리는 변환 테이블을 모델 단위로 따로 만들어야 했다. 둘째, 세션 히스토리 마이그레이션이다. Codex는 각 쓰레드의 model_provider 값을 SQLite DB에 저장하기 때문에, 프로바이더를 바꾸면 기존 세션이 전부 보이지 않게 된다. 그래서 마이그레이션을 직접 만들어 SQLite를 열어 inject/restore 단계에서 model_provider 태그를 갈아끼우고, 파일 mtime은 보존해 재개 순서가 흐트러지지 않게 했다. 셋째, 사이드카 라우팅이다. Claude나 GLM은 OpenAI가 제공하는 웹 검색과 이미지 이해를 자체적으로 지원하지 않는다. 이때 ChatGPT 로그인을 통해 gpt-5.4-mini를 사이드카로 붙여, 외부 모델에서도 실제 웹 검색과 비전 입력이 동작하도록 만들었다. 끄고 싶으면 ocx stop 또는 대시보드의 Stop 버튼으로 원상복구되며, 카탈로그·세션 히스토리·설정 파일에 잔여물이 남지 않는다.

사용 시 알아둘 점

HN 댓글 7개를 보면 두 가지 질문이 반복된다. "시작하면 기존 세션이 다 사라지고, 끄면 다시 나타나는데, 이건 어쩔 수 없나?"라는 글에 작성자는 "세션 provider를 변경하시면 정상적으로 이용이 가능하실 듯합니다"라고 답했고, 실제로 위에서 설명한 SQLite 마이그레이션이 그 해법이다. 또 "profile에 모델 endpoint만 설정해도 되지 않나요?"라는 물음에는 "Codex가 profile당 endpoint를 하나만 지원해서 멀티프로바이더가 어렵고, profile에 묶으면 기본 gpt-5.5를 못 쓰고 tool call·내장 플러그인·MCP를 사용할 수 없다"는 답이 돌아왔다. 즉, opencodex가 제공하지 않으면 멀티프로바이더 + 도구 호출을 동시에 누리기 어렵다는 의미다. 라이선스는 MIT이고 macOS/Linux/Windows 네이티브로 동작해 WSL은 필요 없다. GitHub는 https://github.com/lidge-jun/opencodex, npm 패키지는 @bitkyc08/opencodex다.

정리

opencodex는 Codex를 가두지 않는다. Responses API 하나만 받아들이던 코덱스 앞에 다섯 개 어댑터와 40개 프로바이더 카탈로그를 붙여, GPT와 Claude·Gemini·GLM·Kimi·DeepSeek·로컬 vLLM/Ollama를 한 세션에서 자유자재로 섞어 쓸 수 있게 한다. effort 매핑·세션 마이그레이션·사이드카 라우팅 같은 함정을 자체적으로 처리해 주기 때문에, 설치 후 ocx init → ocx start → codex -m "provider/model" 세 줄이면 된다. 2026년 6월 기준으로 가장 가벼운 Codex 멀티프로바이더 경로 중 하나다.