AIFreeAPI Logo

Configurar Codex con config.toml: capas, permisos, perfiles y MCP

A
5 min readHerramientas de desarrollo con IA

No sustituyas un archivo sano por una plantilla completa: decide la capa propietaria, cambia un bloque y comprueba por separado sintaxis, precedencia, permisos, provider y MCP.

Panel de Codex que separa configuración personal, proyecto de confianza, perfil y override temporal

El archivo general de configuración de Codex es config.toml, no config.json. Aun así, conocer el nombre correcto no basta: una opción puede estar bien escrita y no aplicarse porque la pusiste en la capa equivocada, otro valor tiene mayor prioridad o una política administrada la limita.

Los valores personales viven en ~/.codex/config.toml. Un repositorio marcado como de confianza puede añadir .codex/config.toml. Los modos reutilizables se guardan en archivos de perfil separados y los experimentos de una sola ejecución encajan mejor como overrides de CLI. Codex CLI y la extensión de IDE comparten estas capas en el mismo host. OpenAI documenta las ubicaciones en Config basics.

Antes de tocar una capa, respalda solo el archivo afectado. Borrar todo ~/.codex para corregir una tabla puede eliminar también credenciales, perfiles, reglas y estado que siguen funcionando.

La precedencia decide qué valor es efectivo

Codex resuelve la configuración ordinaria de mayor a menor prioridad:

  1. opciones CLI y --config;
  2. archivos .codex/config.toml de un proyecto de confianza, ganando el más cercano al directorio actual;
  3. el perfil elegido con --profile;
  4. ~/.codex/config.toml;
  5. /etc/codex/config.toml en Unix, si existe;
  6. valores integrados.

Esta es la secuencia actual de Configuration precedence. Si cambias el archivo personal y no ocurre nada, busca primero un override de CLI, proyecto o perfil.

Capas de configuración de Codex desde CLI y proyecto hasta perfil, usuario, sistema y valores integrados
Capas de configuración de Codex desde CLI y proyecto hasta perfil, usuario, sistema y valores integrados
NecesidadCapa adecuadaMotivo
Modelo, razonamiento, avisos o MCP personalesUsuarioDeben acompañarte entre proyectos
Límite de ejecución de un repositorioProyecto de confianzaLa política viaja con ese código
Modo de auditoría o revisión profundaPerfil separadoCambia un conjunto sin duplicar la base
Prueba puntualCLI overrideNo se convierte en política persistente
Restricción obligatoria de empresaRequirements administradosEl usuario no puede debilitarla

Hay claves que un proyecto no puede sobrescribir: clases machine-local de provider, autenticación, selección de perfil, notificaciones y telemetría. La lista actual incluye model_provider, model_providers, profile y otel. Consulta el listado completo en Configuration reference y coloca esas claves en el nivel de usuario.

Un mínimo seguro es mejor que un catálogo

Una base personal puede expresar solo las decisiones necesarias:

toml
model = "gpt-5.6" model_reasoning_effort = "high" approval_policy = "on-request" sandbox_mode = "workspace-write" web_search = "cached"

Comprueba que el identificador de modelo esté disponible en tu cliente, cuenta y ruta actuales. Es un dato cambiante, no una promesa permanente. Si el default instalado ya sirve, omite la clave: cada valor persistente añade una decisión que tendrás que mantener.

approval_policy controla cuándo Codex se detiene para pedir aprobación. sandbox_mode controla el alcance de los comandos. Son barreras distintas. OpenAI presenta workspace-write con on-request como combinación de menor riesgo para automatización local. danger-full-access con never elimina ambas y no debería ser el atajo cotidiano. Las definiciones actuales están en Sandbox: Configure defaults.

El acceso web también es independiente. El web_search superior admite cached, indexed, live y disabled. Los toggles antiguos bajo [features] están obsoletos; que una plantilla vieja sea TOML válido no significa que siga representando el contrato actual.

Los perfiles actuales son archivos independientes

Un modo de revisión conservador puede vivir en:

toml
# ~/.codex/revision.config.toml model_reasoning_effort = "xhigh" approval_policy = "on-request" sandbox_mode = "read-only"

