Usa esta página como referencia consultable para los archivos de configuración de Codex. Para obtener orientación conceptual y ejemplos, comienza por Aspectos básicos de la configuración y Configuración avanzada .
config.toml
La configuración de nivel de usuario se encuentra en ~/.codex/config.toml. También puedes añadir anulaciones específicas del proyecto en archivos .codex/config.toml. Codex solo carga los archivos de configuración específicos del proyecto cuando confías en él.
La configuración específica del proyecto no puede anular las claves locales del equipo relacionadas con el proveedor, la autenticación,
los metadatos de solicitudes de aplicaciones propiedad del host, las notificaciones, la selección del perfil de configuración
o el enrutamiento de telemetría. Codex ignora openai_base_url,
chatgpt_base_url, apps_mcp_product_sku, model_provider,
model_providers, notify, profile, profiles,
experimental_realtime_ws_base_url y otel cuando aparecen en un
.codex/config.toml local del proyecto; coloca en su lugar las claves del proveedor, de notificaciones y de telemetría
en la configuración de nivel de usuario. Los archivos de perfil de configuración se encuentran junto a
config.toml como $CODEX_HOME/profile-name.config.toml; selecciona uno con
--profile profile-name.
Para las claves de entorno aislado y aprobación (approval_policy, sandbox_mode y sandbox_workspace_write.*), complementa esta referencia con Entorno aislado y aprobaciones , Rutas protegidas en raíces con permiso de escritura y Acceso a la red . Para conocer los perfiles de permisos beta, consulta Permisos .
<ConfigTable
options={[
{
key: "model",
type: "string",
description: "Modelo que se utilizará (p. ej., gpt-5.5).",
},
{
key: "review_model",
type: "string",
description:
"Sustitución opcional del modelo que utiliza /review (de forma predeterminada, se usa el modelo de la sesión actual).",
},
{
key: "model_provider",
type: "string",
description: "Id. del proveedor de model_providers (valor predeterminado: openai).",
},
{
key: "openai_base_url",
type: "string",
description:
"Sustitución de la URL base para el proveedor de modelos openai integrado.",
},
{
key: "model_context_window",
type: "number",
description: "Tokens de la ventana de contexto disponibles para el modelo activo.",
},
{
key: "model_auto_compact_token_limit",
type: "number",
description:
"Umbral de tokens que activa la compactación automática del historial (si no se establece, se usan los valores predeterminados del modelo).",
},
{
key: "model_auto_compact_token_limit_scope",
type: "total | body_after_prefix",
description:
"Controla si el umbral de compactación automática cuenta todo el contexto activo (total, el valor predeterminado) o solo el crecimiento posterior al prefijo conservado de la ventana de compactación (body_after_prefix).",
},
{
key: "model_catalog_json",
type: "string (path)",
description:
"Ruta opcional a un catálogo de modelos JSON que se carga al iniciar. Un archivo de perfil $CODEX_HOME/profile-name.config.toml seleccionado puede sustituirla para cada perfil.",
},
{
key: "oss_provider",
type: "lmstudio | ollama",
description:
"Proveedor local predeterminado que se utiliza al ejecutar con --oss (si no se establece, se solicita al usuario de forma predeterminada).",
},
{
key: "approval_policy",
type: "untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }",
description:
"Controla cuándo Codex se detiene para solicitar aprobación antes de ejecutar comandos. También puede usar approval_policy = { granular = { ... } } para permitir o rechazar automáticamente categorías específicas de solicitudes mientras mantiene interactivas las demás. on-failure está obsoleto; use on-request para ejecuciones interactivas o never para ejecuciones no interactivas.",
},
{
key: "approval_policy.granular.sandbox_approval",
type: "boolean",
description:
"Cuando es true, se permite mostrar solicitudes de aprobación para elevar los permisos del entorno aislado.",
},
{
key: "approval_policy.granular.rules",
type: "boolean",
description:
"Cuando es true, se permite mostrar las aprobaciones activadas por las reglas prompt de execpolicy.",
},
{
key: "approval_policy.granular.mcp_elicitations",
type: "boolean",
description:
"Cuando es true, se permite mostrar las solicitudes de obtención de datos de MCP en lugar de rechazarlas automáticamente.",
},
{
key: "approval_policy.granular.request_permissions",
type: "boolean",
description:
"Cuando es true, se permite mostrar las solicitudes de la herramienta request_permissions.",
},
{
key: "approval_policy.granular.skill_approval",
type: "boolean",
description:
"Cuando es true, se permite mostrar solicitudes de aprobación para scripts de skills.",
},
{
key: "approvals_reviewer",
type: "user | auto_review",
description:
"Quién revisa las solicitudes de aprobación que cumplen los requisitos según on-request o las políticas de aprobación granulares. El valor predeterminado es user; auto_review utiliza el subagente revisor. Esta opción no cambia el aislamiento ni las acciones de revisión que ya se permiten dentro del entorno aislado.",
},
{
key: "auto_review.policy",
type: "string",
description:
"Instrucciones locales de la política en Markdown para la revisión automática. La configuración administrada guardian_policy_config tiene prioridad. Los valores en blanco se ignoran.",
},
{
key: "allow_login_shell",
type: "boolean",
description:
"Permite que las herramientas basadas en shell usen la semántica de un shell de inicio de sesión. El valor predeterminado es true; cuando es false, se rechazan las solicitudes login = true y, si se omite login, se usan de forma predeterminada shells que no son de inicio de sesión.",
},
{
key: "sandbox_mode",
type: "read-only | workspace-write | danger-full-access",
description:
"Política del entorno aislado para acceder al sistema de archivos y a la red durante la ejecución de comandos.",
},
{
key: "sandbox_workspace_write.writable_roots",
type: "array",
description:
'Raíces adicionales con permiso de escritura cuando se usa sandbox_mode = "workspace-write".',
},
{
key: "sandbox_workspace_write.network_access",
type: "boolean",
description:
"Permite el acceso saliente a la red dentro del entorno aislado workspace-write.",
},
{
key: "sandbox_workspace_write.exclude_tmpdir_env_var",
type: "boolean",
description:
"Excluye $TMPDIR de las raíces con permiso de escritura en el modo workspace-write.",
},
{
key: "sandbox_workspace_write.exclude_slash_tmp",
type: "boolean",
description:
"Excluye /tmp de las raíces con permiso de escritura en el modo workspace-write.",
},
{
key: "windows.sandbox",
type: "unelevated | elevated",
description:
"Modo de entorno aislado nativo exclusivo de Windows al ejecutar Codex de forma nativa en Windows.",
},
{
key: "windows.sandbox_private_desktop",
type: "boolean",
description:
"Ejecuta de forma predeterminada el proceso secundario final aislado en un escritorio privado en Windows nativo. Establezca false únicamente para mantener la compatibilidad con el comportamiento anterior de Winsta0\\\\Default.",
},
{
key: "computer_use.windows.always_allowed_app_ids",
type: "array",
description:
"Identificadores de aplicaciones de Windows que Computer Use puede abrir sin solicitar aprobación. Las aplicaciones que no estén en la lista requieren aprobación; elimine las entradas guardadas desde la configuración de Computer Use de la aplicación de escritorio de ChatGPT.",
},
{
key: "notify",
type: "array",
description:
"Comando que se invoca para las notificaciones; recibe una carga JSON de Codex.",
},
{
key: "check_for_update_on_startup",
type: "boolean",
description:
"Comprueba si hay actualizaciones de Codex al iniciar (establezca false solo si las actualizaciones se administran de forma centralizada).",
},
{
key: "feedback.enabled",
type: "boolean",
description:
"Habilita el envío de comentarios mediante /feedback en todos los clientes locales (valor predeterminado: true).",
},
{
key: "analytics.enabled",
type: "boolean",
description:
"Habilita o deshabilita los análisis para este equipo o perfil. Si no se establece, se aplica el valor predeterminado del cliente.",
},
{
key: "instructions",
type: "string",
description:
"Reservado para uso futuro; se recomienda usar model_instructions_file o AGENTS.md.",
},
{
key: "developer_instructions",
type: "string",
description:
"Instrucciones adicionales para desarrolladores que se insertan en la sesión (opcional).",
},
{
key: "log_dir",
type: "string (path)",
description:
"Directorio en el que Codex escribe los archivos de registro; el valor predeterminado es $CODEX_HOME/log. Establecerlo explícitamente también habilita el registro TUI opcional en texto sin formato, codex-tui.log, en ese directorio.",
},
{
key: "sqlite_home",
type: "string (path)",
description:
"Directorio en el que Codex almacena la base de datos de estado respaldada por SQLite que utilizan los trabajos de agentes y otros estados de ejecución reanudables.",
},
{
key: "compact_prompt",
type: "string",
description: "Sustitución insertada directamente para la solicitud de compactación del historial.",
},
{
key: "model_instructions_file",
type: "string (path)",
description:
"Sustitución de las instrucciones integradas en lugar de AGENTS.md.",
},
{
key: "personality",
type: "none | friendly | pragmatic",
description:
"Estilo de comunicación predeterminado para los modelos que anuncian supportsPersonality; puede sustituirse por hilo o turno, o mediante /personality.",
},
{
key: "service_tier",
type: "string",
description:
"Nivel de servicio preferido para los nuevos turnos. Use fast u otro nivel anunciado por el modelo activo; fast se asigna al valor de solicitud priority.",
},
{
key: "experimental_compact_prompt_file",
type: "string (path)",
description:
"Carga desde un archivo la sustitución de la solicitud de compactación (experimental).",
},
{
key: "skills.config",
type: "array",
description: "Sustituciones de habilitación por skill almacenadas en config.toml.",
},
{
key: "skills.config..path",
type: "string (path)",
description: "Ruta a una carpeta de skill que contiene SKILL.md.",
},
{
key: "skills.config..enabled",
type: "boolean",
description: "Habilita o deshabilita la skill a la que se hace referencia.",
},
{
key: "apps..enabled",
type: "boolean",
description:
"Habilita o deshabilita una aplicación o un conector específico por id. (valor predeterminado: true).",
},
{
key: "apps._default.enabled",
type: "boolean",
description:
"Estado habilitado predeterminado de todas las aplicaciones, salvo que se sustituya para una aplicación concreta.",
},
{
key: "apps._default.destructive_enabled",
type: "boolean",
description:
"Permiso o denegación predeterminados para las herramientas de aplicaciones con destructive_hint = true.",
},
{
key: "apps._default.open_world_enabled",
type: "boolean",
description:
"Permiso o denegación predeterminados para las herramientas de aplicaciones con open_world_hint = true.",
},
{
key: "apps._default.approvals_reviewer",
type: "user | auto_review",
description:
"Revisor predeterminado de las solicitudes de aprobación de herramientas de aplicaciones, salvo que se sustituya para una aplicación. Si se omite, las aplicaciones heredan el valor superior approvals_reviewer.",
},
{
key: "apps._default.default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Comportamiento de aprobación predeterminado para las herramientas de aplicaciones sin sustituciones por aplicación o herramienta.",
},
{
key: "apps..destructive_enabled",
type: "boolean",
description:
"Permite o bloquea las herramientas de esta aplicación que anuncian destructive_hint = true.",
},
{
key: "apps..open_world_enabled",
type: "boolean",
description:
"Permite o bloquea las herramientas de esta aplicación que anuncian open_world_hint = true.",
},
{
key: "apps..default_tools_enabled",
type: "boolean",
description:
"Estado habilitado predeterminado de las herramientas de esta aplicación, salvo que exista una sustitución por herramienta.",
},
{
key: "apps..approvals_reviewer",
type: "user | auto_review",
description:
"Revisor de las solicitudes de aprobación de herramientas de esta aplicación. Sustituye apps._default.approvals_reviewer.",
},
{
key: "apps..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Comportamiento de aprobación predeterminado para las herramientas de esta aplicación, salvo que exista una sustitución por herramienta.",
},
{
key: "apps..tools..enabled",
type: "boolean",
description:
"Sustitución del estado habilitado por herramienta para una herramienta de aplicación (por ejemplo, repos/list).",
},
{
key: "apps..tools..approval_mode",
type: "auto | prompt | writes | approve",
description: "Sustitución del comportamiento de aprobación por herramienta para una sola herramienta de aplicación.",
},
{
key: "tool_suggest.discoverables",
type: "array",
description:
'Permite sugerencias de herramientas para conectores o plugins detectables adicionales. Cada entrada utiliza type = "connector" o "plugin" y un id.',
},
{
key: "tool_suggest.disabled_tools",
type: "array",
description:
'Deshabilita las sugerencias de conectores o plugins detectables específicos. Cada entrada utiliza type = "connector" o "plugin" y un id.',
},
{
key: "features.apps",
type: "boolean",
description:
"Habilita las integraciones de aplicaciones (conectores) (estable; activado de forma predeterminada).",
},
{
key: "features.hooks",
type: "boolean",
description:
"Habilita los enlaces de ciclo de vida cargados desde hooks.json o desde la configuración [hooks] insertada directamente. features.codex_hooks es un alias obsoleto.",
},
{
key: "features.code_mode.enabled",
type: "boolean",
description:
"Habilita la configuración de la función de modo de código. Esta función está en desarrollo y desactivada de forma predeterminada.",
},
{
key: "features.code_mode.excluded_tool_namespaces",
type: "array",
description:
"Espacios de nombres de herramientas que el modo de código excluye de las instrucciones anidadas para herramientas del modo de código y de la exposición del ejecutor.",
},
{
key: "features.code_mode.direct_only_tool_namespaces",
type: "array",
description:
"Espacios de nombres de herramientas que el modo de código solo puede usar mediante llamadas directas a herramientas.",
},
{
key: "features.rollout_budget.enabled",
type: "boolean",
description:
"Habilita el seguimiento del presupuesto de rollout. Esta función está en desarrollo y desactivada de forma predeterminada. Cuando se habilita, features.rollout_budget.limit_tokens es obligatorio.",
},
{
key: "features.rollout_budget.limit_tokens",
type: "integer",
description:
"Límite positivo de tokens para el seguimiento del presupuesto de rollout. Es obligatorio cuando el presupuesto de rollout está habilitado.",
},
{
key: "features.rollout_budget.reminder_interval_tokens",
type: "integer",
description:
"Intervalo positivo de tokens entre recordatorios del presupuesto de rollout. El valor predeterminado es el 10 % de limit_tokens, con un mínimo de 1 token.",
},
{
key: "features.rollout_budget.sampling_token_weight",
type: "number",
description:
"Multiplicador finito no negativo para los tokens muestreados en la contabilización del presupuesto de rollout. El valor predeterminado es 1.0.",
},
{
key: "features.rollout_budget.prefill_token_weight",
type: "number",
description:
"Multiplicador finito no negativo para los tokens de prellenado en la contabilización del presupuesto de rollout. El valor predeterminado es 1.0.",
},
{
key: "hooks",
type: "table",
description:
"Enlaces de ciclo de vida configurados directamente en config.toml. Usa el mismo esquema de eventos que hooks.json; consulte la guía de enlaces para ver ejemplos y eventos compatibles.",
},
{
key: "hooks.",
type: "array",
description:
"Grupos de coincidencia para eventos de enlace como PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit o Stop.",
},
{
key: "hooks.[].hooks",
type: "array",
description:
"Controladores de enlace para un grupo de coincidencia. Actualmente se admiten enlaces de comandos; los controladores de enlaces de solicitudes y agentes se analizan, pero se omiten.",
},
{
key: "hooks.[].hooks[].commandWindows",
type: "string",
description:
"Sustitución de comandos exclusiva de Windows para enlaces de comandos. También se acepta el alias TOML command_windows.",
},
{
key: "features.memories",
type: "boolean",
description:
"Habilita Memories (desactivado de forma predeterminada).",
},
{
key: "mcp_servers..command",
type: "string",
description: "Comando de inicio para un servidor MCP stdio.",
},
{
key: "mcp_servers..args",
type: "array",
description: "Argumentos que se pasan al comando del servidor MCP stdio.",
},
{
key: "mcp_servers..env",
type: "map<string,string>",
description: "Variables de entorno que se reenvían al servidor MCP stdio.",
},
{
key: "mcp_servers..env_vars",
type: 'array<string | { name = string, source = "local" | "remote" }>',
description:
'Variables de entorno adicionales que se incluyen en la lista de permitidas para un servidor MCP stdio. Las entradas de cadena usan source = "local" de forma predeterminada; use source = "remote" únicamente con stdio remoto respaldado por un ejecutor.',
},
{
key: "mcp_servers..cwd",
type: "string",
description: "Directorio de trabajo del proceso del servidor MCP stdio.",
},
{
key: "mcp_servers..url",
type: "string",
description: "Punto de conexión de un servidor HTTP transmisible de MCP.",
},
{
key: "mcp_servers..auth",
type: "oauth | chatgpt",
description:
"Autenticación de reserva para un servidor HTTP de MCP después de los tokens de portador y encabezados de autorización configurados. oauth (valor predeterminado) usa las credenciales OAuth de MCP almacenadas cuando están disponibles. chatgpt usa la sesión actual de ChatGPT para el origen propio de confianza de ChatGPT y, a continuación, recurre a OAuth almacenado. Ambos modos pueden conectarse sin autenticación si no se resuelve ninguna fuente de credenciales.",
},
{
key: "mcp_servers..bearer_token_env_var",
type: "string",
description:
"Variable de entorno de la que se obtiene el token de portador para un servidor HTTP de MCP.",
},
{
key: "mcp_servers..http_headers",
type: "map<string,string>",
description: "Encabezados HTTP estáticos incluidos con cada solicitud HTTP de MCP.",
},
{
key: "mcp_servers..env_http_headers",
type: "map<string,string>",
description:
"Encabezados HTTP que se rellenan a partir de variables de entorno para un servidor HTTP de MCP.",
},
{
key: "mcp_servers..enabled",
type: "boolean",
description: "Deshabilita un servidor MCP sin eliminar su configuración.",
},
{
key: "mcp_servers..required",
type: "boolean",
description:
"Cuando es true, el inicio o la reanudación fallan si este servidor MCP habilitado no puede inicializarse.",
},
{
key: "mcp_servers..startup_timeout_sec",
type: "number",
description:
"Sustituye el tiempo de espera de inicio predeterminado de 10 s para un servidor MCP.",
},
{
key: "mcp_servers..startup_timeout_ms",
type: "number",
description: "Alias de startup_timeout_sec en milisegundos.",
},
{
key: "mcp_servers..tool_timeout_sec",
type: "number",
description:
"Sustituye el tiempo de espera predeterminado de 60 s por herramienta para un servidor MCP.",
},
{
key: "mcp_servers..enabled_tools",
type: "array",
description: "Lista de nombres de herramientas permitidos que expone el servidor MCP.",
},
{
key: "mcp_servers..disabled_tools",
type: "array",
description:
"Lista de denegación que se aplica después de enabled_tools para el servidor MCP.",
},
{
key: "mcp_servers..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Comportamiento de aprobación predeterminado para las herramientas MCP de este servidor, salvo que exista una sustitución por herramienta.",
},
{
key: "mcp_servers..tools..approval_mode",
type: "auto | prompt | writes | approve",
description:
"Sustitución del comportamiento de aprobación por herramienta para una herramienta MCP de este servidor.",
},
{
key: "mcp_servers..scopes",
type: "array",
description:
"Ámbitos OAuth que se solicitan al autenticarse en ese servidor MCP.",
},
{
key: "mcp_servers..oauth_resource",
type: "string",
description:
"Parámetro opcional de recurso OAuth de RFC 8707 que se incluye durante el inicio de sesión de MCP.",
},
{
key: "mcp_servers..experimental_environment",
type: "local | remote",
description:
"Ubicación experimental de un servidor MCP. remote inicia servidores stdio mediante un entorno de ejecución remoto; la ubicación remota de HTTP transmisible no está implementada.",
},
{
key: "agents",
type: "table",
description:
"Configuración de varios agentes y declaraciones de roles personalizados. Los nombres de opciones escalares están reservados y no pueden usarse como nombres de roles personalizados.",
},
{
key: "agents.enabled",
type: "boolean",
description: "Habilita o deshabilita las herramientas multiagente (valor predeterminado: true).",
},
{
key: "agents.max_concurrent_threads_per_session",
type: "number",
description:
"Número máximo de hilos de agentes generados que pueden estar abiertos simultáneamente, sin contar el hilo principal. Si no se establece, Codex elige el valor predeterminado.",
},
{
key: "agents.max_threads",
type: "number",
description:
"Alias heredado de agents.max_concurrent_threads_per_session.",
},
{
key: "agents.default_subagent_model",
type: "string",
description:
"Modelo predeterminado para los agentes generados. Un modelo de generación explícito tiene prioridad.",
},
{
key: "agents.default_subagent_reasoning_effort",
type: "string",
description:
"Esfuerzo de razonamiento predeterminado para los agentes generados. Un esfuerzo de generación explícito tiene prioridad.",
},
{
key: "agents.interrupt_message",
type: "boolean",
description:
"Registra un mensaje visible para el modelo cuando se interrumpe el turno de un agente (valor predeterminado: true).",
},
{
key: "agents..description",
type: "string",
description:
"Orientación sobre el rol que se muestra a Codex al elegir y generar ese tipo de agente.",
},
{
key: "agents..config_file",
type: "string (path)",
description:
"Ruta a una capa de configuración TOML para ese rol; las rutas relativas se resuelven desde el archivo de configuración que declara el rol.",
},
{
key: "memories.generate_memories",
type: "boolean",
description:
"Cuando es false, los hilos recién creados no se almacenan como entradas para la generación de memorias. El valor predeterminado es true.",
},
{
key: "memories.use_memories",
type: "boolean",
description:
"Cuando es false, Codex omite la inserción de memorias existentes en sesiones futuras. El valor predeterminado es true.",
},
{
key: "memories.disable_on_external_context",
type: "boolean",
description:
"Cuando es true, los hilos que usan contexto externo, como llamadas a herramientas MCP, búsqueda web o búsqueda de herramientas, se excluyen de la generación de memorias. El valor predeterminado es false. Alias heredado: memories.no_memories_if_mcp_or_web_search.",
},
{
key: "memories.max_raw_memories_for_consolidation",
type: "number",
description:
"Cantidad máxima de memorias sin procesar recientes que se conservan para la consolidación global. El valor predeterminado es 256 y el límite máximo es 4096.",
},
{
key: "memories.max_unused_days",
type: "number",
description:
"Número máximo de días desde el último uso de una memoria antes de que deje de cumplir los requisitos para la consolidación. El valor predeterminado es 30 y se limita al intervalo 0-365.",
},
{
key: "memories.max_rollout_age_days",
type: "number",
description:
"Antigüedad máxima de los hilos que se consideran para la generación de memorias. El valor predeterminado es 30 y se limita al intervalo 0-90.",
},
{
key: "memories.max_rollouts_per_startup",
type: "number",
description:
"Número máximo de candidatos de rollout procesados en cada pasada de inicio. El valor predeterminado es 16 y el límite máximo es 128.",
},
{
key: "memories.min_rollout_idle_hours",
type: "number",
description:
"Tiempo mínimo de inactividad antes de que un hilo se considere para la generación de memorias. El valor predeterminado es 6 y se limita al intervalo 1-48.",
},
{
key: "memories.min_rate_limit_remaining_percent",
type: "number",
description:
"Porcentaje restante mínimo necesario en las ventanas de límite de frecuencia de Codex antes de que comience la generación de memorias. El valor predeterminado es 25 y se limita al intervalo 0-100.",
},
{
key: "memories.extract_model",
type: "string",
description: "Sustitución opcional del modelo para la extracción de memorias por hilo.",
},
{
key: "memories.consolidation_model",
type: "string",
description: "Sustitución opcional del modelo para la consolidación global de memorias.",
},
{
key: "features.unified_exec",
type: "boolean",
description:
"Usa la herramienta de ejecución unificada respaldada por PTY (estable; habilitada de forma predeterminada excepto en Windows).",
},
{
key: "features.shell_snapshot",
type: "boolean",
description:
"Captura el entorno del shell para acelerar los comandos repetidos (estable; activado de forma predeterminada).",
},
{
key: "features.multi_agent",
type: "boolean",
description:
"Habilita las herramientas de colaboración multiagente (spawn_agent, send_input, resume_agent, wait_agent y close_agent) (estable; activado de forma predeterminada).",
},
{
key: "features.goals",
type: "boolean",
description:
"Habilita los objetivos persistentes y la continuación automática (estable; activado de forma predeterminada).",
},
{
key: "features.remote_plugin",
type: "boolean",
description: "Habilita el catálogo remoto de plugins (estable; activado de forma predeterminada).",
},
{
key: "features.personality",
type: "boolean",
description:
"Habilita los controles de selección de personalidad (estable; activado de forma predeterminada).",
},
{
key: "features.network_proxy",
type: "boolean | table",
description:
"Habilita las redes aisladas. Use el formato de tabla al establecer opciones de política de red como domains (experimental; desactivado de forma predeterminada).",
},
{
key: "features.network_proxy.enabled",
type: "boolean",
description: "Habilita las redes aisladas. El valor predeterminado es false.",
},
{
key: "features.network_proxy.domains",
type: "map<string, allow | deny>",
description:
"Política de dominios para las redes aisladas. No está establecida de forma predeterminada, lo que significa que no se permite ningún destino externo hasta que añada reglas allow. Admite hosts exactos, *.example.com solo para subdominios, **.example.com para el dominio raíz y sus subdominios, y reglas globales de permiso *; se recomienda usar reglas acotadas porque * abre ampliamente el acceso público saliente. Añada reglas deny para los destinos bloqueados; deny prevalece en caso de conflicto.",
},
{
key: "features.network_proxy.unix_sockets",
type: "map<string, allow | deny>",
description:
"Política de sockets Unix para las redes aisladas. No está establecida de forma predeterminada; añada entradas allow para los sockets permitidos.",
},
{
key: "features.network_proxy.allow_local_binding",
type: "boolean",
description:
"Permite un acceso más amplio a redes locales o privadas. El valor predeterminado es false; las reglas de permiso con una dirección IP local exacta o localhost aún pueden permitir destinos locales específicos.",
},
{
key: "features.network_proxy.enable_socks5",
type: "boolean",
description: "Expone la compatibilidad con SOCKS5. El valor predeterminado es true.",
},
{
key: "features.network_proxy.enable_socks5_udp",
type: "boolean",
description: "Permite UDP mediante SOCKS5. El valor predeterminado es true.",
},
{
key: "features.network_proxy.allow_upstream_proxy",
type: "boolean",
description:
"Permite el encadenamiento mediante un proxy ascendente del entorno. El valor predeterminado es true.",
},
{
key: "features.network_proxy.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Permite direcciones de escucha que no sean de bucle invertido. El valor predeterminado es false; habilitarlo puede exponer los procesos de escucha del proxy fuera de localhost.",
},
{
key: "features.network_proxy.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Permite destinos arbitrarios de sockets Unix en lugar de un acceso limitado a la lista de permitidos. El valor predeterminado es false; úselo solo en entornos estrictamente controlados.",
},
{
key: "features.network_proxy.proxy_url",
type: "string",
description:
'URL del proceso de escucha HTTP para las redes aisladas. El valor predeterminado es "http://127.0.0.1:3128".',
},
{
key: "features.network_proxy.socks_url",
type: "string",
description:
'URL del proceso de escucha SOCKS5. El valor predeterminado es "http://127.0.0.1:8081".',
},
{
key: "features.web_search",
type: "boolean",
description:
"Opción heredada obsoleta; se recomienda usar la opción superior web_search.",
},
{
key: "features.web_search_cached",
type: "boolean",
description:
'Opción heredada obsoleta. Cuando no se establece web_search, true se asigna a web_search = "cached".',
},
{
key: "features.web_search_request",
type: "boolean",
description:
'Opción heredada obsoleta. Cuando no se establece web_search, true se asigna a web_search = "live".',
},
{
key: "features.shell_tool",
type: "boolean",
description:
"Habilita la herramienta shell predeterminada para ejecutar comandos (estable; activada de forma predeterminada).",
},
{
key: "features.enable_request_compression",
type: "boolean",
description:
"Comprime con zstd los cuerpos de las solicitudes transmitidas cuando se admite (estable; activado de forma predeterminada).",
},
{
key: "features.skill_mcp_dependency_install",
type: "boolean",
description:
"Permite solicitar e instalar las dependencias MCP que faltan para las skills (estable; activado de forma predeterminada).",
},
{
key: "features.fast_mode",
type: "boolean",
description:
"Habilita la selección del nivel de servicio del catálogo de modelos en la TUI, incluidos los comandos del nivel Fast cuando el modelo activo los anuncia (estable; activado de forma predeterminada).",
},
{
key: "features.prevent_idle_sleep",
type: "boolean",
description:
"Impide que el equipo entre en suspensión mientras se ejecuta activamente un turno (experimental; desactivado de forma predeterminada).",
},
{
key: "suppress_unstable_features_warning",
type: "boolean",
description:
"Suprime la advertencia que aparece cuando se habilitan indicadores de funciones en desarrollo.",
},
{
key: "model_providers.",
type: "table",
description:
"Definición de proveedor personalizado. Los id. de proveedores integrados (openai, ollama y lmstudio) están reservados y no se pueden sustituir.",
},
{
key: "model_providers..name",
type: "string",
description: "Nombre para mostrar de un proveedor de modelos personalizado.",
},
{
key: "model_providers..base_url",
type: "string",
description: "URL base de la API del proveedor de modelos.",
},
{
key: "model_providers..env_key",
type: "string",
description: "Variable de entorno que proporciona la API key del proveedor.",
},
{
key: "model_providers..env_key_instructions",
type: "string",
description: "Orientación opcional para configurar la API key del proveedor.",
},
{
key: "model_providers..experimental_bearer_token",
type: "string",
description:
"Token de portador directo para el proveedor (no recomendado; use env_key).",
},
{
key: "model_providers..requires_openai_auth",
type: "boolean",
description:
"El proveedor utiliza la autenticación de OpenAI (valor predeterminado: false).",
},
{
key: "model_providers..wire_api",
type: "responses",
description:
"Protocolo que utiliza el proveedor. responses es el único valor admitido y es el valor predeterminado cuando se omite.",
},
{
key: "model_providers..query_params",
type: "map<string,string>",
description: "Parámetros de consulta adicionales que se agregan a las solicitudes del proveedor.",
},
{
key: "model_providers..http_headers",
type: "map<string,string>",
description: "Encabezados HTTP estáticos que se añaden a las solicitudes del proveedor.",
},
{
key: "model_providers..env_http_headers",
type: "map<string,string>",
description:
"Encabezados HTTP que se rellenan a partir de variables de entorno cuando están presentes.",
},
{
key: "model_providers..request_max_retries",
type: "number",
description:
"Número de reintentos de las solicitudes HTTP al proveedor (valor predeterminado: 4).",
},
{
key: "model_providers..stream_max_retries",
type: "number",
description: "Número de reintentos de las interrupciones de transmisión SSE (valor predeterminado: 5).",
},
{
key: "model_providers..stream_idle_timeout_ms",
type: "number",
description:
"Tiempo de espera por inactividad de las transmisiones SSE en milisegundos (valor predeterminado: 300000).",
},
{
key: "model_providers..supports_websockets",
type: "boolean",
description:
"Indica si ese proveedor admite el transporte WebSocket de la Responses API.",
},
{
key: "model_providers..supports_standalone_web_search",
type: "boolean",
description:
"Anuncia la compatibilidad con un punto de conexión autónomo de búsqueda web compatible (valor predeterminado: false). La búsqueda autónoma sigue en desarrollo y está desactivada de forma predeterminada; la compatibilidad del proveedor por sí sola no la habilita.",
},
{
key: "model_providers..auth",
type: "table",
description:
"Configuración de tokens de portador respaldada por comandos para un proveedor personalizado. No la combine con env_key, experimental_bearer_token ni requires_openai_auth.",
},
{
key: "model_providers..auth.command",
type: "string",
description:
"Comando que se ejecuta cuando Codex necesita un token de portador. El comando debe imprimir el token en stdout.",
},
{
key: "model_providers..auth.args",
type: "array",
description: "Argumentos que se pasan al comando del token.",
},
{
key: "model_providers..auth.timeout_ms",
type: "number",
description:
"Duración máxima de ejecución del comando del token en milisegundos (valor predeterminado: 5000).",
},
{
key: "model_providers..auth.refresh_interval_ms",
type: "number",
description:
"Frecuencia con la que Codex actualiza proactivamente el token, en milisegundos (valor predeterminado: 300000). Establézcala en 0 para actualizarlo solo después de un reintento de autenticación.",
},
{
key: "model_providers..auth.cwd",
type: "string (path)",
description: "Directorio de trabajo del comando del token.",
},
{
key: "model_providers.amazon-bedrock.aws.profile",
type: "string",
description:
"Nombre del perfil de AWS que utiliza el proveedor amazon-bedrock integrado.",
},
{
key: "model_providers.amazon-bedrock.aws.region",
type: "string",
description: "Región de AWS que utiliza el proveedor amazon-bedrock integrado.",
},
{
key: "model_reasoning_effort",
type: "minimal | low | medium | high | xhigh",
description:
"Ajusta el esfuerzo de razonamiento para los modelos compatibles (solo Responses API; xhigh depende del modelo).",
},
{
key: "plan_mode_reasoning_effort",
type: "none | minimal | low | medium | high | xhigh",
description:
"Sustitución del razonamiento específica del modo Plan. Si no se establece, el modo Plan usa el valor predeterminado de su configuración predefinida integrada.",
},
{
key: "model_reasoning_summary",
type: "auto | concise | detailed | none",
description:
"Selecciona el nivel de detalle del resumen del razonamiento o deshabilita por completo los resúmenes.",
},
{
key: "model_verbosity",
type: "low | medium | high",
description:
"Sustitución opcional de la verbosidad de la Responses API de GPT-5; si no se establece, se usa el valor predeterminado del modelo o la configuración predefinida seleccionados.",
},
{
key: "model_supports_reasoning_summaries",
type: "boolean",
description: "Obliga a Codex a enviar o no enviar metadatos de razonamiento.",
},
{
key: "shell_environment_policy.inherit",
type: "all | core | none",
description:
"Herencia del entorno de referencia al generar subprocesos.",
},
{
key: "shell_environment_policy.ignore_default_excludes",
type: "boolean",
description:
"Conserva las variables que contienen KEY, SECRET o TOKEN antes de que se ejecuten otros filtros (valor predeterminado: true). Establézcalo en false para aplicar exclusiones automáticas basadas en nombres de secretos.",
},
{
key: "shell_environment_policy.filters",
type: "map<string, include | exclude>",
description:
"Filtros canónicos de patrones de variables de entorno que no distinguen entre mayúsculas y minúsculas. Las entradas de inclusión crean una lista de permitidos y no pueden restaurar valores excluidos. Los valores explícitos set se aplican después de las exclusiones. No combine los filtros con las matrices heredadas exclude o include_only en la misma capa.",
},
{
key: "shell_environment_policy.exclude",
type: "array",
description:
"Patrones heredados de exclusión de variables de entorno. Use shell_environment_policy.filters para configuraciones nuevas; no combine ambos formatos en la misma capa.",
},
{
key: "shell_environment_policy.include_only",
type: "array",
description:
"Lista heredada de patrones permitidos de variables de entorno. Use shell_environment_policy.filters para configuraciones nuevas; no combine ambos formatos en la misma capa.",
},
{
key: "shell_environment_policy.set",
type: "map<string,string>",
description:
"Valores de entorno explícitos que se insertan después de las exclusiones; los filtros de inclusión aún pueden eliminarlos.",
},
{
key: "shell_environment_policy.experimental_use_profile",
type: "boolean",
description: "Usa el perfil de shell del usuario al generar subprocesos.",
},
{
key: "project_root_markers",
type: "array",
description:
"Lista de nombres de archivos marcadores de la raíz del proyecto; se usa al buscar la raíz del proyecto en los directorios principales.",
},
{
key: "project_doc_max_bytes",
type: "number",
description:
"Número máximo de bytes que se leen de AGENTS.md al crear las instrucciones del proyecto.",
},
{
key: "project_doc_fallback_filenames",
type: "array",
description: "Nombres de archivos adicionales que se prueban cuando falta AGENTS.md.",
},
{
key: "history.persistence",
type: "save-all | none",
description:
"Controla si Codex guarda las transcripciones de las sesiones en history.jsonl.",
},
{
key: "tool_output_token_limit",
type: "number",
description:
"Presupuesto de tokens para almacenar en el historial las salidas individuales de herramientas o funciones.",
},
{
key: "background_terminal_max_timeout",
type: "number",
description:
"Ventana máxima de sondeo en milisegundos para sondeos write_stdin vacíos (sondeo del terminal en segundo plano). Valor predeterminado: 300000 (5 minutos). Sustituye la clave anterior background_terminal_timeout.",
},
{
key: "history.max_bytes",
type: "number",
description:
"Si se establece, limita el tamaño del archivo de historial en bytes mediante la eliminación de las entradas más antiguas.",
},
{
key: "file_opener",
type: "vscode | vscode-insiders | windsurf | cursor | none",
description:
"Esquema URI que se utiliza para abrir citas desde la salida de Codex (valor predeterminado: vscode).",
},
{
key: "otel.environment",
type: "string",
description:
"Etiqueta de entorno que se aplica a los eventos de OpenTelemetry emitidos (valor predeterminado: dev).",
},
{
key: "otel.exporter",
type: "none | otlp-http | otlp-grpc",
description:
"Selecciona el exportador de OpenTelemetry y proporciona los metadatos del punto de conexión.",
},
{
key: "otel.trace_exporter",
type: "none | otlp-http | otlp-grpc",
description:
"Selecciona el exportador de seguimientos de OpenTelemetry y proporciona los metadatos del punto de conexión.",
},
{
key: "otel.metrics_exporter",
type: "none | statsig | otlp-http | otlp-grpc",
description:
"Selecciona el exportador de métricas de OpenTelemetry (el valor predeterminado es statsig).",
},
{
key: "otel.log_user_prompt",
type: "boolean",
description:
"Permite voluntariamente exportar las solicitudes sin procesar del usuario con los registros de OpenTelemetry.",
},
{
key: "otel.exporter..endpoint",
type: "string",
description: "Punto de conexión del exportador para los registros OTEL.",
},
{
key: "otel.exporter..protocol",
type: "binary | json",
description: "Protocolo que utiliza el exportador OTLP/HTTP.",
},
{
key: "otel.exporter..headers",
type: "map<string,string>",
description: "Encabezados estáticos incluidos en las solicitudes del exportador OTEL.",
},
{
key: "otel.trace_exporter..endpoint",
type: "string",
description: "Punto de conexión del exportador de seguimientos para los registros OTEL.",
},
{
key: "otel.trace_exporter..protocol",
type: "binary | json",
description: "Protocolo que utiliza el exportador de seguimientos OTLP/HTTP.",
},
{
key: "otel.trace_exporter..headers",
type: "map<string,string>",
description: "Encabezados estáticos incluidos en las solicitudes del exportador de seguimientos OTEL.",
},
{
key: "otel.exporter..tls.ca-certificate",
type: "string",
description: "Ruta al certificado de CA para TLS del exportador OTEL.",
},
{
key: "otel.exporter..tls.client-certificate",
type: "string",
description: "Ruta al certificado de cliente para TLS del exportador OTEL.",
},
{
key: "otel.exporter..tls.client-private-key",
type: "string",
description: "Ruta a la clave privada del cliente para TLS del exportador OTEL.",
},
{
key: "otel.trace_exporter..tls.ca-certificate",
type: "string",
description: "Ruta al certificado de CA para TLS del exportador de seguimientos OTEL.",
},
{
key: "otel.trace_exporter..tls.client-certificate",
type: "string",
description: "Ruta al certificado de cliente para TLS del exportador de seguimientos OTEL.",
},
{
key: "otel.trace_exporter..tls.client-private-key",
type: "string",
description: "Ruta a la clave privada del cliente para TLS del exportador de seguimientos OTEL.",
},
{
key: "tui",
type: "table",
description:
"Opciones específicas de la TUI, como la habilitación de notificaciones de escritorio insertadas directamente.",
},
{
key: "tui.notifications",
type: "boolean | array",
description:
"Habilita las notificaciones de la TUI; opcionalmente, las restringe a tipos de eventos específicos.",
},
{
key: "tui.notification_method",
type: "auto | osc9 | bel",
description:
"Método de notificación para las notificaciones del terminal (valor predeterminado: auto).",
},
{
key: "tui.notification_condition",
type: "unfocused | always",
description:
"Controla si las notificaciones de la TUI se activan solo cuando el terminal no tiene el foco o independientemente del foco. El valor predeterminado es unfocused.",
},
{
key: "tui.animations",
type: "boolean",
description:
"Habilita las animaciones del terminal (pantalla de bienvenida, brillo y spinner) (valor predeterminado: true).",
},
{
key: "tui.alternate_screen",
type: "auto | always | never",
description:
"Controla el uso de la pantalla alternativa en la TUI (valor predeterminado: auto; auto la omite en Zellij para conservar el historial de desplazamiento).",
},
{
key: "tui.resume_cwd",
type: "current | session",
description:
"Directorio de trabajo que se utiliza al reanudar o bifurcar una sesión. Si no se establece, Codex le pide que elija cuando el directorio actual difiere del directorio guardado de la sesión.",
},
{
key: "tui.vim_mode_default",
type: "boolean",
description:
"Inicia el editor en el modo normal de Vim en lugar del modo de inserción (valor predeterminado: false). Aún puede alternarlo en cada sesión con /vim.",
},
{
key: "tui.raw_output_mode",
type: "boolean",
description:
"Inicia la TUI en el modo de historial de desplazamiento sin procesar para facilitar la selección de texto en el terminal (valor predeterminado: false). Puede alternarlo con /raw o con la combinación de teclas predeterminada alt-r.",
},
{
key: "tui.show_tooltips",
type: "boolean",
description:
"Muestra información sobre herramientas de incorporación en la pantalla de bienvenida de la TUI (valor predeterminado: true).",
},
{
key: "tui.status_line",
type: "array | null",
description:
"Lista ordenada de identificadores de elementos de la línea de estado del pie de la TUI. null deshabilita la línea de estado.",
},
{
key: "tui.terminal_title",
type: "array | null",
description:
'Lista ordenada de identificadores de elementos del título de la ventana o pestaña del terminal. El valor predeterminado es ["spinner", "project"]; null deshabilita las actualizaciones del título.',
},
{
key: "tui.theme",
type: "string",
description:
"Sustitución del tema de resaltado de sintaxis (nombre del tema en kebab-case).",
},
{
key: "tui.keymap..",
type: "string | array",
description:
"Asignación de atajos de teclado para una acción de la TUI. Los contextos compatibles incluyen global, chat, composer, editor, vim_normal, vim_operator, vim_text_object, pager, list y approval. Algunas acciones del editor recurren a las asignaciones tui.keymap.global correspondientes; las asignaciones específicas del contexto tienen prioridad cuando son compatibles.",
},
{
key: "tui.keymap.. = []",
type: "empty array",
description:
"Desvincula la acción en ese contexto de mapa de teclas. Los nombres de las teclas usan cadenas normalizadas como ctrl-a, shift-enter, page-down o minus.",
},
{
key: "plugins..mcp_servers..enabled",
type: "boolean",
description:
"Habilita o deshabilita un servidor MCP incluido en un plugin instalado sin modificar el manifiesto del plugin.",
},
{
key: "plugins..mcp_servers..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Comportamiento de aprobación predeterminado para las herramientas de un servidor MCP proporcionado por un plugin.",
},
{
key: "plugins..mcp_servers..enabled_tools",
type: "array",
description:
"Lista de herramientas permitidas que expone un servidor MCP proporcionado por un plugin.",
},
{
key: "plugins..mcp_servers..disabled_tools",
type: "array",
description:
"Lista de denegación que se aplica después de enabled_tools para un servidor MCP proporcionado por un plugin.",
},
{
key: "plugins..mcp_servers..tools..approval_mode",
type: "auto | prompt | writes | approve",
description:
"Sustitución del comportamiento de aprobación por herramienta para una herramienta MCP proporcionada por un plugin.",
},
{
key: "tui.model_availability_nux.",
type: "integer",
description: "Estado interno de la información sobre herramientas de inicio, indexado por el slug del modelo.",
},
{
key: "hide_agent_reasoning",
type: "boolean",
description:
"Suprime los eventos de razonamiento tanto en la TUI como en la salida de codex exec.",
},
{
key: "show_raw_agent_reasoning",
type: "boolean",
description:
"Muestra el contenido de razonamiento sin procesar cuando lo emite el modelo activo.",
},
{
key: "disable_paste_burst",
type: "boolean",
description: "Deshabilita la detección de pegado en ráfaga en la TUI.",
},
{
key: "windows_wsl_setup_acknowledged",
type: "boolean",
description: "Registra la confirmación de incorporación de Windows (solo Windows).",
},
{
key: "chatgpt_base_url",
type: "string",
description: "Sustituye la URL base que se utiliza durante el flujo de inicio de sesión de ChatGPT.",
},
{
key: "cli_auth_credentials_store",
type: "file | keyring | auto",
description:
"Controla dónde almacena la CLI las credenciales en caché (auth.json basado en archivos o el llavero del sistema operativo).",
},
{
key: "mcp_oauth_credentials_store",
type: "auto | file | keyring",
description: "Almacén preferido para las credenciales OAuth de MCP.",
},
{
key: "mcp_oauth_callback_port",
type: "integer",
description:
"Puerto fijo opcional para el servidor de devolución de llamada HTTP local que se utiliza durante el inicio de sesión OAuth de MCP. Si no se establece, Codex se enlaza a un puerto efímero elegido por el sistema operativo.",
},
{
key: "mcp_oauth_callback_url",
type: "string",
description:
"Sustitución opcional de la URL base de devolución de llamada para el inicio de sesión OAuth de MCP (por ejemplo, una URL de entrada de devbox). Codex añade un id. de devolución de llamada específico del servidor antes de enviar el redirect_uri OAuth final, por lo que debe registrar el URI derivado completo con su proveedor. mcp_oauth_callback_port sigue controlando el puerto de escucha de devolución de llamada.",
},
{
key: "experimental_use_unified_exec_tool",
type: "boolean",
description:
"Nombre heredado para habilitar la ejecución unificada; se recomienda usar [features].unified_exec o codex --enable unified_exec.",
},
{
key: "tools.web_search",
type: 'boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }',
description:
"Configuración opcional de la herramienta de búsqueda web. El formato booleano heredado sigue siendo compatible, pero el formato de objeto permite establecer el tamaño del contexto de búsqueda, los dominios permitidos y la ubicación aproximada del usuario.",
},
{
key: "tools.view_image",
type: "boolean",
description: "Habilita la herramienta view_image para adjuntar imágenes locales.",
},
{
key: "web_search",
type: "disabled | cached | indexed | live",
description:
'Modo de búsqueda web (valor predeterminado: "cached"; cached utiliza un índice mantenido por OpenAI sin acceso web externo; indexed permite acceso externo solo cuando lo autoriza el índice de búsqueda; si utiliza --yolo u otra configuración del entorno aislado con acceso completo, el valor predeterminado es "live"). Use "live" para una recuperación en vivo sin restricciones o "disabled" para eliminar la herramienta.',
},
{
key: "default_permissions",
type: "string",
description:
"Nombre del perfil de permisos predeterminado que se aplica a las llamadas de herramientas aisladas. Los perfiles integrados son :read-only, :workspace y :danger-full-access; los nombres de perfiles personalizados requieren tablas [permissions.<name>] correspondientes. No lo combine con sandbox_mode ni [sandbox_workspace_write].",
},
{
key: "permissions..description",
type: "string",
description:
"Descripción legible para personas de este perfil con nombre. Un perfil no hereda la descripción de su elemento principal mediante extends.",
},
{
key: "permissions..extends",
type: "string",
description:
"Perfil principal opcional que se aplica antes de este perfil con nombre. Establézcalo en otro perfil con nombre, :read-only o :workspace; se rechazan :danger-full-access, los elementos principales no definidos y los ciclos.",
},
{
key: "permissions..workspace_roots",
type: "table",
description:
"Raíces del espacio de trabajo definidas por el perfil que reciben reglas del sistema de archivos :workspace_roots junto con las raíces del espacio de trabajo de ejecución de la sesión.",
},
{
key: "permissions..workspace_roots.",
type: "boolean",
description:
"Incluye una ruta en el conjunto de raíces del espacio de trabajo del perfil cuando es true. Las entradas deshabilitadas permanecen inactivas.",
},
{
key: "permissions..filesystem",
type: "table",
description:
"Perfil de permisos del sistema de archivos con nombre. Cada clave es una ruta absoluta o un token especial como :minimal o :workspace_roots.",
},
{
key: "permissions..filesystem.glob_scan_max_depth",
type: "number",
description:
"Profundidad máxima para expandir los patrones glob de denegación de lectura en las plataformas que capturan las coincidencias antes de iniciar el entorno aislado. Cuando se establece, debe ser como mínimo 1.",
},
{
key: "permissions..filesystem.",
type: '"read" | "write" | "deny" | table',
description:
'Concede acceso directo a una ruta, un patrón glob o un token especial, o delimita las entradas anidadas bajo esa raíz. Use "deny" para denegar la lectura de las rutas coincidentes.',
},
{
key: 'permissions..filesystem.":workspace_roots".',
type: '"read" | "write" | "deny"',
description:
'Acceso delimitado al sistema de archivos en relación con cada raíz efectiva del espacio de trabajo. Use "." para la propia raíz; los patrones glob de subrutas como "**/*.env" pueden denegar las lecturas con "deny".',
},
{
key: "permissions..network.enabled",
type: "boolean",
description:
"Habilita el acceso a la red para este perfil de permisos con nombre. Esto cambia la política de red del entorno aislado, pero no inicia por sí solo el proxy de red.",
},
{
key: "permissions..network.proxy_url",
type: "string",
description:
"URL del proceso de escucha HTTP que se utiliza cuando este perfil de permisos habilita las redes aisladas.",
},
{
key: "permissions..network.enable_socks5",
type: "boolean",
description:
"Expone la compatibilidad con SOCKS5 cuando este perfil de permisos habilita las redes aisladas.",
},
{
key: "permissions..network.socks_url",
type: "string",
description: "Punto de conexión del proxy SOCKS5 que utiliza este perfil de permisos.",
},
{
key: "permissions..network.enable_socks5_udp",
type: "boolean",
description: "Permite UDP mediante el proceso de escucha SOCKS5 cuando está habilitado.",
},
{
key: "permissions..network.allow_upstream_proxy",
type: "boolean",
description:
"Permite que las redes aisladas se encadenen mediante otro proxy ascendente.",
},
{
key: "permissions..network.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Permite direcciones de enlace que no sean de bucle invertido para los procesos de escucha de las redes aisladas. Habilitarlo puede exponer los procesos de escucha fuera de localhost.",
},
{
key: "permissions..network.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Permite destinos arbitrarios de sockets Unix en lugar del conjunto restringido predeterminado. Úselo solo en entornos estrictamente controlados.",
},
{
key: "permissions..network.mode",
type: "limited | full",
description: "Modo de proxy de red que se utiliza para el tráfico de los subprocesos.",
},
{
key: "permissions..network.domains",
type: "table",
description:
"Reglas de dominios para las redes aisladas. Admite hosts exactos, *.example.com solo para subdominios, **.example.com para el dominio raíz y sus subdominios, y reglas globales de permiso *. deny prevalece en caso de conflicto.",
},
{
key: "permissions..network.domains.",
type: "allow | deny",
description:
"Permite o deniega un host exacto o un patrón comodín delimitado como *.example.com o **.example.com.",
},
{
key: "permissions..network.unix_sockets",
type: "table",
description:
"Sustituciones de la lista de sockets Unix permitidos para las redes aisladas. Use rutas de sockets como claves; allow añade una ruta y deny la rechaza.",
},
{
key: "permissions..network.unix_sockets.",
type: "allow | deny",
description:
"Añade una ruta absoluta de socket Unix a la lista efectiva de permitidos con allow o la rechaza con deny. Las entradas denegadas se omiten de la lista efectiva de permitidos.",
},
{
key: "permissions..network.allow_local_binding",
type: "boolean",
description:
"Permite un acceso más amplio a redes locales o privadas mediante las redes aisladas. Las reglas de permiso con una dirección IP local exacta o localhost aún pueden permitir destinos locales específicos cuando esta opción permanece en false.",
},
{
key: "projects..trust_level",
type: "string",
description:
'Marca un proyecto o árbol de trabajo como de confianza o no confiable ("trusted" | "untrusted"). Los proyectos no confiables omiten las capas .codex/ delimitadas al proyecto, incluidas la configuración, los enlaces y las reglas locales del proyecto.',
},
{
key: "notice.hide_full_access_warning",
type: "boolean",
description: "Registra la confirmación de la advertencia de acceso completo.",
},
{
key: "notice.hide_world_writable_warning",
type: "boolean",
description:
"Registra la confirmación de la advertencia sobre directorios de Windows con permiso de escritura para todos.",
},
{
key: "notice.hide_rate_limit_model_nudge",
type: "boolean",
description: "Registra la exclusión voluntaria del recordatorio para cambiar de modelo debido al límite de frecuencia.",
},
{
key: "notice.hide_gpt5_1_migration_prompt",
type: "boolean",
description: "Registra la confirmación de la solicitud de migración a GPT-5.1.",
},
{
key: "notice.hide_gpt-5.1-codex-max_migration_prompt",
type: "boolean",
description:
"Registra la confirmación de la solicitud de migración a gpt-5.1-codex-max.",
},
{
key: "notice.model_migrations",
type: "map<string,string>",
description: "Registra las migraciones de modelos confirmadas como asignaciones old->new.",
},
{
key: "forced_login_method",
type: "chatgpt | api",
description: "Restringe Codex a un método de autenticación específico.",
},
{
key: "forced_chatgpt_workspace_id",
type: "string (uuid)",
description: "Limita los inicios de sesión de ChatGPT a un identificador de espacio de trabajo específico.",
},
]}
client:load
/>
Puedes encontrar el esquema JSON más reciente para config.toml aquí .
Para obtener autocompletado y diagnósticos al editar config.toml en VS Code o Cursor, puedes instalar la extensión Even Better TOML y añadir esta línea al principio de tu config.toml:
#:schema https://developers.openai.com/codex/config-schema.json Nota: Cambia el nombre de experimental_instructions_file a model_instructions_file. Codex ha dejado obsoleta la clave anterior; actualiza las configuraciones existentes para usar el nuevo nombre.
requirements.toml
requirements.toml es un archivo de configuración aplicado por el administrador que restringe opciones sensibles para la seguridad que los usuarios no pueden sobrescribir. Para obtener detalles, ubicaciones y ejemplos, consulta Requisitos aplicados por el administrador .
Para los usuarios de ChatGPT Business y Enterprise, Codex también puede aplicar
requisitos obtenidos de la nube. Consulta la página de seguridad para conocer los detalles de precedencia.
Usa [features] en requirements.toml para fijar indicadores de funciones en tiempo de ejecución mediante las mismas
claves canónicas que utiliza config.toml. Los requisitos también pueden incluir claves documentadas
exclusivas de la aplicación que no pertenecen a config.toml. Las claves omitidas permanecen
sin restricciones.
Algunos requisitos administrados aplican un valor de configuración exacto en lugar de una
lista de valores permitidos. Los usuarios no pueden sobrescribir una ruta aplicada, la preferencia de actualización, la política
del shell de inicio de sesión, la configuración de comentarios ni la configuración de escritorio privado de Windows.
Las listas administradas de perfiles de permisos permitidos requieren Codex 0.138.0 o una versión posterior. Codex
0.137.0 y las versiones anteriores ignoran allowed_permission_profiles y los
default_permissions administrados.
Usa allowed_sandbox_modes con sandbox_mode. Para implementaciones de perfiles de
permisos, usa allowed_permission_profiles con
default_permissions administrado.
La tabla [models.new_thread] proporciona valores predeterminados administrados, no una aplicación obligatoria.
Las opciones de inicio explícitas de indicadores específicos de CLI o las sobrescrituras de --config tienen
precedencia. Una sobrescritura explícita del modelo o del esfuerzo de razonamiento omite ambos campos
de modelo administrados; service_tier es independiente.
<ConfigTable
options={[
{
key: "sqlite_home",
type: "string (path)",
description:
"Aplica el directorio donde Codex almacena el estado de ejecución respaldado por SQLite.",
},
{
key: "log_dir",
type: "string (path)",
description: "Aplica el directorio donde Codex escribe los archivos de registro locales.",
},
{
key: "model_catalog_json",
type: "string (path)",
description: "Aplica el catálogo de modelos JSON que Codex utiliza al iniciarse.",
},
{
key: "check_for_update_on_startup",
type: "boolean",
description: "Aplica si Codex busca actualizaciones al iniciarse.",
},
{
key: "allow_login_shell",
type: "boolean",
description: "Aplica si las herramientas de shell pueden iniciar un shell de inicio de sesión.",
},
{
key: "feedback",
type: "table",
description: "Configuración administrada de comentarios.",
},
{
key: "feedback.enabled",
type: "boolean",
description:
"Aplica si los usuarios pueden enviar comentarios desde los clientes de Codex.",
},
{
key: "allowed_approval_policies",
type: "array",
description:
"Valores permitidos para approval_policy (por ejemplo, untrusted, on-request, never y granular).",
},
{
key: "allowed_approvals_reviewers",
type: "array",
description:
"Valores permitidos para approvals_reviewer, como user y auto_review.",
},
{
key: "guardian_policy_config",
type: "string",
description:
"Instrucciones administradas de la política Markdown para la revisión automática. Tienen precedencia sobre el [auto_review].policy local. Los valores vacíos se ignoran.",
},
{
key: "allowed_permission_profiles",
type: "table",
description:
"Lista completa de perfiles de permisos permitidos. Se permiten los perfiles establecidos en true. Se rechazan los perfiles omitidos o establecidos en false, incluidos los perfiles añadidos en versiones futuras. Cuando se combinan fuentes de requisitos, las entradas se comparan por el nombre del perfil.",
},
{
key: "allowed_permission_profiles.",
type: "boolean",
description:
"Permite o rechaza un perfil de permisos integrado o personalizado definido en una configuración o fuente de requisitos cargada. Una fuente de requisitos posterior y con mayor precedencia puede usar false para desactivar un perfil permitido por una fuente anterior con menor precedencia.",
},
{
key: "default_permissions",
type: "string",
description:
"Perfil de permisos predeterminado administrado. allowed_permission_profiles debe permitir el perfil. Establécelo explícitamente para obtener un comportamiento predecible; si se omite, Codex utiliza :workspace de forma predeterminada solo cuando tanto :workspace como :read-only están permitidos explícitamente.",
},
{
key: "enforce_residency",
type: "string",
description:
"Exige que el tráfico del servicio Codex utilice una residencia de datos compatible. Actualmente acepta us.",
},
{
key: "models",
type: "table",
description:
"Valores predeterminados administrados del modelo para hilos nuevos. Estos valores tienen prioridad sobre los valores predeterminados del usuario y del proyecto, pero una selección explícita para el hilo nuevo puede sobrescribirlos.",
},
{
key: "models.new_thread",
type: "table",
description:
"Valores predeterminados que se aplican al iniciar un nuevo hilo local. Cada opción del modelo es opcional.",
},
{
key: "models.new_thread.model",
type: "string",
description:
"Modelo predeterminado para hilos nuevos. Una sobrescritura explícita de --model o de modelo/razonamiento mediante --config tiene precedencia.",
},
{
key: "models.new_thread.model_reasoning_effort",
type: "string",
description:
"Esfuerzo de razonamiento predeterminado para hilos nuevos. Una sobrescritura explícita del modelo o del esfuerzo de razonamiento omite ambos campos de modelo administrados.",
},
{
key: "models.new_thread.service_tier",
type: "string",
description:
"Nivel de servicio predeterminado para hilos nuevos. Una sobrescritura explícita del nivel de servicio tiene precedencia independientemente de los campos del modelo.",
},
{
key: "permissions",
type: "table",
description:
"Perfiles de permisos definidos por el administrador, indexados por nombre de perfil. Utilizan los mismos campos de perfil que config.toml.",
},
{
key: "permissions.",
type: "table",
description:
"Perfil de permisos definido por el administrador. El nombre no puede comenzar por :, usar el nombre reservado filesystem ni duplicar un perfil de una configuración cargada. Utiliza los mismos campos de perfil que config.toml; consulta la guía de Permisos para ver el esquema completo del perfil.",
},
{
key: "allowed_sandbox_modes",
type: "array",
description: "Valores permitidos para sandbox_mode.",
},
{
key: "windows",
type: "table",
description: "Requisitos del entorno aislado nativo de Windows.",
},
{
key: "windows.allowed_sandbox_implementations",
type: "array",
description:
"Implementaciones permitidas del entorno aislado nativo de Windows para windows.sandbox (elevated y unelevated). La lista no debe estar vacía. Cuando ambas están permitidas y no se selecciona ningún modo, Codex prefiere elevated.",
},
{
key: "windows.sandbox_private_desktop",
type: "boolean",
description:
"Aplica si el entorno aislado nativo de Windows inicia su proceso secundario en un escritorio privado.",
},
{
key: "remote_sandbox_config",
type: "array",
description:
"Requisitos del entorno aislado específicos del host. La primera entrada cuyos hostname_patterns coincidan con el nombre de host resuelto sobrescribe allowed_sandbox_modes de nivel superior para esa fuente de requisitos. Actualmente, las entradas específicas del host solo sobrescriben los modos del entorno aislado.",
},
{
key: "remote_sandbox_config[].hostname_patterns",
type: "array",
description:
"Patrones de nombres de host que no distinguen entre mayúsculas y minúsculas. Admiten * para cualquier secuencia de caracteres y ? para un carácter.",
},
{
key: "remote_sandbox_config[].allowed_sandbox_modes",
type: "array",
description:
"Modos permitidos del entorno aislado que se aplican cuando esta entrada específica del host coincide.",
},
{
key: "allowed_web_search_modes",
type: "array",
description:
"Valores permitidos para web_search (disabled, cached, indexed, live). disabled siempre está permitido; una lista vacía permite en la práctica únicamente disabled.",
},
{
key: "allow_managed_hooks_only",
type: "boolean",
description:
"Cuando es true, Codex omite los hooks del usuario, proyecto, sesión y plugin, pero sigue permitiendo los hooks administrados de requirements.toml y otras capas de configuración administrada.",
},
{
key: "allow_appshots",
type: "boolean",
description:
"Establécelo en false para desactivar Appshots para los usuarios administrados. Si se omite, los requisitos no restringen Appshots y se aplica la disponibilidad normal del producto.",
},
{
key: "allow_remote_control",
type: "boolean",
description:
"Establécelo en false para desactivar el control remoto de dispositivos para los usuarios administrados. Si se omite, los requisitos no restringen el control remoto de dispositivos y se aplica la disponibilidad normal del producto.",
},
{
key: "features.plugin_sharing",
type: "boolean",
description:
"Establécelo en false en el requirements.toml administrado en la nube para desactivar el uso compartido en el espacio de trabajo de plugins creados localmente.",
},
{
key: "features",
type: "table",
description:
"Valores fijados de funciones. Usa nombres canónicos de config.toml para las funciones en tiempo de ejecución; aquí también se admiten claves de requisitos documentadas exclusivas de la aplicación.",
},
{
key: "features.",
type: "boolean",
description:
"Exige que una función documentada de ejecución o de la aplicación permanezca activada o desactivada.",
},
{
key: "features.apps",
type: "boolean",
description:
"Fija como activada o desactivada la disponibilidad de la integración de Apps para los usuarios administrados.",
},
{
key: "features.in_app_updates",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar las actualizaciones dentro de la aplicación. Las actualizaciones permanecen activadas de forma predeterminada cuando se omite este requisito.",
},
{
key: "features.in_app_browser",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar el panel del navegador integrado.",
},
{
key: "features.browser_use",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar Computer Use en navegadores y la disponibilidad de Browser Agent.",
},
{
key: "features.browser_use_external",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar Computer Use en navegadores externos.",
},
{
key: "features.browser_use_full_cdp_access",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar el acceso completo a Chrome DevTools Protocol en el entorno de ejecución local, incluido el modo Browser Developer, e impedir que la aplicación de escritorio ChatGPT active la opción correspondiente. Si se omite, se aplica la disponibilidad normal del producto.",
},
{
key: "features.fast_mode",
type: "boolean",
description:
"Fija como activada o desactivada la función canónica fast_mode para los usuarios administrados.",
},
{
key: "features.guardian_approval",
type: "boolean",
description:
"Fija como activada o desactivada la disponibilidad de aprobación de Guardian para los usuarios administrados.",
},
{
key: "features.memories",
type: "boolean",
description: "Fija como activada o desactivada la disponibilidad de Memories para los usuarios administrados.",
},
{
key: "features.multi_agent",
type: "boolean",
description: "Fija como activada o desactivada la disponibilidad multiagente para los usuarios administrados.",
},
{
key: "features.plugins",
type: "boolean",
description: "Fija como activada o desactivada la disponibilidad de plugins para los usuarios administrados.",
},
{
key: "features.remote_plugin",
type: "boolean",
description:
"Fija como activada o desactivada la disponibilidad del catálogo remoto de plugins para los usuarios administrados.",
},
{
key: "features.computer_use",
type: "boolean",
description:
"Establécelo en false en requirements.toml para desactivar Computer Use, Record & Replay y los flujos relacionados de instalación o activación.",
},
{
key: "features.workspace_dependencies",
type: "boolean",
description:
"Fija como activada o desactivada la disponibilidad en tiempo de ejecución de las dependencias del espacio de trabajo incluidas para los usuarios administrados.",
},
{
key: "computer_use",
type: "table",
description:
"Requisitos de Computer Use aplicados desde requirements.toml.",
},
{
key: "computer_use.allow_locked_computer_use",
type: "boolean",
description:
"Establécelo en false para impedir que Computer Use funcione después de que se bloquee un dispositivo macOS administrado. Si se omite, los requisitos no restringen el uso con el dispositivo bloqueado.",
},
{
key: "experimental_network",
type: "table",
description:
"Requisitos de acceso a la red aplicados desde requirements.toml. Estas restricciones son independientes de features.network_proxy y pueden configurar redes en entornos aislados sin el indicador de función del usuario.",
},
{
key: "experimental_network.enabled",
type: "boolean",
description:
"Activa los requisitos de redes en entornos aislados. Esto no concede acceso a la red cuando el entorno aislado activo mantiene desactivado el acceso de los comandos a la red.",
},
{
key: "experimental_network.http_port",
type: "integer",
description:
"Puerto del servidor HTTP de bucle invertido que se usará para los requisitos de [experimental_network].",
},
{
key: "experimental_network.socks_port",
type: "integer",
description:
"Puerto del servidor SOCKS5 de bucle invertido que se usará para los requisitos de [experimental_network].",
},
{
key: "experimental_network.allow_upstream_proxy",
type: "boolean",
description:
"Permite que las redes en entornos aislados se encadenen a través de un proxy ascendente del entorno.",
},
{
key: "experimental_network.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Permite direcciones de escucha que no sean de bucle invertido para los requisitos de [experimental_network]. Activarlo puede exponer los servidores más allá de localhost.",
},
{
key: "experimental_network.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Permite destinos arbitrarios de sockets Unix en lugar de acceso exclusivo mediante lista de permitidos. Úsalo únicamente en entornos estrictamente controlados.",
},
{
key: "experimental_network.domains",
type: "map<string, allow | deny>",
description:
"Política de dominios del administrador con forma de mapa para redes en entornos aislados. Admite hosts exactos, *.example.com solo para subdominios, **.example.com para el dominio raíz y sus subdominios, y reglas de permiso global *; prefiere reglas acotadas porque * abre ampliamente el acceso saliente público. deny prevalece en caso de conflicto. No combines esta opción con experimental_network.allowed_domains ni experimental_network.denied_domains.",
},
{
key: "experimental_network.allowed_domains",
type: "array",
description:
"Reglas de permiso del administrador con forma de lista para redes en entornos aislados. No combines esta opción con experimental_network.domains.",
},
{
key: "experimental_network.denied_domains",
type: "array",
description:
"Reglas de rechazo del administrador con forma de lista para redes en entornos aislados. No combines esta opción con experimental_network.domains.",
},
{
key: "experimental_network.managed_allowed_domains_only",
type: "boolean",
description:
"Cuando es true, solo permanecen vigentes las reglas de permiso administradas por el administrador mientras están activos los requisitos de redes en entornos aislados; se ignoran las adiciones del usuario a la lista de permitidos. Sin reglas de permiso administradas, las reglas de permiso de dominios añadidas por el usuario no permanecen vigentes.",
},
{
key: "experimental_network.unix_sockets",
type: "map<string, allow | deny>",
description:
"Política de sockets Unix administrada por el administrador para redes en entornos aislados.",
},
{
key: "experimental_network.allow_local_binding",
type: "boolean",
description:
"Permite un acceso más amplio a redes locales o privadas para redes en entornos aislados. Las reglas de permiso con un literal de IP local exacto o localhost aún pueden permitir destinos locales específicos cuando esta opción permanece en false.",
},
{
key: "hooks",
type: "table",
description:
"Hooks administrados del ciclo de vida aplicados por el administrador. Requieren un directorio de hooks administrado y utilizan el mismo esquema de eventos que los [hooks] insertados en config.toml.",
},
{
key: "hooks.managed_dir",
type: "string (absolute path)",
description:
"Directorio que contiene scripts de hooks administrados en macOS y Linux. Codex valida que sea absoluto y exista antes de cargar los hooks administrados.",
},
{
key: "hooks.windows_managed_dir",
type: "string (absolute path)",
description:
"Directorio que contiene scripts de hooks administrados en Windows. Codex valida que sea absoluto y exista antes de cargar los hooks administrados.",
},
{
key: "hooks.",
type: "array",
description:
"Grupos de coincidencia para un evento de hook como PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit o Stop.",
},
{
key: "hooks.[].hooks",
type: "array",
description:
"Controladores de hooks para un grupo de coincidencia. Actualmente se admiten hooks de comandos; los controladores de hooks de instrucciones y agentes se analizan, pero se omiten.",
},
{
key: "hooks.[].hooks[].commandWindows",
type: "string",
description:
"Sobrescritura de comandos exclusiva de Windows para hooks de comandos. También se acepta el alias TOML command_windows.",
},
{
key: "permissions.filesystem.deny_read",
type: "array",
description:
"Denegaciones de lectura del sistema de archivos aplicadas por el administrador. Las entradas pueden ser rutas o patrones glob, y los usuarios no pueden debilitarlas mediante la configuración local.",
},
{
key: "mcp_servers",
type: "table",
description:
"Lista de servidores MCP que se pueden activar. Tanto el nombre del servidor (<id>) como su identidad deben coincidir para que se active el servidor MCP. Cualquier servidor MCP configurado que no esté en la lista o cuya identidad no coincida se desactiva.",
},
{
key: "mcp_servers..identity",
type: "table",
description:
"Regla de identidad para un único servidor MCP. Establece command (stdio) o url (HTTP transmisible).",
},
{
key: "mcp_servers..identity.command",
type: "string | table",
description:
"Permite un servidor MCP stdio mediante una cadena de comando exacta, o utiliza una tabla de coincidencia para exigir un ejecutable exacto y comparadores de argumentos ordenados. La forma de cadena no inspecciona argumentos, cwd, env ni env_vars.",
},
{
key: "mcp_servers..identity.command.executable",
type: "string",
description:
"Ejecutable con el que debe coincidir exactamente el command configurado del servidor stdio.",
},
{
key: "mcp_servers..identity.command.args",
type: "array",
description:
"Comparadores de argumentos ordenados para un servidor stdio. La lista de argumentos configurada debe tener la misma longitud y todas las posiciones deben coincidir. Los comparadores de comandos no inspeccionan cwd, env ni env_vars.",
},
{
key: "mcp_servers..identity.command.args[].match",
type: "exact | prefix | regex",
description: "Operación de coincidencia para esta posición del argumento.",
},
{
key: "mcp_servers..identity.command.args[].value",
type: "string",
description: "Valor utilizado por un comparador de argumentos exact o prefix.",
},
{
key: "mcp_servers..identity.command.args[].expression",
type: "string",
description:
"Expresión regular utilizada por un comparador de argumentos regex. La expresión debe ser válida y coincidir con el valor completo del argumento.",
},
{
key: "mcp_servers..identity.url",
type: "string | table",
description:
"Permite un servidor MCP HTTP transmisible mediante una cadena URL exacta, o utiliza una tabla de comparación de valores exact, prefix o regex.",
},
{
key: "mcp_servers..identity.url.match",
type: "exact | prefix | regex",
description: "Operación de coincidencia para la URL configurada del servidor MCP.",
},
{
key: "mcp_servers..identity.url.value",
type: "string",
description: "Valor utilizado por un comparador de URL exact o prefix.",
},
{
key: "mcp_servers..identity.url.expression",
type: "string",
description:
"Expresión regular utilizada por un comparador de URL regex. La expresión debe ser válida y coincidir con el valor completo de la URL.",
},
{
key: "plugins",
type: "table",
description:
"Listas de servidores MCP permitidos específicas de plugins, indexadas por el identificador del plugin. Cuando esta tabla está presente, se desactivan los servidores incluidos en plugins que no tengan una entrada de plugin y servidor coincidente.",
},
{
key: "plugins..mcp_servers",
type: "table",
description:
"Lista de servidores MCP incluidos con un plugin que están permitidos. Los requisitos de servidores de plugins utilizan las mismas formas de identidad exacta y comparación que los requisitos mcp_servers de nivel superior.",
},
{
key: "plugins..mcp_servers..identity",
type: "table",
description:
"Regla de identidad para un servidor MCP incluido en un plugin. Establece command (stdio) o url (HTTP transmisible).",
},
{
key: "plugins..mcp_servers..identity.command",
type: "string | table",
description:
"Permite el servidor MCP stdio de un plugin mediante una cadena de comando exacta, o utiliza una tabla de coincidencia para exigir un ejecutable exacto y comparadores de argumentos ordenados.",
},
{
key: "plugins..mcp_servers..identity.command.executable",
type: "string",
description:
"Ejecutable con el que debe coincidir exactamente el comando configurado del servidor stdio incluido en el plugin.",
},
{
key: "plugins..mcp_servers..identity.command.args",
type: "array",
description:
"Comparadores de argumentos ordenados para un servidor stdio incluido en un plugin. La lista de argumentos configurada debe tener la misma longitud y todas las posiciones deben coincidir.",
},
{
key: "plugins..mcp_servers..identity.command.args[].match",
type: "exact | prefix | regex",
description: "Operación de coincidencia para esta posición del argumento.",
},
{
key: "plugins..mcp_servers..identity.command.args[].value",
type: "string",
description: "Valor utilizado por un comparador de argumentos exact o prefix.",
},
{
key: "plugins..mcp_servers..identity.command.args[].expression",
type: "string",
description:
"Expresión regular utilizada por un comparador de argumentos regex. La expresión debe coincidir con el valor completo del argumento.",
},
{
key: "plugins..mcp_servers..identity.url",
type: "string | table",
description:
"Permite el servidor MCP HTTP transmisible de un plugin mediante una cadena URL exacta, o utiliza una tabla de comparación de valores exact, prefix o regex.",
},
{
key: "plugins..mcp_servers..identity.url.match",
type: "exact | prefix | regex",
description: "Operación de coincidencia para la URL del servidor MCP incluido en el plugin.",
},
{
key: "plugins..mcp_servers..identity.url.value",
type: "string",
description: "Valor utilizado por un comparador de URL exact o prefix.",
},
{
key: "plugins..mcp_servers..identity.url.expression",
type: "string",
description:
"Expresión regular utilizada por un comparador de URL regex. La expresión debe coincidir con el valor completo de la URL.",
},
{
key: "marketplaces",
type: "table",
description:
"Requisitos del administrador para fuentes de marketplaces de plugins. Las reglas entran en vigor cuando restrict_to_allowed_sources es true.",
},
{
key: "marketplaces.restrict_to_allowed_sources",
type: "boolean",
description:
"Cuando es true, exige que las fuentes de marketplaces configuradas por el usuario coincidan con allowed_sources para las operaciones de añadir un marketplace, instalar un plugin y actualizar un marketplace de Git configurado. Los marketplaces de OpenAI administrados por Codex siguen estando permitidos cuando coinciden su fuente y nombre reservados. Esto no filtra en tiempo de ejecución los marketplaces de usuario ya configurados.",
},
{
key: "marketplaces.allowed_sources",
type: "table",
description:
"Fuentes de marketplaces permitidas, indexadas por el nombre de regla elegido por el administrador. Los nombres distintos se acumulan entre capas de requisitos; los campos con el mismo nombre utilizan la precedencia normal de las capas.",
},
{
key: "marketplaces.allowed_sources.",
type: "table",
description:
"Una regla de fuente permitida. El valor final de source tras combinar los requisitos determina qué campos relacionados interpreta Codex.",
},
{
key: "marketplaces.allowed_sources..source",
type: "git | host_pattern | local",
description:
"Tipo de comparador de fuentes de marketplace. Usa git para un repositorio, host_pattern para hosts de Git comparados mediante una expresión regular o local para un directorio.",
},
{
key: "marketplaces.allowed_sources..url",
type: "string",
description:
'URL del repositorio Git necesaria cuando se usa source = "git". Codex normaliza las URL configuradas y permitidas antes de exigir una coincidencia exacta del repositorio.',
},
{
key: "marketplaces.allowed_sources..ref",
type: "string",
description:
"Referencia Git exacta opcional para una regla git. Cuando se omite, la regla permite cualquier referencia del repositorio coincidente.",
},
{
key: "marketplaces.allowed_sources..host_pattern",
type: "string",
description:
'Expresión regular necesaria cuando se usa source = "host_pattern". Codex la compara con el nombre de host en minúsculas analizado a partir de una fuente Git con formato HTTPS, SSH o SCP. Usa ^ y $ para exigir una coincidencia del host completo.',
},
{
key: "marketplaces.allowed_sources..path",
type: "string (absolute path)",
description:
'Directorio local del marketplace necesario cuando se usa source = "local". Codex exige una ruta absoluta y compara las rutas después de normalizarlas.',
},
{
key: "apps",
type: "table",
description:
"Requisitos administrados de aplicaciones, indexados por el identificador de la aplicación. Los requisitos pueden desactivar una aplicación o restringir el comportamiento de aprobación de herramientas individuales.",
},
{
key: "apps..enabled",
type: "boolean",
description:
"Establécelo en false para desactivar una aplicación. Un requisito de desactivación conserva su carácter restrictivo cuando se combinan varias fuentes de requisitos.",
},
{
key: "apps..tools..approval_mode",
type: "auto | prompt | writes | approve",
description: "Establece el modo de aprobación administrado para una herramienta de la aplicación.",
},
{
key: "rules",
type: "table",
description:
"Reglas de comandos aplicadas por el administrador que se combinan con archivos .rules. Las reglas de requisitos deben ser restrictivas.",
},
{
key: "rules.prefix_rules",
type: "array",
description:
"Lista de reglas de prefijos aplicadas. Cada regla debe incluir pattern y decision.",
},
{
key: "rules.prefix_rules[].pattern",
type: "array",
description:
"Prefijo de comando expresado como tokens de patrón. Cada token establece token o any_of.",
},
{
key: "rules.prefix_rules[].pattern[].token",
type: "string",
description: "Un único token literal en esta posición.",
},
{
key: "rules.prefix_rules[].pattern[].any_of",
type: "array",
description: "Una lista de tokens alternativos permitidos en esta posición.",
},
{
key: "rules.prefix_rules[].decision",
type: "prompt | forbidden",
description:
"Obligatorio. Las reglas de requisitos solo pueden solicitar aprobación o prohibir (no permitir).",
},
{
key: "rules.prefix_rules[].justification",
type: "string",
description:
"Justificación opcional no vacía que se muestra en solicitudes de aprobación o mensajes de rechazo.",
},
]}
client:load
/>
Anterior Configuración avanzada Siguiente Variables de entorno