La App OpenAI Codex es el agente de programación con IA más potente disponible en 2026, pero no tiene por qué costarte ni un céntimo. Al conectar Codex con modelos locales mediante Ollama, LM Studio, Unsloth o llama.cpp, obtienes la experiencia agéntica completa de programación ejecutándose íntegramente en tu propio hardware. Cero costes de API. Privacidad total. Sin límites de uso.
Esta guía cubre todos los métodos de configuración, los mejores modelos para usar, una comparativa completa entre GPT-5.5 en la nube y los modelos locales, benchmarks de rendimiento reales, limitaciones y flujos de trabajo prácticos. Tanto si tienes un MacBook con 16 GB de RAM como una estación de trabajo con una RTX 4090, esta es tu referencia completa para ejecutar la app Codex con modelos locales en 2026.
¿Qué es la App OpenAI Codex?
OpenAI distribuye Codex en tres formatos. Entender la diferencia es clave para configurar modelos locales:
| Formato | Qué es | ¿Modelos locales? |
|---|---|---|
| App Codex (escritorio) | App de escritorio para macOS/Windows. Orquestación multiagente, worktrees, automatizaciones, Computer Use, navegador integrado y más de 90 plugins. | Sí (mediante config.toml) |
| Codex CLI | Agente de programación basado en terminal. Se ejecuta en tu shell, lee y escribe archivos, y ejecuta comandos. | Sí (mediante config.toml o variables de entorno) |
| Codex Agent (ChatGPT) | Agente exclusivo en la nube dentro de ChatGPT. Se ejecuta en entornos aislados en los servidores de OpenAI. | No (solo en la nube) |
Cronología
- 2 de febrero de 2026: se lanza la App Codex en macOS
- 4 de marzo de 2026: se añade compatibilidad con Windows
- 16 de abril de 2026: gran ampliación: Computer Use, navegador integrado, generación de imágenes, más de 90 plugins, vista previa de memoria y automatizaciones
La actualización del 16 de abril transformó Codex de una herramienta solo de código en una plataforma completa de automatización de escritorio. GPT-5.5 (nombre en clave «Spud») impulsa la versión en la nube con mejor manejo de contexto, mayor calidad de código y eficiencia de tokens.
¿Por qué usar modelos locales con Codex?
- Coste de 0 €: no necesitas suscripción a ChatGPT Plus/Pro. Ejecuta tareas de programación ilimitadas.
- Privacidad: el código propietario nunca sale de tu máquina. Crítico para empresas, defensa y sanidad.
- Sin conexión: programa en aviones, redes restringidas o entornos aislados (air-gapped).
- Sin límites de uso: Codex en la nube limita a los usuarios intensivos. En local no hay topes.
- Modelos personalizados: usa modelos afinados (fine-tuned) entrenados sobre tu propia base de código.
- Experimentación: prueba distintos modelos al instante sin preocuparte por la factura.
Requisitos previos y de hardware
| Nivel | Hardware | Mejor modelo | Tokens/seg |
|---|---|---|---|
| Mínimo | 16 GB de RAM (Apple Silicon) o RTX 3060 12 GB | GLM-4.7-Flash (Q4) | 8-15 |
| Recomendado | 32 GB de RAM (M1 Pro/Max) o RTX 4070 Ti 16 GB | Qwen3-Coder 30B (Q4) | 15-25 |
| Ideal | 64 GB+ de RAM (M4 Max) o RTX 4090 24 GB | Qwen2.5-Coder-32B (Q6) | 20-35 |
Requisitos de software
- App Codex o CLI:
brew install --cask codex(Mac) onpm install -g @openai/codex(Linux/Windows) - Servidor de inferencia local: Ollama, LM Studio, Unsloth Studio o llama.cpp
- Modelo con tool calling: se recomienda GLM-4.7-Flash, Qwen3-Coder o GPT-OSS
Método 1: configuración con Ollama
El enfoque más sencillo. Ollama gestiona los modelos y expone una API compatible con OpenAI.
Paso 1: instala Ollama y descarga el modelo
# Instala Ollama
brew install ollama # macOS
# o: curl -fsSL https://ollama.com/install.sh | sh # Linux
# Descarga el modelo recomendado
ollama pull glm-4.7-flash
# Inicia el servidor de Ollama (si no está en marcha)
ollama serve
Paso 2: configura config.toml
Crea o edita ~/.codex/config.toml:
[model_providers.ollama]
name = "Ollama Local"
base_url = "http://localhost:11434/v1"
wire_api = "responses"
[profiles.local]
model_provider = "ollama"
model = "glm-4.7-flash"
Paso 3: lanza Codex
codex --profile local
O bien especificando el modelo en línea:
codex --model glm-4.7-flash -c model_provider=ollama
Método 2: configuración con LM Studio
- Descarga e instala LM Studio
- Busca y descarga GLM-4.7-Flash-GGUF (se recomienda la cuantización Q4_K_M)
- Ve a la pestaña Local Server → carga el modelo → haz clic en Start Server
- Anota el puerto (por defecto: 1234)
Añade a ~/.codex/config.toml:
[model_providers.lmstudio]
name = "LM Studio"
base_url = "http://localhost:1234/v1"
wire_api = "responses"
[profiles.lmstudio]
model_provider = "lmstudio"
model = "glm-4.7-flash"
codex --profile lmstudio
Método 3: configuración con Unsloth Studio
Unsloth ofrece una interfaz web con tool calling autorreparable y ajuste automático de los parámetros de inferencia:
Paso 1: lanza Unsloth y carga tu modelo
Paso 2: exporta la clave de API
export UNSLOTH_STUDIO_API_KEY=sk-uns...xxxx
Paso 3: configura config.toml
[model_providers.unsloth_api]
name = "Unsloth Studio"
base_url = "http://localhost:8888/v1"
env_key = "UNSLOTH_STUDIO_API_KEY"
wire_api = "responses"
[profiles.unsloth_api]
model_provider = "unsloth_api"
model = "gpt-oss-20b-GGUF"
Paso 4: lanza Codex
codex -p unsloth_api
Método 4: configuración con llama.cpp
Para máximo control y ajuste fino del rendimiento, compila llama.cpp desde el código fuente:
Paso 1: compila llama.cpp
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON # Usa -DGGML_CUDA=OFF para CPU/Metal
cmake --build llama.cpp/build --config Release -j \
--clean-first --target llama-server
cp llama.cpp/build/bin/llama-server llama.cpp/
Paso 2: descarga el modelo
pip install huggingface_hub hf_transfer
python -c "
import os; os.environ['HF_HUB_ENABLE_HF_TRANSFER'] = '1'
from huggingface_hub import snapshot_download
snapshot_download(
repo_id='unsloth/GLM-4.7-Flash-GGUF',
local_dir='models/GLM-4.7-Flash-GGUF',
allow_patterns=['*UD-Q4_K_XL*']
)"
Paso 3: arranca el servidor
./llama.cpp/llama-server \
--model models/GLM-4.7-Flash-GGUF/GLM-4.7-Flash-UD-Q4_K_XL.gguf \
--alias "unsloth/GLM-4.7-Flash" \
--port 8001 \
--ctx-size 131072 \
--flash-attn on \
--cache-type-k q8_0 --cache-type-v q8_0 \
--batch-size 4096 --ubatch-size 1024 \
--temp 1.0 --top-p 0.95 --min-p 0.01
Paso 4: configura Codex
[model_providers.llama_cpp]
name = "llama_cpp API"
base_url = "http://localhost:8001/v1"
wire_api = "responses"
stream_idle_timeout_ms = 10000000
[profiles.llama_cpp]
model_provider = "llama_cpp"
model = "unsloth/GLM-4.7-Flash"
codex --model unsloth/GLM-4.7-Flash -c model_provider=llama_cpp
Los mejores modelos locales para Codex
| Modelo | Parámetros | Contexto | Tool calling | VRAM/RAM | Veredicto |
|---|---|---|---|---|---|
| GLM-4.7-Flash ⭐ | 30B MoE (3B activos) | 128K | Sí (79,5 %) | ~6,5 GB | El mejor en general: rápido, capaz y poco exigente |
| Qwen3-Coder | 30B | 128K | Sí | ~20 GB | Gran calidad de código, requiere más hardware |
| GPT-OSS:20B | 20B | 32K | Sí | ~12 GB | Buen propósito general, contexto más reducido |
| Devstral-Small-2 | 24B | 128K | Sí | ~16 GB | Centrado en código, tool calling sólido |
| Qwen3-Coder-Next | 30B+ | 128K | Sí | ~20 GB | Última iteración, razonamiento mejorado |
Comparativa completa: GPT-5.5 en la nube frente a modelos locales
| Característica | Codex Cloud (GPT-5.5) | Modelos locales | Ollama Cloud (gratis) |
|---|---|---|---|
| Velocidad | 60-80 tok/s | 8-25 tok/s | 30-60 tok/s |
| Calidad de código | La mejor de su clase (SWE-bench 90,2 %) | 70-85 % de la calidad en la nube | 85-95 % de la calidad en la nube |
| Computer Use | ✅ Control total del escritorio | ❌ No disponible | ❌ No disponible |
| Navegador integrado | ✅ Navegar y comentar | ❌ No disponible | ❌ No disponible |
| Automatizaciones | ✅ Programadas y recurrentes | ❌ No disponible | ❌ No disponible |
| Memoria | ✅ Recuerda preferencias | ❌ No disponible | ❌ No disponible |
| Más de 90 plugins | ✅ Catálogo completo | ❌ La mayoría no disponibles | ❌ La mayoría no disponibles |
| Generación de imágenes | ✅ gpt-image-1.5 | ❌ No disponible | ❌ No disponible |
| Razonamiento multiarchivo | Excelente | Aceptable | Bueno |
| Coste mensual | 20-200 $ | 0 $ | 0 $ |
| Privacidad | Datos enviados a OpenAI | 100 % local | Datos enviados al proveedor |
| Sin conexión | No | Sí | No |
| Límites de uso | Sí | Ninguno | Sí (generosos) |
| Wire API | Responses (nativo) | Responses (obligatorio) | Responses (obligatorio) |
Benchmarks de rendimiento
| Configuración | Tokens/seg | Coste/mes | Puntuación de calidad |
|---|---|---|---|
| GPT-5.5 Cloud (predeterminado en Codex) | 60-80 | 20-200 $ | 10/10 |
| Ollama Cloud (qwen3.5:cloud) | 30-60 | 0 $ | 8,5/10 |
| RTX 4090 (GLM-4.7-Flash) | 20-30 | ~12 $ | 7,5/10 |
| RTX 4070 Ti (GLM-4.7-Flash Q4) | 15-25 | ~10 $ | 7,5/10 |
| M4 Max 64 GB (Qwen3-Coder) | 15-20 | ~5 $ | 8/10 |
| M1 Max 32 GB (GLM-4.7-Flash) | 10-15 | ~4 $ | 7/10 |
| RTX 3060 12 GB (GLM-4.7-Flash) | 8-15 | ~8 $ | 7/10 |
Limitaciones
Cosas críticas que debes entender antes de pasarte a local:
- wire_api = "responses" es obligatorio: Codex ha retirado el soporte de Chat Completions. Tu servidor local DEBE soportar la API de Responses de OpenAI en
/v1/responses. Ollama, Unsloth y las versiones recientes de llama.cpp lo admiten. - Computer Use solo está en la nube: la función de automatización de escritorio (clicar, escribir en apps) requiere GPT-5.5 y la infraestructura de OpenAI. NO funciona con modelos locales.
- Automatizaciones/programación deshabilitadas: las tareas recurrentes, la reutilización de hilos y la programación de trabajo futuro requieren conexión a la nube.
- La memoria no persiste: la función de «recordar preferencias» es exclusiva de la nube.
- La mayoría de plugins no están disponibles: los más de 90 plugins (Atlassian, GitLab, CircleCI, etc.) requieren autenticación en la nube.
- Inferencia más lenta (3-10x): las tareas sencillas tardan 3 veces más; las complejas, hasta 10 veces más que en la nube.
- Razonamiento multiarchivo más débil: los modelos locales tienen problemas con dependencias entre archivos y comprensión arquitectónica.
- La precisión de las ediciones cae: GPT-5.5 en la nube tiene ~98 % de precisión en ediciones. Los modelos locales rondan el 70-80 %, lo que se traduce en parches rotos que requieren correcciones manuales.
- El tool calling puede fallar: los modelos sin un buen soporte de tool calling generarán descripciones de texto en lugar de ejecutar acciones.
Posibilidades
- Programación ilimitada y gratuita: ejecuta miles de tareas sin vigilar el contador de facturación.
- Privacidad total: secretos comerciales, algoritmos propietarios, código de clientes... todo se queda en local.
- Cumplimiento de RGPD/HIPAA: cero transferencia transfronteriza de datos. Sin necesidad de DPAs con terceros.
- Flujo de trabajo híbrido: usa
--profile localpara trabajo sensible y--profile cloudpara tareas complejas. Cambias con un solo flag. - Modelos personalizados afinados: entrena modelos específicos de tu dominio con tu base de código y úsalos a través de Codex.
- Desarrollo sin conexión: aeropuertos, zonas rurales, instalaciones clasificadas... programa con IA en cualquier sitio.
- Estandarización del equipo: comparte config.toml en tu equipo para configuraciones locales consistentes.
- Pruebas A/B de modelos: compara distintos modelos en la misma tarea al instante.
Análisis de costes
| Opción | Inversión inicial | Mensual | Total a 6 meses | Total a 12 meses | Calidad |
|---|---|---|---|---|---|
| ChatGPT Plus (Codex Cloud) | 0 $ | 20 $ | 120 $ | 240 $ | La mejor |
| ChatGPT Pro | 0 $ | 200 $ | 1 200 $ | 2 400 $ | La mejor + ilimitado |
| GPU local (RTX 4070 Ti) | 489 $ | ~10 $ | 549 $ | 609 $ | 70-85 % |
| Mac existente (16 GB+) | 0 $ | ~4 $ | 24 $ | 48 $ | 70-85 % |
| Modelos de Ollama Cloud | 0 $ | 0 $ | 0 $ | 0 $ | 85-95 % |
Mejor relación calidad-precio: los modelos de Ollama Cloud ofrecen el 85-95 % de la calidad de la nube por 0 $. Si la privacidad no es un requisito estricto, empieza por aquí.
Solución de problemas
Error «type of tool must be function»
Significa que tu servidor no soporta correctamente wire_api = "responses". Actualiza a la última versión de tu servidor de inferencia (Ollama 0.14.3+, llama.cpp más reciente).
Modelo no encontrado
- Comprueba los modelos disponibles:
ollama listocurl http://localhost:8001/v1/models - Usa en config.toml el nombre exacto del modelo tal y como aparece en la respuesta de la API
Codex se cuelga o agota el tiempo de espera
- Añade
stream_idle_timeout_ms = 10000000a la configuración de tu model_provider - Los modelos locales son más lentos: Codex puede agotar el tiempo de espera en tareas complejas
El tool calling no funciona
- Verifica que tu modelo soporte tool calling (se recomienda GLM-4.7-Flash)
- Habilita las plantillas jinja en llama.cpp: añade el flag
--jinja - Comprueba que
wire_api = "responses"esté configurado (no «chat»)
Preguntas frecuentes
¿Puede la app de escritorio Codex usar modelos locales?
Sí. La App Codex lee desde ~/.codex/config.toml y admite proveedores de modelos personalizados que apunten a servidores locales. Se configura un model_provider con una base_url local y se selecciona mediante perfiles.
¿Funciona Computer Use con modelos locales?
No. Computer Use (la automatización de escritorio en segundo plano) es exclusivo de la nube y requiere GPT-5.5 e infraestructura de OpenAI. Los modelos locales no pueden controlar tu escritorio.
¿Cuál es la diferencia entre la App Codex y la CLI de Codex con modelos locales?
Ambas usan el mismo config.toml y soportan los mismos proveedores de modelos locales. La App añade funciones de interfaz gráfica (visualización de worktrees, pestañas de terminal, paneles de previsualización), mientras que la CLI es solo terminal. Las funciones exclusivas de la nube (Computer Use, automatizaciones, plugins) no están disponibles en ninguna de las dos cuando se usan modelos locales.
¿Qué modelo local es mejor para Codex?
GLM-4.7-Flash es la mejor elección: 128K de contexto, tool calling sólido (79,5 %) y se ejecuta con 16 GB de RAM gracias a su arquitectura MoE. Para calidad pura de código, Qwen3-Coder 30B es ligeramente mejor pero requiere 20 GB+ de VRAM.
¿Sigue siendo compatible la API de Chat Completions?
No. OpenAI ha retirado el soporte de Chat Completions en Codex. Debes usar wire_api = "responses" en tu config.toml. Los servidores que solo expongan /v1/chat/completions no funcionarán.
¿Puedo usar los modelos gratuitos de Ollama Cloud con Codex?
Sí. Ollama hace de proxy con modelos como qwen3.5:cloud y glm-5:cloud con generosas capas gratuitas. Funcionan a 30-60 tok/s sin más requisitos de hardware que ejecutar Ollama. Configúralos igual que los modelos locales en config.toml.
Flujo de trabajo recomendado
La configuración más productiva combina local y nube:
# ~/.codex/config.toml
# Por defecto, local para preservar la privacidad
model_provider = "ollama"
model = "glm-4.7-flash"
[model_providers.ollama]
name = "Ollama Local"
base_url = "http://localhost:11434/v1"
wire_api = "responses"
[model_providers.cloud]
name = "OpenAI Cloud"
# Usa la API por defecto de OpenAI
[profiles.local]
model_provider = "ollama"
model = "glm-4.7-flash"
[profiles.cloud]
model_provider = "cloud"
model = "gpt-5.5"
[profiles.free]
model_provider = "ollama"
model = "qwen3.5:cloud"
Uso diario:
# Trabajo privado (código sensible)
codex --profile local "corrige el módulo de autenticación"
# Tareas complejas (que requieren calidad)
codex --profile cloud "refactoriza todo el sistema de pagos"
# Gratis y rápido (no sensible)
codex --profile free "añade documentación a todas las funciones"
Para una comparativa más amplia de herramientas de programación con IA, consulta nuestra comparativa entre Cursor, Windsurf y Claude Code. Y si estás creando proyectos creativos, prueba nuestro Generador de imágenes con IA gratuito.