Se activa así:

bash
codex --profile revision

El perfil solo necesita las diferencias respecto a la base. Proyecto y CLI aún pueden tener prioridad. Desde Codex 0.134.0, --profile ya no lee [profiles.revision] dentro del archivo principal y el selector superior profile = "revision" dejó de estar soportado. El formato vigente está en Advanced Config: Profiles.

El provider es una ruta específica, no parte del mínimo universal

Bedrock, Azure y un provider personalizado tienen contratos diferentes. Antes de copiar su bloque, confirma cuatro hechos: qué superficie de Codex vas a usar, qué identificador de modelo o deployment espera esa ruta, qué endpoint es correcto y dónde obtiene la credencial el proceso.

Una tabla de provider puede analizarse bien aunque el endpoint no exista, el modelo no esté desplegado, la clave pertenezca a otra cuenta o la IDE no herede la variable de entorno. Por eso conviene mantener el baseline general separado de la guía del provider concreto.

No pegues una clave real en el TOML de un repositorio ni en un mensaje de soporte. Cuando el campo admita una variable de entorno, guarda el nombre de la variable y verifica por separado que el proceso CLI, IDE, WSL o runner pueda verla.

Un MCP tiene sintaxis, transporte, credencial y tools

Para un servidor STDIO local:

toml
[mcp_servers.docs] command = "docs-server" args = ["--read-only"] env_vars = ["DOCS_TOKEN"] startup_timeout_sec = 20 tool_timeout_sec = 60 enabled = true

Para streamable HTTP:

toml
[mcp_servers.tareas] url = "https://mcp.example.internal/mcp" bearer_token_env_var = "TAREAS_MCP_TOKEN" enabled = true

La guía oficial de Model Context Protocol distingue STDIO, streamable HTTP, OAuth, headers desde entorno, timeouts y listas de tools.

Después de editar, usa los comandos que ofrezca tu versión instalada:

bash
codex mcp list codex mcp --help

Para un servidor OAuth existe codex mcp login <server-name>. Aparecer en la lista prueba que Codex leyó la definición; no prueba que el ejecutable arranque, la URL responda, la autenticación funcione ni que una tool concreta sea correcta.

Diagnostica desde el primer límite sin demostrar

Versiones recientes exponen --strict-config y doctor. Comprueba primero tu instalación:

bash
codex --version codex --help codex doctor --help

Si aparecen esas opciones, una pasada de solo lectura es:

bash
codex --strict-config doctor --summary

El modo strict convierte campos no reconocidos en error. doctor revisa instalación, config, auth y runtime. Ninguno sustituye una petición real al provider o una llamada a la tool MCP.

Diagnóstico de Codex dividido en archivo, TOML, precedencia, permisos, provider, red y MCP
Diagnóstico de Codex dividido en archivo, TOML, precedencia, permisos, provider, red y MCP
SíntomaPrimera comprobación
Solo se ignora en un repoTrust y .codex/config.toml más cercano
CLI funciona, IDE no ve la claveEntorno efectivo del proceso IDE
Unknown field al iniciarVersión del cliente y reference actual
Cambias model pero sigue otra rutamodel_provider, perfil, proyecto y CLI
MCP aparece pero no ofrece toolsCommand/URL, auth, timeout y tool individual
Un equipo corporativo rechaza full accessrequirements.toml administrado

En Business o Enterprise, requirements.toml puede limitar approval, permission profiles, web search, MCP permitidos, plugins y features. Ante un conflicto, el cliente puede volver a un valor compatible y mostrar un aviso. Admin-enforced requirements describe esa frontera. Mover la misma opción prohibida a otro archivo local no la supera.

Haz que cada cambio tenga un único resultado observable: elige la capa, crea una copia, modifica un bloque, valida sintaxis y precedencia, y ejecuta una tarea de bajo riesgo donde se vea el efecto. Si falla, vuelve al primer límite que todavía no hayas demostrado.

Si la decisión real es elegir agente de programación y no configurar Codex, consulta la comparación entre Claude Code y Codex.