도구

opencodex — Codex를 다른 모델로 돌리는 로컬 프록시

opencodex는 Codex CLI·앱·SDK와 Claude Code 앞에 붙어 요청을 Claude, Gemini, Grok, DeepSeek, Ollama 형식으로 바꿔 주는 로컬 프록시입니다. 동작 방식과 설치, 쓸 만한 상황을 정리했습니다.

글쓴이 Byungjun Kim발행 3 분 읽기

opencodex는 OpenAI Codex와 Claude Code 앞에 붙는 로컬 프록시입니다. Codex가 보내는 Responses API 요청을 받아 Claude, Gemini, Grok, DeepSeek, Ollama 같은 모델의 API 형식으로 바꾸고, 돌아온 스트리밍·툴 호출·추론 결과를 다시 Codex 형식으로 되돌립니다. Codex 자체는 고치지 않습니다.

왜 만들었나

Codex는 계획을 세우고, 도구를 부르고, 긴 맥락을 다루는 방식이 좋습니다. 그런데 모델은 OpenAI 것만 고를 수 있었습니다. 저는 Codex의 작업 방식은 그대로 두고 모델만 바꿔 보고 싶었습니다. 어떤 작업은 다른 회사 모델이 더 잘하고, 어떤 날은 구독 한도가 먼저 바닥나기 때문입니다.

방법은 두 가지였습니다. Codex를 포크해서 고치거나, Codex 앞에 번역기를 세우거나. 포크는 업스트림이 바뀔 때마다 따라가야 합니다. 그래서 번역기를 택했습니다.

어떻게 동작하나

Codex는 설정에 적힌 주소로 요청을 보냅니다. opencodex는 그 주소를 http://127.0.0.1:<포트>로 바꿔 두고 요청을 받습니다.

  1. 받기 — 같은 포트가 Responses, Anthropic Messages, OpenAI Chat Completions 세 형식을 모두 받습니다.
  2. 고르기 — 라우팅 규칙에 따라 어느 프로바이더로 보낼지 정합니다. 여러 ChatGPT 계정을 묶어 두었다면 5시간·주간 사용량을 보고 여유 있는 계정으로 새 세션을 보냅니다.
  3. 번역하기 — 요청을 그 프로바이더가 알아듣는 형식으로 바꾸고, 응답을 다시 Codex가 기대하는 이벤트 스트림으로 바꿉니다. 툴 호출과 이미지, 추론 블록까지 이 단계에서 맞춥니다.

프로바이더마다 API의 “사투리”가 조금씩 다릅니다. 어떤 곳은 상태를 기억하지 않고, 어떤 곳은 디코더가 엄격해서 조금만 어긋난 JSON도 거절합니다. opencodex 커밋의 상당수는 이런 차이를 하나씩 맞추는 일입니다.

설치

npm install -g @bitkyc08/opencodex
ocx start

ocx start를 실행하면 로컬 대시보드가 열리고, 거기서 프로바이더를 연결하고 라우팅을 정합니다. 자세한 설정은 opencodex.me에 있습니다.

이런 때 씁니다

  • Codex의 작업 흐름은 좋은데 다른 모델로도 같은 작업을 돌려 보고 싶을 때
  • 팀이 여러 모델을 섞어 쓰지만 에이전트 도구는 하나로 맞추고 싶을 때
  • Ollama로 로컬 모델을 띄워 인터넷 없이 코딩 에이전트를 쓰고 싶을 때

운영하면서 배운 것

opencodex는 2026년 6월에 첫 커밋을 했고, 9월 현재 GitHub 스타가 1만 6천 개를 넘었습니다. 숫자보다 중요하게 보는 건 이슈 응답 속도입니다. 2026년 9월에 최근 닫힌 이슈 100건을 재 보니 평균 반나절 안에 닫혔습니다. 사용자는 대부분 제가 볼 수 없는 환경에서 문제를 겪기 때문에, 재현 절차를 먼저 받고 고친 뒤 릴리스로 답하는 흐름을 지키고 있습니다.

소스는 github.com/lidge-jun/opencodex에 MIT 라이선스로 공개되어 있습니다.

자주 묻는 질문

opencodex를 쓰면 Codex가 바뀌나요?

아니요. Codex 바이너리는 그대로이고, 설정에서 요청을 보낼 주소만 로컬 프록시로 바뀝니다. 프록시를 끄면 원래대로 돌아갑니다.

Claude Code에도 쓸 수 있나요?

네. 같은 로컬 포트가 Anthropic Messages 형식 요청도 받기 때문에 Claude Code를 같은 프록시에 붙일 수 있습니다.

어디서 설치하나요?

npm 패키지 @bitkyc08/opencodex로 설치하고 ocx start로 실행합니다. 문서는 opencodex.me에 있습니다.