Codex External Provider : deepseek로 codex 돌리기

예준천
  1. agent

들어가며

저는 codex의 헤비 유저입니다. 오픈클로와 헤르메스도 깔아두었지만, 요즘은 코덱스를 제일 많이 사용하고 있습니다.
AI 기업들이 Subscription 비용의 수십배에 달하는(단순히 API로 구매했다고 가정한다면) 토큰을 구독제와 에이전트 서비스에 제공하고 있다는 이야기는 들어보셨을 겁니다.
저만 하더라도 Input : Output 을 7:3으로 가정 했을 때 (Cached Input 을 고려하더라도) 90만원짜리 요금제에 사용한 토큰량이 API로 구매했다고 한다면 수천만원에 달하더군요.
물론 똑똑한 토큰의 비용이 시간이 지남에 따라 저렴해질 것이라는 믿음은 있습니다.
전력, 칩, 모델, 데이터, 하네스의 5계층이 모두 발전하고 있으니 이에 대한 비관론을 가지지는 않습니다.
다만, 단기적으로 재정적으로 위험한 불가능할 정도로 퍼주는 이 출혈 경쟁이 오래 지속될 것 같지는 않습니다.
Codex가 OpenAI의 GPT 모델 말고도 외부 Provider의 모델들도 지원한다는 사실을 얼마 전 처음 알았습니다.

코덱스가 좋은 이유

굳이 설정까지 해가면서 codex를 쓰는 이유가 무엇인지, 내가 왜 요새 codex를 가장 많이 사용하는지 고민해보았습니다. 사실 다른 provider 자체에서 제공하는 cli 들이나, opencode 같은 제품들도 있을텐데요.
플러그인 설치가 매우 쉽습니다.
플러그인이 마켓플레이스에 추가되는 추세가 매우 가파릅니다. (올해 초만 하더라도 10개 내외였던 거 같은데, 지금은 2일에 한번씩은 추가가 되는 것 같습니다.)
computer use 와 browse use, 그리고 이번에 나온 Record & Replay 까지. 내가 정교하게 스킬을 만들지 않더라도 얘가 다 해줍니다. (다만, 지금은 브라우저를 다루는 방법이 너무 다분화되어있어 헷갈리긴 합니다.)
사이드채팅이 가능합니다.
(25년 초 쯤 아이패드로 끄적였던 아이디어중에 '횡으로만 진행되는 컨텍스트 채팅을 벗어난 새로운 LLM 소통 UX' 로 그리드 기반의 2차원 채팅이 있었는데요. 이걸 codex에서 더 멋진 해결책으로 만들어주니 행복하게 쓰고 있습니다.)
- 큰 분기가 생겨서 다른 버전을 만들고 싶거나, 작업이 나뉘었다면 (그리고 위 쪽에 있던 컨텍스트를 사용해야한다면) local 에 fork 하여 작업 이어나가기.
- 이 큰 스레드에서 작은 질문사항이나, 사소한 요구사항들(잔가지)은 사이드채팅에서 처리.
별도의 IDE를 사용하지 않아도 됩니다. 클로드코드 쓰던 시절에는 IDE 터미널이나 플러그인으로 에이전트를 띄워서 쓰거나, 클로드 앱을 키더라도 서버 실행, 코드베이스 확인, 터미널 명령들을 타이핑하기위해 IDE 도 같이 켜놨어야했는데요.
코덱스는 파일탐색기, 파일 미리보기, 워크스페이스에 대한 터미널, 브라우저까지 모두 있습니다. 그것도 굉장히 간결하고 컴팩트하게.
디자인이 깔끔하고, 인지적 부담이 적습니다.
어플리케이션으로서의 완성도가 그 어느 경쟁자보다 뛰어납니다. 그래서 꼭 개발 작업이 아닌 일상작업에서도 거리낌 없이 손이갑니다.
오픈소스와 다른 에이전트들에서 바이럴이 된 좋은 기능이 있다면, 2주일이면 긴빠이(?)를 해옵니다.
Goal(OmO), btw(클로드코드), 인앱브라우저(커서)
사실 오픈클로 개발자 영입한 것 부터, 개인용 에이전트 만들겠다는 강력한 의지표명이고, 이런 기능들이 점점 많이 생기고 있습니다.
모바일 기능(ChatGPT ios app에서 내 로컬에 있는 codex로 명령을 실행할 수 있습니다. )이 너무너무 편합니다. 이 기능을 출시하면서 caffeinate 기능도 코덱스 설정에 포함을 시켜서 맥북 닫아놓고 폰으로 이것저것 시킬 수 있습니다. 한번은 센터에 노트북을 두고왔는데 필요한 파일이 있어서 모바일로 이거 파일 가져와줘로 모바일로 받아본 경험도 있습니다.
OpenAI의 GPT 모델은 멀티모달이 됩니다. 따로 API를 연결하지 않아도 Transcription 이 가능하고 (물론 앱에서만) 개발이나 작업중 필요한 에셋이나 이미지가 있다면 이미지 모델로 스스로 만들어 냅니다.
토큰 제한이 매우 넉넉합니다. 그리고 이 넉넉한 토큰 제한으로 OAuth로 이것저것 할 수 있는 것도 너무 좋습니다.(Openclaw, Hermes, Aside...)

외부 제공자로 Codex 돌리기

