CodexBridge es una herramienta local de puente cuyo objetivo es claro: exponer Codex CLI/SDK como un servicio HTTP compatible con OpenAI. Así, Codex deja de estar limitado al terminal y puede ser llamado desde OpenWebUI, Cherry Studio, scripts, sistemas de automatización o cualquier cliente compatible con OpenAI Chat Completions.
Sus endpoints principales son /v1/chat/completions y /v1/models. El primero gestiona conversaciones y admite respuestas normales y transmisión SSE. El segundo permite a los clientes descubrir modelos como si leyeran una lista de modelos estilo OpenAI. Para herramientas que ya soportan OpenAI API, normalmente basta con cambiar el base URL, la API key y el nombre del modelo.
Proyecto: https://github.com/begonia599/CodexBridge
Cuándo usarlo
CodexBridge encaja cuando quieres integrar Codex en clientes o flujos de trabajo existentes. Por ejemplo:
- Seleccionar Codex directamente en OpenWebUI o Cherry Studio.
- Llamar a Codex local desde
curl, Python, Node.js u otros scripts. - Conectar un mismo frontend a OpenAI, Ollama, otras APIs compatibles y Codex.
- Conservar los hilos locales, sandbox, directorio de trabajo y aprobaciones de Codex.
- Ofrecer a herramientas internas una entrada unificada
/v1/chat/completions.
No es un nuevo LLM ni un reemplazo completo de Codex CLI. Es más bien una capa adaptadora: Codex sigue siendo el motor aguas arriba, y el puente convierte solicitudes estilo OpenAI en entradas de conversación que Codex entiende.
Requisitos básicos
Antes de ejecutarlo necesitas:
- Node.js 18 o superior.
- Codex CLI instalado y con sesión iniciada.
- npm, o pnpm / yarn si lo prefieres.
Despliegue básico desde código fuente:
|
|
Luego edita .env o .env.local para definir la API key, modelo predeterminado, directorio de trabajo, modo sandbox, acceso de red y otras opciones.
Inicia el servicio HTTP:
|
|
El puerto predeterminado es 8080, configurable con PORT. Tras iniciar, el servicio expone:
|
|
Modo de conversación CLI
Además del servicio HTTP, CodexBridge conserva una CLI ligera:
|
|
Desde la CLI puedes escribir mensajes en lenguaje natural para conversar con Codex. Dos comandos útiles son:
/reset: crear un nuevo hilo de Codex./exit: salir de la CLI.
El ID del hilo actual se guarda en .codex_thread.json. Si este archivo sigue existiendo al iniciar la CLI de nuevo, puedes continuar la conversación anterior.
Ejemplo HTTP
Una solicitud mínima:
|
|
Puntos importantes:
- El token de
authorizationdebe coincidir conCODEX_BRIDGE_API_KEY. modelpuede incluir nivel de razonamiento, por ejemplogpt-5-codex:mediumogpt-5-codex:high.session_idvincula la solicitud a una conversación y permite reutilizar el mismo hilo de Codex.
Para salida en streaming, añade stream: true:
|
|
Para clientes que soportan respuestas en streaming de OpenAI, esta forma se siente más cercana a una conversación normal.
Persistencia de sesiones
Una función importante de CodexBridge es el mapeo de sesiones. La solicitud puede pasar un ID de sesión mediante estos campos:
session_idconversation_idthread_iduser
También puede pasarse por cabeceras:
x-session-idsession-idx-conversation-idx-thread-idx-user-id
En producción conviene activar:
|
|
Así todas las solicitudes deben incluir un ID de sesión, evitando que distintos usuarios o ventanas de chat se mezclen en el mismo contexto temporal. El mapeo del puente se guarda en .codex_threads.json. Borrar este archivo restablece la relación del puente; los hilos propios de Codex siguen en ~/.codex/sessions.
Si CODEX_REQUIRE_SESSION_ID=false y la solicitud no incluye ID de sesión, el puente expande los messages actuales como una entrada de un solo uso para Codex. Sirve para llamadas temporales, pero no para conversaciones largas.
Entrada multimodal
CodexBridge admite bloques de contenido estilo OpenAI y convierte imágenes en entradas local_image utilizables por Codex.
Imagen remota:
|
|
Imagen local:
|
|
Los recursos remotos se descargan primero en un directorio temporal y se limpian al final del turno. En uso real, presta atención al tamaño del cuerpo de la solicitud, especialmente cuando envías imágenes en base64. Puede que necesites aumentar CODEX_JSON_LIMIT.
Salida estructurada
Si el cliente soporta response_format, CodexBridge puede mapearlo al outputSchema de Codex. Es útil cuando quieres que Codex devuelva una estructura JSON fija, como resultados de revisión, resúmenes, clasificación o informes de automatización.
Ejemplo mínimo:
|
|
type: "json_schema" debe incluir schema; de lo contrario, el servicio devuelve 400.
Variables de entorno clave
La configuración común puede agruparse así.
Servicio y autenticación:
|
|
Modelo predeterminado:
|
|
Entorno de ejecución de Codex:
|
|
Acceso de red:
|
|
Si solo lo usas para chat desde un frontend, es más seguro mantener la red desactivada por defecto. Activa estas opciones solo cuando Codex necesite ejecutar curl, git clone o búsqueda web.
Docker y scripts de instalación
El proyecto también ofrece despliegue con Docker para mantener el servicio en ejecución:
|
|
También hay un script de instalación para Linux:
|
|
El script instala dependencias, clona o actualiza el repositorio, copia .env.example e inicia el servicio con Docker Compose. Requiere sudo, por lo que encaja mejor en un servidor limpio. Si la máquina ya tiene un entorno complejo de Node.js, Docker o Codex, revisa el script antes de ejecutarlo.
Problemas comunes
La solicitud devuelve 413
Normalmente el cuerpo es demasiado grande, a menudo por imágenes base64. Aumenta:
|
|
La API key no es válida
Comprueba que la cabecera incluya:
|
|
o usa x-api-key.
Codex informa una restricción de repositorio Git
Si el directorio de ejecución no es un repositorio confiable, Codex puede activar una verificación. Úsalo solo en entornos seguros:
|
|
Restablecer conversaciones
El mapeo del puente está en .codex_threads.json, y los hilos propios de Codex están en ~/.codex/sessions. Detén el servicio y borra los archivos o directorios correspondientes para restablecerlos.
Recomendaciones
Para pruebas locales, empieza con la API key predeterminada y el sandbox read-only. Cuando OpenWebUI, Cherry Studio o tus scripts llamen al servicio correctamente, ajusta gradualmente CODEX_WORKDIR, CODEX_SANDBOX_MODE, CODEX_NETWORK_ACCESS y CODEX_APPROVAL_POLICY.
Si lo usarán varias personas, al menos:
- Exige
session_id. - Cambia la API key predeterminada.
- Limita claramente el directorio de trabajo y los permisos del sandbox.
El valor de CodexBridge no está en tener muchas funciones, sino en colocar Codex dentro del ecosistema compatible con OpenAI. Si un cliente permite cambiar el base URL, puede tratar Codex como un modelo de chat normal y conservar al mismo tiempo sus hilos locales, sandbox y llamadas a herramientas.