이걸 보고 따라해봤습니다. 마침 Deepseek API 에 충전된 크레딧이 남는게 있어서 이걸 사용해보고자 했다.
model = "deepseek-v4-flash"
model_provider = "deepseek"
[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat"

chat api 지원 종료

이렇게 했더니 오류가 나고, codex 앱을 키더라도 원래대로 OpenAI 플랜의 gpt 모델이 fallback으로 선택되었다.
알고보니 OpenAI Codex 공식 GitHub discussion #7782는 Codex가 기존 chat/completions wire API 지원을 단계적으로 종료하고 responseswire API로 통일한다는 내용을 담고 있다.
해당 공지에 따르면 Codex CLI는
chat/completions로 설정된 경우 먼저 deprecation warning을 띄우고, 2026년 2월부터는 이를 hard error로 전환해 지원을 완전히 제거할 예정이라고 설명한다. 특히 custom model provider를 쓰는 사용자는 기존에 wire_api = "chat"을 사용했거나 wire_api를 생략했다면 provider 설정을 명시적으로 wire_api = "responses"로 바꿔야 한다고 안내한다.
이는 Codex가 단순 채팅 클라이언트가 아니라 코드 수정, 도구 호출, 에이전트 루프를 다루는 개발 도구이기 때문에, OpenAI가 새 표준으로 밀고 있는 Responses API에 맞추려는 변화로 볼 수 있다.

response api를 아직 지원하지 않습니다.

그래서 wire_api를 response로 수정했는데, 이젠 인증 실패 오류들이 떴다.
- Reconnecting... 5/5 (16s • esc to interrupt) └ Unexpected status 401 Unauthorized: Authentication Fails (governor), url: https://api.deepseek.com/v1/responses
따라서 DeepSeek나 Mistral처럼 /v1/chat/completions 호환만 제공하는 API는 최신 Codex에 직접 붙이기 어렵고, /v1/responses를 지원하는 provider나 변환 proxy가 필요했다.

오픈라우터

생각보다 Response API를 지원하는 모델들이 그래서 대안을 찾던 중에, OpenRouter를 발견했다. 여기는 모델들을 여러 Provider 들에서 서빙을 하고, 키 하나로 라우팅해가면서 쓸수 있는 게이트웨이 서비스이다.
거기다가 BYOK 방식으로 내가 가진 키를 등록하면, 인당 월 100M 요청까지는 수수료 안받고 라우팅을 해준다고한다.

먼저 Workspace > BYOK 에서 가지고 있는 프로바이더의 API 키를 등록한다.

그리고 오픈라우터 API Key를 생성한다.
여기서 가드레일을 설정해주어야합니다. (우측 하단 Actions에 configure 버튼... )
워크스페이스나 계정 전체에 전역으로 걸어도 되고, 이 API Key에 대해서만 걸어줘도 됩니다.
사용하고자 하는 모델이 있는 Provider를 Allowed List에 넣어줍니다. 이때 하나의 모델에 대해서도 여러 공급자들이 있는데, 각 공급자별로 데이터 활용정책과 비용이 조금 다를 수 있습니다.
내가 입력과 컨텍스트로 입력할 데이터가 모델의 학습으로 사용되어도 괜찮으시다면 아래에서 Paid endpoints that may train on request data 를 허용해주면 됩니다.
그렇지 않으면 여러 Provider 들 중에 Data Policy 에 의해 딥시크 본사에서 직접 제공하는 서빙 환경(내가 직접 등록한 BYOK API key)은 막힙니다.
초반에 왜 BYOK가 안되고 크레딧을 사용하여 StreamLake에서 서빙하는 딥시크가 돌아갔을까 고민했는데, 데이터 제공 정책(딥시크가 당신 데이터 쓸 수 있어요)에 동의를 안해줘서였다.
보안과 데이터가 중요한 사용자의 경우 굳이 복잡하게 이렇게 하지 않고, 5%수수료 내더라도 데이터도 지키고, 크레딧도 일원화되서 관리하면 더 좋을 수 있다.
model = "deepseek/deepseek-v4-pro"
model_provider = "openrouter"
model_reasoning_effort = "minimal"


[model_providers.openrouter]
name = "OpenRouter"
base_url = "https://openrouter.ai/api/v1"
env_key = "OPENROUTER_API_KEY"
wire_api = "responses"
그리고 .codex/config.toml 에 값을 이렇게 설정하면 codex 는 이제 짭덱스가 된다.

짭덱스 리뷰


gpt5.5가 아니라 맞춤형으로 뜬다...!

프로필을 바꾸니, 옛날 채팅내역은 보이지 않는다. 물론 프로필을 다시 기본으로 돌리면 복원되긴한다.

사용가능한 플러그인의 종류도 현저히 적어진다. 이게 모델 종류에 따라서 달라지는건 아닌 것 같고, 기준이 뭔지는 모르겠다.


deepseek 는 놀랍게도 멀티모달 입력을 지원하지 않는다. 그래서 스크린샷을 처리하려하면 바로 오류가 뜬다.

더 심각한건 한번 컨텍스트에 이미지가 들어간 순간 그 채팅은 컨텍스트에 그 이미지를 가지고 있어서 계속 오류가 뜬다는거다.

그래서 그냥 쾌적하게 카카오톡이 선물해준 90% 할인된 ChatGPT Pro Plan 이나 쓰기로 했다
Yejun Cheon
Subscribe to 'Yejun Cheon'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'Yejun Cheon'!
Subscribe
👍