Используйте эту страницу как справочник с возможностью поиска по файлам конфигурации Codex. Обзор основных понятий и примеры см. сначала в разделах Основы конфигурации и Расширенная конфигурация .
config.toml
Пользовательская конфигурация хранится в ~/.codex/config.toml. Вы также можете добавить переопределения для отдельных проектов в файлы .codex/config.toml. Codex загружает файлы конфигурации проекта, только если вы доверяете проекту.
Конфигурация проекта не может переопределять локальные для компьютера параметры поставщика, аутентификации,
метаданных запросов приложений, принадлежащих узлу, уведомлений, выбора профиля конфигурации
и маршрутизации телеметрии. Codex игнорирует openai_base_url,
chatgpt_base_url, apps_mcp_product_sku, model_provider,
model_providers, notify, profile, profiles,
experimental_realtime_ws_base_url и otel, если они указаны в
локальном для проекта файле .codex/config.toml; вместо этого задавайте параметры поставщика, уведомлений и телеметрии
в пользовательской конфигурации. Файлы профилей конфигурации располагаются рядом с
config.toml под именами $CODEX_HOME/profile-name.config.toml; выберите нужный с помощью
--profile profile-name.
Для параметров песочницы и подтверждений (approval_policy, sandbox_mode и sandbox_workspace_write.*) используйте этот справочник вместе с разделами Песочница и подтверждения , Защищенные пути в доступных для записи корневых каталогах и Доступ к сети . Сведения о бета-версиях профилей разрешений см. в разделе Разрешения .
<ConfigTable
options={[
{
key: "model",
type: "string",
description: "Используемая модель (например, gpt-5.5).",
},
{
key: "review_model",
type: "string",
description:
"Необязательное переопределение модели, используемой командой /review (по умолчанию используется модель текущего сеанса).",
},
{
key: "model_provider",
type: "string",
description: "Идентификатор поставщика из model_providers (по умолчанию: openai).",
},
{
key: "openai_base_url",
type: "string",
description:
"Переопределение базового URL для встроенного поставщика моделей openai.",
},
{
key: "model_context_window",
type: "number",
description: "Количество токенов контекстного окна, доступных активной модели.",
},
{
key: "model_auto_compact_token_limit",
type: "number",
description:
"Порог количества токенов, при достижении которого автоматически сжимается история (если значение не задано, используются параметры модели по умолчанию).",
},
{
key: "model_auto_compact_token_limit_scope",
type: "total | body_after_prefix",
description:
"Определяет, учитывает ли порог автоматического сжатия весь активный контекст (total, значение по умолчанию) или только прирост после перенесённого префикса окна сжатия (body_after_prefix).",
},
{
key: "model_catalog_json",
type: "string (path)",
description:
"Необязательный путь к каталогу моделей JSON, загружаемому при запуске. Выбранный файл профиля $CODEX_HOME/profile-name.config.toml может переопределить его для конкретного профиля.",
},
{
key: "oss_provider",
type: "lmstudio | ollama",
description:
"Локальный поставщик по умолчанию, используемый при запуске с --oss (если значение не задано, по умолчанию отображается запрос на выбор).",
},
{
key: "approval_policy",
type: "untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }",
description:
"Определяет, когда Codex приостанавливает работу для запроса подтверждения перед выполнением команд. Можно также использовать approval_policy = { granular = { ... } }, чтобы разрешать или автоматически отклонять отдельные категории запросов, сохраняя интерактивность остальных запросов. on-failure устарел; используйте on-request для интерактивных запусков или never для неинтерактивных запусков.",
},
{
key: "approval_policy.granular.sandbox_approval",
type: "boolean",
description:
"При значении true разрешается отображать запросы подтверждения повышения разрешений песочницы.",
},
{
key: "approval_policy.granular.rules",
type: "boolean",
description:
"При значении true разрешается отображать запросы подтверждения, вызванные правилами execpolicy prompt.",
},
{
key: "approval_policy.granular.mcp_elicitations",
type: "boolean",
description:
"При значении true разрешается отображать запросы на предоставление данных от MCP вместо их автоматического отклонения.",
},
{
key: "approval_policy.granular.request_permissions",
type: "boolean",
description:
"При значении true разрешается отображать запросы от инструмента request_permissions.",
},
{
key: "approval_policy.granular.skill_approval",
type: "boolean",
description:
"При значении true разрешается отображать запросы подтверждения для скриптов навыков.",
},
{
key: "approvals_reviewer",
type: "user | auto_review",
description:
"Определяет, кто рассматривает подходящие запросы подтверждения при использовании on-request или детализированных политик подтверждения. По умолчанию: user; значение auto_review задействует субагента-рецензента. Этот параметр не изменяет настройки песочницы или уже разрешённые в ней действия рецензирования.",
},
{
key: "auto_review.policy",
type: "string",
description:
"Локальные инструкции политики автоматического рецензирования в формате Markdown. Управляемый параметр guardian_policy_config имеет приоритет. Пустые значения игнорируются.",
},
{
key: "allow_login_shell",
type: "boolean",
description:
"Разрешает инструментам на основе оболочки использовать семантику login shell. По умолчанию: true; при значении false запросы login = true отклоняются, а для неуказанного login по умолчанию используются оболочки без входа в систему.",
},
{
key: "sandbox_mode",
type: "read-only | workspace-write | danger-full-access",
description:
"Политика песочницы для доступа к файловой системе и сети во время выполнения команд.",
},
{
key: "sandbox_workspace_write.writable_roots",
type: "array",
description:
'Дополнительные корневые каталоги с правом записи при sandbox_mode = "workspace-write".',
},
{
key: "sandbox_workspace_write.network_access",
type: "boolean",
description:
"Разрешает исходящий сетевой доступ внутри песочницы workspace-write.",
},
{
key: "sandbox_workspace_write.exclude_tmpdir_env_var",
type: "boolean",
description:
"Исключает $TMPDIR из корневых каталогов с правом записи в режиме workspace-write.",
},
{
key: "sandbox_workspace_write.exclude_slash_tmp",
type: "boolean",
description:
"Исключает /tmp из корневых каталогов с правом записи в режиме workspace-write.",
},
{
key: "windows.sandbox",
type: "unelevated | elevated",
description:
"Режим нативной песочницы только для Windows при нативном запуске Codex в Windows.",
},
{
key: "windows.sandbox_private_desktop",
type: "boolean",
description:
"По умолчанию запускает конечный дочерний процесс в песочнице на отдельном рабочем столе в нативной Windows. Устанавливайте false только для совместимости с прежним поведением Winsta0\\\\Default.",
},
{
key: "computer_use.windows.always_allowed_app_ids",
type: "array",
description:
"Идентификаторы приложений Windows, которые Computer Use может открывать без запроса подтверждения. Для приложений, отсутствующих в списке, требуется подтверждение; сохранённые записи можно удалить в настройках Computer Use настольного приложения ChatGPT.",
},
{
key: "notify",
type: "array",
description:
"Команда, вызываемая для уведомлений; получает полезную нагрузку JSON от Codex.",
},
{
key: "check_for_update_on_startup",
type: "boolean",
description:
"Проверяет наличие обновлений Codex при запуске (устанавливайте false только при централизованном управлении обновлениями).",
},
{
key: "feedback.enabled",
type: "boolean",
description:
"Включает отправку отзывов через /feedback во всех локальных клиентах (по умолчанию: true).",
},
{
key: "analytics.enabled",
type: "boolean",
description:
"Включает или отключает аналитику для этого компьютера или профиля. Если значение не задано, применяется настройка клиента по умолчанию.",
},
{
key: "instructions",
type: "string",
description:
"Зарезервировано для будущего использования; предпочтительно использовать model_instructions_file или AGENTS.md.",
},
{
key: "developer_instructions",
type: "string",
description:
"Дополнительные инструкции разработчика, добавляемые в сеанс (необязательно).",
},
{
key: "log_dir",
type: "string (path)",
description:
"Каталог, в который Codex записывает файлы журналов; по умолчанию: $CODEX_HOME/log. Явное задание этого параметра также включает необязательный текстовый журнал TUI codex-tui.log в указанном каталоге.",
},
{
key: "sqlite_home",
type: "string (path)",
description:
"Каталог, в котором Codex хранит базу данных состояния на основе SQLite, используемую заданиями агентов и другими возобновляемыми состояниями среды выполнения.",
},
{
key: "compact_prompt",
type: "string",
description: "Встроенное переопределение запроса для сжатия истории.",
},
{
key: "model_instructions_file",
type: "string (path)",
description:
"Замена встроенных инструкций вместо AGENTS.md.",
},
{
key: "personality",
type: "none | friendly | pragmatic",
description:
"Стиль общения по умолчанию для моделей, заявляющих поддержку supportsPersonality; его можно переопределить для отдельного потока или хода либо через /personality.",
},
{
key: "service_tier",
type: "string",
description:
"Предпочтительный уровень обслуживания для новых ходов. Используйте fast или другой уровень, заявленный активной моделью; fast сопоставляется со значением запроса priority.",
},
{
key: "experimental_compact_prompt_file",
type: "string (path)",
description:
"Загружает переопределение запроса для сжатия из файла (экспериментальная функция).",
},
{
key: "skills.config",
type: "array",
description: "Переопределения включения отдельных навыков, хранящиеся в config.toml.",
},
{
key: "skills.config..path",
type: "string (path)",
description: "Путь к папке навыка, содержащей SKILL.md.",
},
{
key: "skills.config..enabled",
type: "boolean",
description: "Включает или отключает указанный навык.",
},
{
key: "apps..enabled",
type: "boolean",
description:
"Включает или отключает конкретное приложение или коннектор по идентификатору (по умолчанию: true).",
},
{
key: "apps._default.enabled",
type: "boolean",
description:
"Состояние включения по умолчанию для всех приложений, если оно не переопределено для конкретного приложения.",
},
{
key: "apps._default.destructive_enabled",
type: "boolean",
description:
"Разрешение или запрет по умолчанию для инструментов приложений с destructive_hint = true.",
},
{
key: "apps._default.open_world_enabled",
type: "boolean",
description:
"Разрешение или запрет по умолчанию для инструментов приложений с open_world_hint = true.",
},
{
key: "apps._default.approvals_reviewer",
type: "user | auto_review",
description:
"Рецензент по умолчанию для запросов подтверждения инструментов приложений, если он не переопределён для конкретного приложения. Если параметр не указан, приложения наследуют значение верхнеуровневого параметра approvals_reviewer.",
},
{
key: "apps._default.default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Поведение подтверждения по умолчанию для инструментов приложений без переопределений на уровне приложения или инструмента.",
},
{
key: "apps..destructive_enabled",
type: "boolean",
description:
"Разрешает или блокирует инструменты этого приложения, заявляющие destructive_hint = true.",
},
{
key: "apps..open_world_enabled",
type: "boolean",
description:
"Разрешает или блокирует инструменты этого приложения, заявляющие open_world_hint = true.",
},
{
key: "apps..default_tools_enabled",
type: "boolean",
description:
"Состояние включения по умолчанию для инструментов этого приложения, если не задано переопределение для конкретного инструмента.",
},
{
key: "apps..approvals_reviewer",
type: "user | auto_review",
description:
"Рецензент запросов подтверждения инструментов этого приложения. Переопределяет apps._default.approvals_reviewer.",
},
{
key: "apps..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Поведение подтверждения по умолчанию для инструментов этого приложения, если не задано переопределение для конкретного инструмента.",
},
{
key: "apps..tools..enabled",
type: "boolean",
description:
"Переопределение состояния включения для отдельного инструмента приложения (например, repos/list).",
},
{
key: "apps..tools..approval_mode",
type: "auto | prompt | writes | approve",
description: "Переопределение поведения подтверждения для отдельного инструмента приложения.",
},
{
key: "tool_suggest.discoverables",
type: "array",
description:
'Разрешает предлагать дополнительные доступные для обнаружения коннекторы или плагины. Каждая запись использует type = "connector" или "plugin" и id.',
},
{
key: "tool_suggest.disabled_tools",
type: "array",
description:
'Отключает предложения для отдельных доступных для обнаружения коннекторов или плагинов. Каждая запись использует type = "connector" или "plugin" и id.',
},
{
key: "features.apps",
type: "boolean",
description:
"Включает интеграции приложений (коннекторов) (стабильная функция; включена по умолчанию).",
},
{
key: "features.hooks",
type: "boolean",
description:
"Включает хуки жизненного цикла, загружаемые из hooks.json или встроенной конфигурации [hooks]. features.codex_hooks — устаревший псевдоним.",
},
{
key: "features.code_mode.enabled",
type: "boolean",
description:
"Включает конфигурацию функции режима кода. Эта функция находится в разработке и по умолчанию отключена.",
},
{
key: "features.code_mode.excluded_tool_namespaces",
type: "array",
description:
"Пространства имён инструментов, которые режим кода исключает из вложенных инструкций для инструментов режима кода и из доступа исполнителя.",
},
{
key: "features.code_mode.direct_only_tool_namespaces",
type: "array",
description:
"Пространства имён инструментов, которые режим кода может использовать только посредством прямых вызовов инструментов.",
},
{
key: "features.rollout_budget.enabled",
type: "boolean",
description:
"Включает отслеживание бюджета выполнения. Эта функция находится в разработке и по умолчанию отключена. Когда она включена, требуется features.rollout_budget.limit_tokens.",
},
{
key: "features.rollout_budget.limit_tokens",
type: "integer",
description:
"Положительный лимит токенов для отслеживания бюджета выполнения. Обязателен, когда бюджет выполнения включён.",
},
{
key: "features.rollout_budget.reminder_interval_tokens",
type: "integer",
description:
"Положительный интервал в токенах между напоминаниями о бюджете выполнения. По умолчанию составляет 10% от limit_tokens, но не менее 1 токена.",
},
{
key: "features.rollout_budget.sampling_token_weight",
type: "number",
description:
"Конечный неотрицательный множитель для выбранных токенов при учёте бюджета выполнения. По умолчанию: 1.0.",
},
{
key: "features.rollout_budget.prefill_token_weight",
type: "number",
description:
"Конечный неотрицательный множитель для токенов предварительного заполнения при учёте бюджета выполнения. По умолчанию: 1.0.",
},
{
key: "hooks",
type: "table",
description:
"Хуки жизненного цикла, настроенные непосредственно в config.toml. Используют ту же схему событий, что и hooks.json; примеры и поддерживаемые события приведены в руководстве по хукам.",
},
{
key: "hooks.",
type: "array",
description:
"Группы сопоставления для событий хуков, таких как PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit или Stop.",
},
{
key: "hooks.[].hooks",
type: "array",
description:
"Обработчики хуков для группы сопоставления. Сейчас поддерживаются хуки команд; обработчики хуков запросов и агентов разбираются, но пропускаются.",
},
{
key: "hooks.[].hooks[].commandWindows",
type: "string",
description:
"Переопределение команды только для Windows для хуков команд. Также принимается псевдоним TOML command_windows.",
},
{
key: "features.memories",
type: "boolean",
description:
"Включает память (по умолчанию отключена).",
},
{
key: "mcp_servers..command",
type: "string",
description: "Команда запуска для MCP-сервера stdio.",
},
{
key: "mcp_servers..args",
type: "array",
description: "Аргументы, передаваемые команде MCP-сервера stdio.",
},
{
key: "mcp_servers..env",
type: "map<string,string>",
description: "Переменные среды, передаваемые MCP-серверу stdio.",
},
{
key: "mcp_servers..env_vars",
type: 'array<string | { name = string, source = "local" | "remote" }>',
description:
'Дополнительные переменные среды, добавляемые в список разрешённых для MCP-сервера stdio. Для строковых записей по умолчанию используется source = "local"; используйте source = "remote" только с удалённым stdio на основе исполнителя.',
},
{
key: "mcp_servers..cwd",
type: "string",
description: "Рабочий каталог процесса MCP-сервера stdio.",
},
{
key: "mcp_servers..url",
type: "string",
description: "Конечная точка для MCP-сервера с потоковым HTTP.",
},
{
key: "mcp_servers..auth",
type: "oauth | chatgpt",
description:
"Резервный способ аутентификации MCP HTTP-сервера после настроенных bearer-токенов и заголовков авторизации. oauth (по умолчанию) использует сохранённые учётные данные MCP OAuth, если они доступны. chatgpt использует текущий сеанс ChatGPT для доверенного собственного источника ChatGPT, а затем переключается на сохранённый OAuth. Оба режима могут подключаться без аутентификации, если ни один источник учётных данных не найден.",
},
{
key: "mcp_servers..bearer_token_env_var",
type: "string",
description:
"Переменная среды, из которой берётся bearer-токен для MCP HTTP-сервера.",
},
{
key: "mcp_servers..http_headers",
type: "map<string,string>",
description: "Статические HTTP-заголовки, включаемые в каждый HTTP-запрос MCP.",
},
{
key: "mcp_servers..env_http_headers",
type: "map<string,string>",
description:
"HTTP-заголовки MCP HTTP-сервера, заполняемые из переменных среды.",
},
{
key: "mcp_servers..enabled",
type: "boolean",
description: "Отключает MCP-сервер без удаления его конфигурации.",
},
{
key: "mcp_servers..required",
type: "boolean",
description:
"При значении true запуск или возобновление завершается ошибкой, если этот включённый MCP-сервер не удаётся инициализировать.",
},
{
key: "mcp_servers..startup_timeout_sec",
type: "number",
description:
"Переопределяет стандартный 10-секундный тайм-аут запуска MCP-сервера.",
},
{
key: "mcp_servers..startup_timeout_ms",
type: "number",
description: "Псевдоним для startup_timeout_sec в миллисекундах.",
},
{
key: "mcp_servers..tool_timeout_sec",
type: "number",
description:
"Переопределяет стандартный 60-секундный тайм-аут каждого инструмента MCP-сервера.",
},
{
key: "mcp_servers..enabled_tools",
type: "array",
description: "Список разрешённых имён инструментов, предоставляемых MCP-сервером.",
},
{
key: "mcp_servers..disabled_tools",
type: "array",
description:
"Список запрещённых инструментов, применяемый после enabled_tools для MCP-сервера.",
},
{
key: "mcp_servers..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Поведение подтверждения по умолчанию для инструментов MCP на этом сервере, если не задано переопределение для конкретного инструмента.",
},
{
key: "mcp_servers..tools..approval_mode",
type: "auto | prompt | writes | approve",
description:
"Переопределение поведения подтверждения для одного инструмента MCP на этом сервере.",
},
{
key: "mcp_servers..scopes",
type: "array",
description:
"Области OAuth, запрашиваемые при аутентификации на этом MCP-сервере.",
},
{
key: "mcp_servers..oauth_resource",
type: "string",
description:
"Необязательный параметр ресурса OAuth согласно RFC 8707, включаемый при входе в MCP.",
},
{
key: "mcp_servers..experimental_environment",
type: "local | remote",
description:
"Экспериментальное размещение MCP-сервера. remote запускает серверы stdio через среду удалённого исполнителя; удалённое размещение потокового HTTP не реализовано.",
},
{
key: "agents",
type: "table",
description:
"Настройки нескольких агентов и объявления пользовательских ролей. Имена скалярных параметров зарезервированы и не могут использоваться как имена пользовательских ролей.",
},
{
key: "agents.enabled",
type: "boolean",
description: "Включает или отключает инструменты нескольких агентов (по умолчанию: true).",
},
{
key: "agents.max_concurrent_threads_per_session",
type: "number",
description:
"Максимальное количество одновременно открытых потоков порождённых агентов без учёта основного потока. Если значение не задано, Codex выбирает значение по умолчанию.",
},
{
key: "agents.max_threads",
type: "number",
description:
"Устаревший псевдоним для agents.max_concurrent_threads_per_session.",
},
{
key: "agents.default_subagent_model",
type: "string",
description:
"Модель по умолчанию для порождённых агентов. Явно указанная при порождении модель имеет приоритет.",
},
{
key: "agents.default_subagent_reasoning_effort",
type: "string",
description:
"Уровень рассуждений по умолчанию для порождённых агентов. Явно указанный при порождении уровень имеет приоритет.",
},
{
key: "agents.interrupt_message",
type: "boolean",
description:
"Записывает видимое модели сообщение при прерывании хода агента (по умолчанию: true).",
},
{
key: "agents..description",
type: "string",
description:
"Рекомендации по роли, отображаемые Codex при выборе и порождении агента этого типа.",
},
{
key: "agents..config_file",
type: "string (path)",
description:
"Путь к слою конфигурации TOML для этой роли; относительные пути разрешаются от файла конфигурации, в котором объявлена роль.",
},
{
key: "memories.generate_memories",
type: "boolean",
description:
"При значении false вновь созданные потоки не сохраняются как входные данные для создания памяти. По умолчанию: true.",
},
{
key: "memories.use_memories",
type: "boolean",
description:
"При значении false Codex не добавляет существующую память в будущие сеансы. По умолчанию: true.",
},
{
key: "memories.disable_on_external_context",
type: "boolean",
description:
"При значении true потоки, использующие внешний контекст, например вызовы инструментов MCP, веб-поиск или поиск инструментов, исключаются из создания памяти. По умолчанию: false. Устаревший псевдоним: memories.no_memories_if_mcp_or_web_search.",
},
{
key: "memories.max_raw_memories_for_consolidation",
type: "number",
description:
"Максимальное количество недавних необработанных записей памяти, сохраняемых для глобальной консолидации. По умолчанию: 256; верхний предел — 4096.",
},
{
key: "memories.max_unused_days",
type: "number",
description:
"Максимальное количество дней с момента последнего использования записи памяти, после которого она перестаёт подходить для консолидации. По умолчанию: 30; значение ограничивается диапазоном 0–365.",
},
{
key: "memories.max_rollout_age_days",
type: "number",
description:
"Максимальный возраст потоков, учитываемых при создании памяти. По умолчанию: 30; значение ограничивается диапазоном 0–90.",
},
{
key: "memories.max_rollouts_per_startup",
type: "number",
description:
"Максимальное количество кандидатов на выполнение, обрабатываемых за один проход при запуске. По умолчанию: 16; верхний предел — 128.",
},
{
key: "memories.min_rollout_idle_hours",
type: "number",
description:
"Минимальное время бездействия, после которого поток рассматривается для создания памяти. По умолчанию: 6; значение ограничивается диапазоном 1–48.",
},
{
key: "memories.min_rate_limit_remaining_percent",
type: "number",
description:
"Минимальный процент оставшегося лимита, необходимый в окнах ограничения частоты Codex для начала создания памяти. По умолчанию: 25; значение ограничивается диапазоном 0–100.",
},
{
key: "memories.extract_model",
type: "string",
description: "Необязательное переопределение модели для извлечения памяти из отдельных потоков.",
},
{
key: "memories.consolidation_model",
type: "string",
description: "Необязательное переопределение модели для глобальной консолидации памяти.",
},
{
key: "features.unified_exec",
type: "boolean",
description:
"Использует унифицированный инструмент exec на основе PTY (стабильная функция; включена по умолчанию, кроме Windows).",
},
{
key: "features.shell_snapshot",
type: "boolean",
description:
"Создаёт снимок среды оболочки для ускорения повторных команд (стабильная функция; включена по умолчанию).",
},
{
key: "features.multi_agent",
type: "boolean",
description:
"Включает инструменты совместной работы нескольких агентов (spawn_agent, send_input, resume_agent, wait_agent и close_agent) (стабильная функция; включена по умолчанию).",
},
{
key: "features.goals",
type: "boolean",
description:
"Включает сохраняемые цели и автоматическое продолжение (стабильная функция; включена по умолчанию).",
},
{
key: "features.remote_plugin",
type: "boolean",
description: "Включает удалённый каталог плагинов (стабильная функция; включена по умолчанию).",
},
{
key: "features.personality",
type: "boolean",
description:
"Включает элементы управления выбором характера (стабильная функция; включена по умолчанию).",
},
{
key: "features.network_proxy",
type: "boolean | table",
description:
"Включает сетевой доступ в песочнице. Используйте форму таблицы при настройке параметров сетевой политики, таких как domains (экспериментальная функция; по умолчанию отключена).",
},
{
key: "features.network_proxy.enabled",
type: "boolean",
description: "Включает сетевой доступ в песочнице. По умолчанию: false.",
},
{
key: "features.network_proxy.domains",
type: "map<string, allow | deny>",
description:
"Политика доменов для сетевого доступа в песочнице. По умолчанию не задана, поэтому внешние адресаты недоступны, пока вы не добавите правила allow. Поддерживаются точные имена хостов, *.example.com только для поддоменов, **.example.com для корневого домена и поддоменов, а также глобальные разрешающие правила *; предпочитайте правила с ограниченной областью действия, поскольку * предоставляет широкий публичный исходящий доступ. Добавляйте правила deny для заблокированных адресатов; при конфликте побеждает deny.",
},
{
key: "features.network_proxy.unix_sockets",
type: "map<string, allow | deny>",
description:
"Политика Unix-сокетов для сетевого доступа в песочнице. По умолчанию не задана; добавьте записи allow для разрешённых сокетов.",
},
{
key: "features.network_proxy.allow_local_binding",
type: "boolean",
description:
"Разрешает более широкий доступ к локальной или частной сети. По умолчанию: false; правила разрешения для точного литерала локального IP-адреса или localhost по-прежнему могут разрешать отдельные локальные адресаты.",
},
{
key: "features.network_proxy.enable_socks5",
type: "boolean",
description: "Предоставляет поддержку SOCKS5. По умолчанию: true.",
},
{
key: "features.network_proxy.enable_socks5_udp",
type: "boolean",
description: "Разрешает UDP через SOCKS5. По умолчанию: true.",
},
{
key: "features.network_proxy.allow_upstream_proxy",
type: "boolean",
description:
"Разрешает создание цепочки через вышестоящий прокси-сервер из среды. По умолчанию: true.",
},
{
key: "features.network_proxy.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Разрешает адреса прослушивания вне loopback-интерфейса. По умолчанию: false; включение может сделать прослушиватели прокси доступными за пределами localhost.",
},
{
key: "features.network_proxy.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Разрешает произвольные адресаты Unix-сокетов вместо доступа только по списку разрешённых. По умолчанию: false; используйте только в строго контролируемых средах.",
},
{
key: "features.network_proxy.proxy_url",
type: "string",
description:
'URL HTTP-прослушивателя для сетевого доступа в песочнице. По умолчанию: "http://127.0.0.1:3128".',
},
{
key: "features.network_proxy.socks_url",
type: "string",
description:
'URL прослушивателя SOCKS5. По умолчанию: "http://127.0.0.1:8081".',
},
{
key: "features.web_search",
type: "boolean",
description:
"Устаревший переключатель; предпочтительно использовать верхнеуровневый параметр web_search.",
},
{
key: "features.web_search_cached",
type: "boolean",
description:
'Устаревший переключатель. Если web_search не задан, true сопоставляется с web_search = "cached".',
},
{
key: "features.web_search_request",
type: "boolean",
description:
'Устаревший переключатель. Если web_search не задан, true сопоставляется с web_search = "live".',
},
{
key: "features.shell_tool",
type: "boolean",
description:
"Включает стандартный инструмент shell для выполнения команд (стабильная функция; включена по умолчанию).",
},
{
key: "features.enable_request_compression",
type: "boolean",
description:
"Сжимает тела потоковых запросов с помощью zstd, если это поддерживается (стабильная функция; включена по умолчанию).",
},
{
key: "features.skill_mcp_dependency_install",
type: "boolean",
description:
"Разрешает запрашивать и устанавливать отсутствующие зависимости MCP для навыков (стабильная функция; включена по умолчанию).",
},
{
key: "features.fast_mode",
type: "boolean",
description:
"Включает выбор уровня обслуживания из каталога моделей в TUI, включая команды уровня Fast, когда активная модель заявляет их поддержку (стабильная функция; включена по умолчанию).",
},
{
key: "features.prevent_idle_sleep",
type: "boolean",
description:
"Не позволяет компьютеру переходить в спящий режим во время активного выполнения хода (экспериментальная функция; по умолчанию отключена).",
},
{
key: "suppress_unstable_features_warning",
type: "boolean",
description:
"Скрывает предупреждение, появляющееся при включении флагов разрабатываемых функций.",
},
{
key: "model_providers.",
type: "table",
description:
"Определение пользовательского поставщика. Идентификаторы встроенных поставщиков (openai, ollama и lmstudio) зарезервированы и не могут быть переопределены.",
},
{
key: "model_providers..name",
type: "string",
description: "Отображаемое имя пользовательского поставщика моделей.",
},
{
key: "model_providers..base_url",
type: "string",
description: "Базовый URL API поставщика моделей.",
},
{
key: "model_providers..env_key",
type: "string",
description: "Переменная среды, предоставляющая API key поставщика.",
},
{
key: "model_providers..env_key_instructions",
type: "string",
description: "Необязательные инструкции по настройке API key поставщика.",
},
{
key: "model_providers..experimental_bearer_token",
type: "string",
description:
"Непосредственно заданный bearer-токен поставщика (не рекомендуется; используйте env_key).",
},
{
key: "model_providers..requires_openai_auth",
type: "boolean",
description:
"Поставщик использует аутентификацию OpenAI (по умолчанию: false).",
},
{
key: "model_providers..wire_api",
type: "responses",
description:
"Протокол, используемый поставщиком. responses — единственное поддерживаемое значение, которое также применяется по умолчанию, если параметр не указан.",
},
{
key: "model_providers..query_params",
type: "map<string,string>",
description: "Дополнительные параметры запроса, добавляемые к запросам поставщику.",
},
{
key: "model_providers..http_headers",
type: "map<string,string>",
description: "Статические HTTP-заголовки, добавляемые к запросам поставщику.",
},
{
key: "model_providers..env_http_headers",
type: "map<string,string>",
description:
"HTTP-заголовки, заполняемые из переменных среды, когда они заданы.",
},
{
key: "model_providers..request_max_retries",
type: "number",
description:
"Количество повторных попыток HTTP-запросов к поставщику (по умолчанию: 4).",
},
{
key: "model_providers..stream_max_retries",
type: "number",
description: "Количество повторных попыток при прерывании потоковой передачи SSE (по умолчанию: 5).",
},
{
key: "model_providers..stream_idle_timeout_ms",
type: "number",
description:
"Тайм-аут бездействия потоков SSE в миллисекундах (по умолчанию: 300000).",
},
{
key: "model_providers..supports_websockets",
type: "boolean",
description:
"Указывает, поддерживает ли поставщик транспорт WebSocket для Responses API.",
},
{
key: "model_providers..supports_standalone_web_search",
type: "boolean",
description:
"Заявляет поддержку совместимой отдельной конечной точки веб-поиска (по умолчанию: false). Отдельный поиск всё ещё находится в разработке и по умолчанию отключён; одной совместимости поставщика недостаточно для его включения.",
},
{
key: "model_providers..auth",
type: "table",
description:
"Конфигурация bearer-токена для пользовательского поставщика, получаемого с помощью команды. Не сочетайте с env_key, experimental_bearer_token или requires_openai_auth.",
},
{
key: "model_providers..auth.command",
type: "string",
description:
"Команда, запускаемая, когда Codex требуется bearer-токен. Команда должна вывести токен в stdout.",
},
{
key: "model_providers..auth.args",
type: "array",
description: "Аргументы, передаваемые команде получения токена.",
},
{
key: "model_providers..auth.timeout_ms",
type: "number",
description:
"Максимальное время выполнения команды получения токена в миллисекундах (по умолчанию: 5000).",
},
{
key: "model_providers..auth.refresh_interval_ms",
type: "number",
description:
"Период упреждающего обновления токена Codex в миллисекундах (по умолчанию: 300000). Установите 0, чтобы обновлять токен только после повторной попытки аутентификации.",
},
{
key: "model_providers..auth.cwd",
type: "string (path)",
description: "Рабочий каталог команды получения токена.",
},
{
key: "model_providers.amazon-bedrock.aws.profile",
type: "string",
description:
"Имя профиля AWS, используемого встроенным поставщиком amazon-bedrock.",
},
{
key: "model_providers.amazon-bedrock.aws.region",
type: "string",
description: "Регион AWS, используемый встроенным поставщиком amazon-bedrock.",
},
{
key: "model_reasoning_effort",
type: "minimal | low | medium | high | xhigh",
description:
"Регулирует уровень рассуждений для поддерживаемых моделей (только Responses API; xhigh зависит от модели).",
},
{
key: "plan_mode_reasoning_effort",
type: "none | minimal | low | medium | high | xhigh",
description:
"Переопределение уровня рассуждений для режима планирования. Если значение не задано, режим планирования использует встроенную предустановку по умолчанию.",
},
{
key: "model_reasoning_summary",
type: "auto | concise | detailed | none",
description:
"Выбирает уровень детализации сводки рассуждений или полностью отключает сводки.",
},
{
key: "model_verbosity",
type: "low | medium | high",
description:
"Необязательное переопределение многословности Responses API для GPT-5; если значение не задано, используется настройка выбранной модели или предустановки по умолчанию.",
},
{
key: "model_supports_reasoning_summaries",
type: "boolean",
description: "Принудительно включает или отключает отправку метаданных рассуждений Codex.",
},
{
key: "shell_environment_policy.inherit",
type: "all | core | none",
description:
"Базовое наследование среды при порождении подпроцессов.",
},
{
key: "shell_environment_policy.ignore_default_excludes",
type: "boolean",
description:
"Сохраняет переменные, содержащие KEY, SECRET или TOKEN, до применения остальных фильтров (по умолчанию: true). Установите false, чтобы применять автоматическое исключение имён секретов.",
},
{
key: "shell_environment_policy.filters",
type: "map<string, include | exclude>",
description:
"Канонические регистронезависимые фильтры шаблонов переменных среды. Записи включения создают список разрешённых и не могут восстановить исключённые значения. Явные значения set применяются после исключений. Не сочетайте фильтры с устаревшими массивами exclude или include_only в одном слое.",
},
{
key: "shell_environment_policy.exclude",
type: "array",
description:
"Устаревшие шаблоны исключения переменных среды. Для новой конфигурации используйте shell_environment_policy.filters; не сочетайте обе формы в одном слое.",
},
{
key: "shell_environment_policy.include_only",
type: "array",
description:
"Устаревший список разрешённых шаблонов переменных среды. Для новой конфигурации используйте shell_environment_policy.filters; не сочетайте обе формы в одном слое.",
},
{
key: "shell_environment_policy.set",
type: "map<string,string>",
description:
"Явные значения среды, внедряемые после исключений; фильтры включения всё равно могут удалить их.",
},
{
key: "shell_environment_policy.experimental_use_profile",
type: "boolean",
description: "Использует профиль пользовательской оболочки при порождении подпроцессов.",
},
{
key: "project_root_markers",
type: "array",
description:
"Список имён файлов-маркеров корня проекта; используется при поиске корня проекта в родительских каталогах.",
},
{
key: "project_doc_max_bytes",
type: "number",
description:
"Максимальное количество байтов, считываемых из AGENTS.md при формировании инструкций проекта.",
},
{
key: "project_doc_fallback_filenames",
type: "array",
description: "Дополнительные имена файлов, проверяемые при отсутствии AGENTS.md.",
},
{
key: "history.persistence",
type: "save-all | none",
description:
"Определяет, сохраняет ли Codex расшифровки сеансов в history.jsonl.",
},
{
key: "tool_output_token_limit",
type: "number",
description:
"Бюджет токенов для хранения результатов отдельных инструментов или функций в истории.",
},
{
key: "background_terminal_max_timeout",
type: "number",
description:
"Максимальное окно опроса в миллисекундах для пустых опросов write_stdin (фоновый опрос терминала). По умолчанию: 300000 (5 минут). Заменяет прежний ключ background_terminal_timeout.",
},
{
key: "history.max_bytes",
type: "number",
description:
"Если задано, ограничивает размер файла истории в байтах, удаляя самые старые записи.",
},
{
key: "file_opener",
type: "vscode | vscode-insiders | windsurf | cursor | none",
description:
"Схема URI, используемая для открытия ссылок из вывода Codex (по умолчанию: vscode).",
},
{
key: "otel.environment",
type: "string",
description:
"Метка среды, применяемая к создаваемым событиям OpenTelemetry (по умолчанию: dev).",
},
{
key: "otel.exporter",
type: "none | otlp-http | otlp-grpc",
description:
"Выбирает экспортёр OpenTelemetry и задаёт метаданные его конечной точки.",
},
{
key: "otel.trace_exporter",
type: "none | otlp-http | otlp-grpc",
description:
"Выбирает экспортёр трассировок OpenTelemetry и задаёт метаданные его конечной точки.",
},
{
key: "otel.metrics_exporter",
type: "none | statsig | otlp-http | otlp-grpc",
description:
"Выбирает экспортёр метрик OpenTelemetry (по умолчанию: statsig).",
},
{
key: "otel.log_user_prompt",
type: "boolean",
description:
"Включает экспорт исходных пользовательских запросов вместе с журналами OpenTelemetry.",
},
{
key: "otel.exporter..endpoint",
type: "string",
description: "Конечная точка экспортёра для журналов OTEL.",
},
{
key: "otel.exporter..protocol",
type: "binary | json",
description: "Протокол, используемый экспортёром OTLP/HTTP.",
},
{
key: "otel.exporter..headers",
type: "map<string,string>",
description: "Статические заголовки, включаемые в запросы экспортёра OTEL.",
},
{
key: "otel.trace_exporter..endpoint",
type: "string",
description: "Конечная точка экспортёра трассировок для журналов OTEL.",
},
{
key: "otel.trace_exporter..protocol",
type: "binary | json",
description: "Протокол, используемый экспортёром трассировок OTLP/HTTP.",
},
{
key: "otel.trace_exporter..headers",
type: "map<string,string>",
description: "Статические заголовки, включаемые в запросы экспортёра трассировок OTEL.",
},
{
key: "otel.exporter..tls.ca-certificate",
type: "string",
description: "Путь к сертификату центра сертификации для TLS экспортёра OTEL.",
},
{
key: "otel.exporter..tls.client-certificate",
type: "string",
description: "Путь к клиентскому сертификату для TLS экспортёра OTEL.",
},
{
key: "otel.exporter..tls.client-private-key",
type: "string",
description: "Путь к закрытому ключу клиента для TLS экспортёра OTEL.",
},
{
key: "otel.trace_exporter..tls.ca-certificate",
type: "string",
description: "Путь к сертификату центра сертификации для TLS экспортёра трассировок OTEL.",
},
{
key: "otel.trace_exporter..tls.client-certificate",
type: "string",
description: "Путь к клиентскому сертификату для TLS экспортёра трассировок OTEL.",
},
{
key: "otel.trace_exporter..tls.client-private-key",
type: "string",
description: "Путь к закрытому ключу клиента для TLS экспортёра трассировок OTEL.",
},
{
key: "tui",
type: "table",
description:
"Параметры TUI, например включение встроенных уведомлений рабочего стола.",
},
{
key: "tui.notifications",
type: "boolean | array",
description:
"Включает уведомления TUI; при необходимости ограничивает их определёнными типами событий.",
},
{
key: "tui.notification_method",
type: "auto | osc9 | bel",
description:
"Метод терминальных уведомлений (по умолчанию: auto).",
},
{
key: "tui.notification_condition",
type: "unfocused | always",
description:
"Определяет, срабатывают ли уведомления TUI только при отсутствии фокуса на терминале или независимо от фокуса. По умолчанию: unfocused.",
},
{
key: "tui.animations",
type: "boolean",
description:
"Включает анимации терминала (экран приветствия, мерцание и индикатор выполнения) (по умолчанию: true).",
},
{
key: "tui.alternate_screen",
type: "auto | always | never",
description:
"Управляет использованием альтернативного экрана в TUI (по умолчанию: auto; в режиме auto он не используется в Zellij для сохранения истории прокрутки).",
},
{
key: "tui.resume_cwd",
type: "current | session",
description:
"Рабочий каталог, используемый при возобновлении или разветвлении сеанса. Если значение не задано и текущий каталог отличается от сохранённого каталога сеанса, Codex предлагает выбрать каталог.",
},
{
key: "tui.vim_mode_default",
type: "boolean",
description:
"Запускает редактор в обычном режиме Vim вместо режима вставки (по умолчанию: false). Его по-прежнему можно переключать для каждого сеанса с помощью /vim.",
},
{
key: "tui.raw_output_mode",
type: "boolean",
description:
"Запускает TUI в режиме необработанной истории прокрутки для удобного выбора текста в терминале (по умолчанию: false). Его можно переключать с помощью /raw или стандартного сочетания клавиш alt-r.",
},
{
key: "tui.show_tooltips",
type: "boolean",
description:
"Показывает вводные подсказки на экране приветствия TUI (по умолчанию: true).",
},
{
key: "tui.status_line",
type: "array | null",
description:
"Упорядоченный список идентификаторов элементов строки состояния в нижней части TUI. null отключает строку состояния.",
},
{
key: "tui.terminal_title",
type: "array | null",
description:
'Упорядоченный список идентификаторов элементов заголовка окна или вкладки терминала. По умолчанию: ["spinner", "project"]; null отключает обновление заголовка.',
},
{
key: "tui.theme",
type: "string",
description:
"Переопределение темы подсветки синтаксиса (имя темы в kebab-case).",
},
{
key: "tui.keymap..",
type: "string | array",
description:
"Привязка сочетания клавиш к действию TUI. Поддерживаются контексты global, chat, composer, editor, vim_normal, vim_operator, vim_text_object, pager, list и approval. Для отдельных действий редактора используются соответствующие привязки tui.keymap.global, если более конкретные отсутствуют; поддерживаемые привязки для конкретного контекста имеют приоритет.",
},
{
key: "tui.keymap.. = []",
type: "empty array",
description:
"Отменяет привязку действия в этом контексте раскладки клавиш. Имена клавиш задаются нормализованными строками, такими как ctrl-a, shift-enter, page-down или minus.",
},
{
key: "plugins..mcp_servers..enabled",
type: "boolean",
description:
"Включает или отключает MCP-сервер, входящий в установленный плагин, без изменения манифеста плагина.",
},
{
key: "plugins..mcp_servers..default_tools_approval_mode",
type: "auto | prompt | writes | approve",
description:
"Поведение подтверждения по умолчанию для инструментов MCP-сервера, предоставляемого плагином.",
},
{
key: "plugins..mcp_servers..enabled_tools",
type: "array",
description:
"Список разрешённых инструментов, предоставляемых MCP-сервером плагина.",
},
{
key: "plugins..mcp_servers..disabled_tools",
type: "array",
description:
"Список запрещённых инструментов, применяемый после enabled_tools для MCP-сервера плагина.",
},
{
key: "plugins..mcp_servers..tools..approval_mode",
type: "auto | prompt | writes | approve",
description:
"Переопределение поведения подтверждения для отдельного инструмента MCP, предоставляемого плагином.",
},
{
key: "tui.model_availability_nux.",
type: "integer",
description: "Внутреннее состояние подсказки при запуске, индексируемое идентификатором модели.",
},
{
key: "hide_agent_reasoning",
type: "boolean",
description:
"Скрывает события рассуждений как в TUI, так и в выводе codex exec.",
},
{
key: "show_raw_agent_reasoning",
type: "boolean",
description:
"Показывает исходное содержимое рассуждений, когда активная модель его создаёт.",
},
{
key: "disable_paste_burst",
type: "boolean",
description: "Отключает обнаружение быстрой вставки в TUI.",
},
{
key: "windows_wsl_setup_acknowledged",
type: "boolean",
description: "Отслеживает подтверждение начальной настройки Windows (только Windows).",
},
{
key: "chatgpt_base_url",
type: "string",
description: "Переопределяет базовый URL, используемый при входе в ChatGPT.",
},
{
key: "cli_auth_credentials_store",
type: "file | keyring | auto",
description:
"Определяет место хранения кэшированных учётных данных CLI (файл auth.json или хранилище ключей ОС).",
},
{
key: "mcp_oauth_credentials_store",
type: "auto | file | keyring",
description: "Предпочтительное хранилище учётных данных MCP OAuth.",
},
{
key: "mcp_oauth_callback_port",
type: "integer",
description:
"Необязательный фиксированный порт локального HTTP-сервера обратного вызова, используемого при входе через MCP OAuth. Если значение не задано, Codex привязывается к временному порту, выбранному ОС.",
},
{
key: "mcp_oauth_callback_url",
type: "string",
description:
"Необязательное переопределение базового URL обратного вызова для входа через MCP OAuth (например, URL входящего подключения devbox). Codex добавляет идентификатор обратного вызова конкретного сервера перед отправкой конечного OAuth redirect_uri, поэтому зарегистрируйте у поставщика полный производный URI. mcp_oauth_callback_port по-прежнему управляет портом прослушивателя обратного вызова.",
},
{
key: "experimental_use_unified_exec_tool",
type: "boolean",
description:
"Устаревшее имя параметра включения унифицированного exec; предпочтительно использовать [features].unified_exec или codex --enable unified_exec.",
},
{
key: "tools.web_search",
type: 'boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }',
description:
"Необязательная конфигурация инструмента веб-поиска. Устаревшая логическая форма по-прежнему поддерживается, но объектная форма позволяет задать размер контекста поиска, разрешённые домены и примерное местоположение пользователя.",
},
{
key: "tools.view_image",
type: "boolean",
description: "Включает инструмент view_image для прикрепления локальных изображений.",
},
{
key: "web_search",
type: "disabled | cached | indexed | live",
description:
'Режим веб-поиска (по умолчанию: "cached"; cached использует поддерживаемый OpenAI индекс без внешнего веб-доступа; indexed разрешает внешний доступ только после проверки поисковым индексом; если используется --yolo или другой режим песочницы с полным доступом, по умолчанию применяется "live"). Используйте "live" для неограниченного получения актуальных данных или "disabled", чтобы удалить инструмент.',
},
{
key: "default_permissions",
type: "string",
description:
"Имя профиля разрешений по умолчанию, применяемого к вызовам инструментов в песочнице. Встроенные профили: :read-only, :workspace и :danger-full-access; для пользовательских имён профилей требуются соответствующие таблицы [permissions.<name>]. Не сочетайте с sandbox_mode или [sandbox_workspace_write].",
},
{
key: "permissions..description",
type: "string",
description:
"Понятное человеку описание этого именованного профиля. Профиль не наследует описание родительского профиля через extends.",
},
{
key: "permissions..extends",
type: "string",
description:
"Необязательный родительский профиль, применяемый перед этим именованным профилем. Укажите другой именованный профиль, :read-only или :workspace; :danger-full-access, неопределённые родительские профили и циклы отклоняются.",
},
{
key: "permissions..workspace_roots",
type: "table",
description:
"Корневые каталоги рабочей области, заданные профилем и получающие правила файловой системы :workspace_roots вместе с корневыми каталогами рабочей области текущего сеанса.",
},
{
key: "permissions..workspace_roots.",
type: "boolean",
description:
"Добавляет путь в набор корневых каталогов рабочей области профиля при значении true. Отключённые записи остаются неактивными.",
},
{
key: "permissions..filesystem",
type: "table",
description:
"Именованный профиль разрешений файловой системы. Каждый ключ представляет собой абсолютный путь или специальный токен, например :minimal или :workspace_roots.",
},
{
key: "permissions..filesystem.glob_scan_max_depth",
type: "number",
description:
"Максимальная глубина раскрытия glob-шаблонов запрета чтения на платформах, которые создают снимок совпадений перед запуском песочницы. Если значение задано, оно должно быть не меньше 1.",
},
{
key: "permissions..filesystem.",
type: '"read" | "write" | "deny" | table',
description:
'Предоставляет прямой доступ к пути, glob-шаблону или специальному токену либо задаёт область действия вложенных записей относительно этого корня. Используйте "deny", чтобы запретить чтение совпадающих путей.',
},
{
key: 'permissions..filesystem.":workspace_roots".',
type: '"read" | "write" | "deny"',
description:
'Доступ к файловой системе относительно каждого действующего корневого каталога рабочей области. Используйте "." для самого корня; glob-подпути, такие как "**/*.env", могут запрещать чтение с помощью "deny".',
},
{
key: "permissions..network.enabled",
type: "boolean",
description:
"Включает сетевой доступ для этого именованного профиля разрешений. Это изменяет сетевую политику песочницы, но само по себе не запускает сетевой прокси-сервер.",
},
{
key: "permissions..network.proxy_url",
type: "string",
description:
"URL HTTP-прослушивателя, используемый, когда этот профиль разрешений включает сетевой доступ в песочнице.",
},
{
key: "permissions..network.enable_socks5",
type: "boolean",
description:
"Предоставляет поддержку SOCKS5, когда этот профиль разрешений включает сетевой доступ в песочнице.",
},
{
key: "permissions..network.socks_url",
type: "string",
description: "Конечная точка прокси-сервера SOCKS5, используемая этим профилем разрешений.",
},
{
key: "permissions..network.enable_socks5_udp",
type: "boolean",
description: "Разрешает UDP через прослушиватель SOCKS5, когда он включён.",
},
{
key: "permissions..network.allow_upstream_proxy",
type: "boolean",
description:
"Разрешает сетевому доступу в песочнице создавать цепочку через другой вышестоящий прокси-сервер.",
},
{
key: "permissions..network.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Разрешает адреса привязки вне loopback-интерфейса для прослушивателей сетевого доступа в песочнице. Включение может сделать прослушиватели доступными за пределами localhost.",
},
{
key: "permissions..network.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Разрешает произвольные адресаты Unix-сокетов вместо стандартного ограниченного набора. Используйте только в строго контролируемых средах.",
},
{
key: "permissions..network.mode",
type: "limited | full",
description: "Режим сетевого прокси-сервера, используемый для трафика подпроцессов.",
},
{
key: "permissions..network.domains",
type: "table",
description:
"Правила доменов для сетевого доступа в песочнице. Поддерживаются точные имена хостов, *.example.com только для поддоменов, **.example.com для корневого домена и поддоменов, а также глобальные разрешающие правила *. При конфликте побеждает deny.",
},
{
key: "permissions..network.domains.",
type: "allow | deny",
description:
"Разрешает или запрещает точное имя хоста либо ограниченный шаблон с подстановочными знаками, например *.example.com или **.example.com.",
},
{
key: "permissions..network.unix_sockets",
type: "table",
description:
"Переопределения списка разрешённых Unix-сокетов для сетевого доступа в песочнице. Используйте пути к сокетам как ключи; allow добавляет путь, а deny отклоняет его.",
},
{
key: "permissions..network.unix_sockets.",
type: "allow | deny",
description:
"Добавляет абсолютный путь к Unix-сокету в действующий список разрешённых с помощью allow или отклоняет его с помощью deny. Запрещённые записи не включаются в действующий список разрешённых.",
},
{
key: "permissions..network.allow_local_binding",
type: "boolean",
description:
"Разрешает более широкий доступ к локальной или частной сети через сетевой доступ в песочнице. Правила разрешения для точного литерала локального IP-адреса или localhost по-прежнему могут разрешать отдельные локальные адресаты, когда этот параметр остаётся равным false.",
},
{
key: "projects..trust_level",
type: "string",
description:
'Помечает проект или рабочее дерево как доверенное или недоверенное ("trusted" | "untrusted"). Для недоверенных проектов пропускаются слои .codex/ уровня проекта, включая локальную конфигурацию проекта, хуки и правила.',
},
{
key: "notice.hide_full_access_warning",
type: "boolean",
description: "Отслеживает подтверждение предупреждения о полном доступе.",
},
{
key: "notice.hide_world_writable_warning",
type: "boolean",
description:
"Отслеживает подтверждение предупреждения о каталогах Windows, доступных для записи всем пользователям.",
},
{
key: "notice.hide_rate_limit_model_nudge",
type: "boolean",
description: "Отслеживает отказ от напоминания о переключении модели из-за ограничения частоты.",
},
{
key: "notice.hide_gpt5_1_migration_prompt",
type: "boolean",
description: "Отслеживает подтверждение запроса о переходе на GPT-5.1.",
},
{
key: "notice.hide_gpt-5.1-codex-max_migration_prompt",
type: "boolean",
description:
"Отслеживает подтверждение запроса о переходе на gpt-5.1-codex-max.",
},
{
key: "notice.model_migrations",
type: "map<string,string>",
description: "Отслеживает подтверждённые переходы между моделями в виде сопоставлений old->new.",
},
{
key: "forced_login_method",
type: "chatgpt | api",
description: "Ограничивает Codex указанным способом аутентификации.",
},
{
key: "forced_chatgpt_workspace_id",
type: "string (uuid)",
description: "Ограничивает вход через ChatGPT указанным идентификатором рабочей области.",
},
]}
client:load
/>
Актуальную схему JSON для config.toml можно найти здесь .
Чтобы при редактировании config.toml в VS Code или Cursor были доступны автодополнение и диагностика, установите расширение Even Better TOML и добавьте следующую строку в начало файла config.toml:
#:schema https://developers.openai.com/codex/config-schema.json Примечание. Переименуйте experimental_instructions_file в model_instructions_file. Codex объявляет старый ключ устаревшим; обновите существующие конфигурации, указав новое имя.
requirements.toml
requirements.toml — это принудительно применяемый администратором файл конфигурации, который ограничивает чувствительные к безопасности параметры, недоступные пользователям для переопределения. Подробные сведения, расположения файлов и примеры приведены в разделе Требования, принудительно применяемые администратором .
Для пользователей ChatGPT Business и Enterprise Codex также может применять требования,
полученные из облака. Порядок приоритета описан на странице о безопасности.
Используйте [features] в requirements.toml, чтобы закрепить флаги функций среды выполнения по тем же
каноническим ключам, которые использует config.toml. Требования также могут содержать документированные
ключи только для приложения, которые не относятся к config.toml. Пропущенные ключи остаются
без ограничений.
Некоторые управляемые требования принудительно задают точное значение конфигурации вместо
списка разрешённых значений. Пользователи не могут переопределить принудительно заданный путь, предпочтение обновлений, политику
оболочки входа, настройку обратной связи или настройку приватного рабочего стола Windows.
Управляемые списки разрешённых профилей разрешений требуют Codex 0.138.0 или новее. Codex
0.137.0 и более ранние версии игнорируют allowed_permission_profiles и управляемый
default_permissions.
Используйте allowed_sandbox_modes совместно с sandbox_mode. Для развёртываний
с профилями разрешений используйте allowed_permission_profiles совместно с управляемым
default_permissions.
Таблица [models.new_thread] задаёт управляемые значения по умолчанию, а не принудительные ограничения.
Явно заданные при запуске значения из специальных флагов CLI или переопределения --config имеют
приоритет. Явное переопределение модели или глубины рассуждений отменяет оба управляемых
поля модели; service_tier действует независимо.
<ConfigTable
options={[
{
key: "sqlite_home",
type: "string (path)",
description:
"Принудительно задать каталог, в котором Codex хранит состояние среды выполнения на основе SQLite.",
},
{
key: "log_dir",
type: "string (path)",
description: "Принудительно задать каталог, в который Codex записывает локальные файлы журналов.",
},
{
key: "model_catalog_json",
type: "string (path)",
description: "Принудительно задать каталог моделей JSON, используемый Codex при запуске.",
},
{
key: "check_for_update_on_startup",
type: "boolean",
description: "Принудительно задать, проверяет ли Codex наличие обновлений при запуске.",
},
{
key: "allow_login_shell",
type: "boolean",
description: "Принудительно задать, могут ли инструменты оболочки запускать оболочку входа.",
},
{
key: "feedback",
type: "table",
description: "Управляемые настройки обратной связи.",
},
{
key: "feedback.enabled",
type: "boolean",
description:
"Принудительно задать, могут ли пользователи отправлять обратную связь из клиентов Codex.",
},
{
key: "allowed_approval_policies",
type: "array",
description:
"Разрешённые значения для approval_policy (например, untrusted, on-request, never и granular).",
},
{
key: "allowed_approvals_reviewers",
type: "array",
description:
"Разрешённые значения для approvals_reviewer, например user и auto_review.",
},
{
key: "guardian_policy_config",
type: "string",
description:
"Управляемые инструкции политики Markdown для автоматической проверки. Имеют приоритет над локальным [auto_review].policy. Пустые значения игнорируются.",
},
{
key: "allowed_permission_profiles",
type: "table",
description:
"Полный список разрешённых профилей разрешений. Профили со значением true разрешены. Пропущенные профили и профили со значением false запрещены, включая профили, добавленные в будущих версиях. При объединении источников требований записи сопоставляются по имени профиля.",
},
{
key: "allowed_permission_profiles.",
type: "boolean",
description:
"Разрешить или запретить встроенный либо пользовательский профиль разрешений, определённый в загруженной конфигурации или источнике требований. Более поздний источник требований с более высоким приоритетом может использовать false, чтобы отключить профиль, разрешённый более ранним источником с более низким приоритетом.",
},
{
key: "default_permissions",
type: "string",
description:
"Управляемый профиль разрешений по умолчанию. Профиль должен быть разрешён в allowed_permission_profiles. Задайте его явно для предсказуемого поведения; если он пропущен, Codex по умолчанию использует :workspace, только когда явно разрешены и :workspace, и :read-only.",
},
{
key: "enforce_residency",
type: "string",
description:
"Требовать, чтобы трафик службы Codex использовал поддерживаемый регион хранения данных. В настоящее время принимается us.",
},
{
key: "models",
type: "table",
description:
"Управляемые настройки моделей по умолчанию для новых веток обсуждения. Эти значения имеют приоритет над пользовательскими и проектными настройками по умолчанию, однако явный выбор для новой ветки может их переопределить.",
},
{
key: "models.new_thread",
type: "table",
description:
"Настройки по умолчанию, применяемые при запуске новой локальной ветки. Каждый параметр модели необязателен.",
},
{
key: "models.new_thread.model",
type: "string",
description:
"Модель по умолчанию для новых веток. Явное переопределение --model или модели/рассуждений через --config имеет приоритет.",
},
{
key: "models.new_thread.model_reasoning_effort",
type: "string",
description:
"Глубина рассуждений по умолчанию для новых веток. Явное переопределение модели или глубины рассуждений отменяет оба управляемых поля модели.",
},
{
key: "models.new_thread.service_tier",
type: "string",
description:
"Уровень обслуживания по умолчанию для новых веток. Явное переопределение уровня обслуживания имеет приоритет независимо от полей модели.",
},
{
key: "permissions",
type: "table",
description:
"Определённые администратором профили разрешений с ключами по имени профиля. Используются те же поля профиля, что и в config.toml.",
},
{
key: "permissions.",
type: "table",
description:
"Определённый администратором профиль разрешений. Имя не может начинаться с :, использовать зарезервированное имя filesystem или дублировать профиль из загруженной конфигурации. Используются те же поля профиля, что и в config.toml; полная схема профиля приведена в руководстве по разрешениям.",
},
{
key: "allowed_sandbox_modes",
type: "array",
description: "Разрешённые значения для sandbox_mode.",
},
{
key: "windows",
type: "table",
description: "Требования к нативной песочнице Windows.",
},
{
key: "windows.allowed_sandbox_implementations",
type: "array",
description:
"Разрешённые реализации нативной песочницы Windows для windows.sandbox (elevated и unelevated). Список не должен быть пустым. Если разрешены обе реализации и режим не выбран, Codex предпочитает elevated.",
},
{
key: "windows.sandbox_private_desktop",
type: "boolean",
description:
"Принудительно задать, запускает ли нативная песочница Windows дочерний процесс на приватном рабочем столе.",
},
{
key: "remote_sandbox_config",
type: "array",
description:
"Требования к песочнице для отдельных узлов. Первая запись, чьи hostname_patterns соответствуют определённому имени узла, переопределяет allowed_sandbox_modes верхнего уровня для этого источника требований. Сейчас записи для отдельных узлов переопределяют только режимы песочницы.",
},
{
key: "remote_sandbox_config[].hostname_patterns",
type: "array",
description:
"Шаблоны имён узлов без учёта регистра. Поддерживаются * для любой последовательности символов и ? для одного символа.",
},
{
key: "remote_sandbox_config[].allowed_sandbox_modes",
type: "array",
description:
"Разрешённые режимы песочницы, применяемые при совпадении этой записи для отдельного узла.",
},
{
key: "allowed_web_search_modes",
type: "array",
description:
"Разрешённые значения для web_search (disabled, cached, indexed, live). Значение disabled разрешено всегда; пустой список фактически разрешает только disabled.",
},
{
key: "allow_managed_hooks_only",
type: "boolean",
description:
"При значении true Codex пропускает пользовательские, проектные, сеансовые и плагинные хуки, продолжая разрешать управляемые хуки из requirements.toml и других управляемых слоёв конфигурации.",
},
{
key: "allow_appshots",
type: "boolean",
description:
"Установите false, чтобы отключить Appshots для управляемых пользователей. Если параметр пропущен, требования не ограничивают Appshots и действуют обычные условия доступности продукта.",
},
{
key: "allow_remote_control",
type: "boolean",
description:
"Установите false, чтобы отключить удалённое управление устройством для управляемых пользователей. Если параметр пропущен, требования не ограничивают удалённое управление устройством и действуют обычные условия доступности продукта.",
},
{
key: "features.plugin_sharing",
type: "boolean",
description:
"Установите false в управляемом из облака requirements.toml, чтобы отключить общий доступ в рабочем пространстве для локально созданных плагинов.",
},
{
key: "features",
type: "table",
description:
"Закреплённые значения функций. Для функций среды выполнения используйте канонические имена из config.toml; здесь также поддерживаются документированные ключи требований только для приложения.",
},
{
key: "features.",
type: "boolean",
description:
"Требовать, чтобы документированная функция среды выполнения или приложения оставалась включённой либо отключённой.",
},
{
key: "features.apps",
type: "boolean",
description:
"Закрепить доступность интеграции Apps во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.in_app_updates",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить обновления внутри приложения. Если это требование пропущено, обновления по умолчанию остаются включёнными.",
},
{
key: "features.in_app_browser",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить встроенную панель браузера.",
},
{
key: "features.browser_use",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить Computer Use в браузерах и доступность Browser Agent.",
},
{
key: "features.browser_use_external",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить Computer Use во внешних браузерах.",
},
{
key: "features.browser_use_full_cdp_access",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить полный доступ к Chrome DevTools Protocol в локальной среде выполнения, включая режим Browser Developer, и запретить настольному приложению ChatGPT включать соответствующую настройку. Если параметр пропущен, действуют обычные условия доступности продукта.",
},
{
key: "features.fast_mode",
type: "boolean",
description:
"Закрепить каноническую функцию fast_mode во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.guardian_approval",
type: "boolean",
description:
"Закрепить доступность подтверждения Guardian во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.memories",
type: "boolean",
description: "Закрепить доступность Memories во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.multi_agent",
type: "boolean",
description: "Закрепить доступность многоагентного режима во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.plugins",
type: "boolean",
description: "Закрепить доступность плагинов во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.remote_plugin",
type: "boolean",
description:
"Закрепить доступность удалённого каталога плагинов во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "features.computer_use",
type: "boolean",
description:
"Установите false в requirements.toml, чтобы отключить Computer Use, Record & Replay и связанные процессы установки или включения.",
},
{
key: "features.workspace_dependencies",
type: "boolean",
description:
"Закрепить доступность встроенной поддержки зависимостей рабочего пространства во включённом или отключённом состоянии для управляемых пользователей.",
},
{
key: "computer_use",
type: "table",
description:
"Требования Computer Use, принудительно применяемые из requirements.toml.",
},
{
key: "computer_use.allow_locked_computer_use",
type: "boolean",
description:
"Установите false, чтобы запретить Computer Use работать после блокировки управляемого устройства macOS. Если параметр пропущен, требования не ограничивают использование на заблокированном устройстве.",
},
{
key: "experimental_network",
type: "table",
description:
"Требования к сетевому доступу, принудительно применяемые из requirements.toml. Эти ограничения не зависят от features.network_proxy и позволяют настроить работу сети в песочнице без пользовательского флага функции.",
},
{
key: "experimental_network.enabled",
type: "boolean",
description:
"Включить требования к работе сети в песочнице. Это не предоставляет сетевой доступ, если активная песочница запрещает сетевое взаимодействие команд.",
},
{
key: "experimental_network.http_port",
type: "integer",
description:
"Порт локального HTTP-прослушивателя для требований [experimental_network].",
},
{
key: "experimental_network.socks_port",
type: "integer",
description:
"Порт локального прослушивателя SOCKS5 для требований [experimental_network].",
},
{
key: "experimental_network.allow_upstream_proxy",
type: "boolean",
description:
"Разрешить сети в песочнице подключаться через вышестоящий прокси-сервер из окружения.",
},
{
key: "experimental_network.dangerously_allow_non_loopback_proxy",
type: "boolean",
description:
"Разрешить адреса прослушивания вне loopback-интерфейса для требований [experimental_network]. Включение этого параметра может сделать прослушиватели доступными за пределами localhost.",
},
{
key: "experimental_network.dangerously_allow_all_unix_sockets",
type: "boolean",
description:
"Разрешить произвольные назначения сокетов Unix вместо доступа только по списку разрешённых значений. Используйте только в строго контролируемых окружениях.",
},
{
key: "experimental_network.domains",
type: "map<string, allow | deny>",
description:
"Политика администратора для доменов в формате карты при работе сети в песочнице. Поддерживаются точные имена узлов, *.example.com только для поддоменов, **.example.com для корневого домена и поддоменов, а также глобальные разрешающие правила *; предпочитайте правила с ограниченной областью действия, поскольку * предоставляет широкий исходящий доступ к общедоступной сети. При конфликтах имеет приоритет deny. Не сочетайте этот параметр с experimental_network.allowed_domains или experimental_network.denied_domains.",
},
{
key: "experimental_network.allowed_domains",
type: "array",
description:
"Заданные администратором разрешающие правила в формате списка для работы сети в песочнице. Не сочетайте этот параметр с experimental_network.domains.",
},
{
key: "experimental_network.denied_domains",
type: "array",
description:
"Заданные администратором запрещающие правила в формате списка для работы сети в песочнице. Не сочетайте этот параметр с experimental_network.domains.",
},
{
key: "experimental_network.managed_allowed_domains_only",
type: "boolean",
description:
"При значении true во время действия требований к работе сети в песочнице сохраняют силу только разрешающие правила, управляемые администратором; пользовательские дополнения к списку разрешений игнорируются. При отсутствии управляемых разрешающих правил добавленные пользователем правила разрешения доменов не сохраняют силу.",
},
{
key: "experimental_network.unix_sockets",
type: "map<string, allow | deny>",
description:
"Управляемая администратором политика сокетов Unix для работы сети в песочнице.",
},
{
key: "experimental_network.allow_local_binding",
type: "boolean",
description:
"Разрешить более широкий доступ к локальной или частной сети при работе сети в песочнице. Правила разрешения с точным литералом локального IP-адреса или localhost по-прежнему могут разрешать отдельные локальные назначения, когда значение остаётся false.",
},
{
key: "hooks",
type: "table",
description:
"Управляемые хуки жизненного цикла, принудительно задаваемые администратором. Требуется каталог управляемых хуков; используется та же схема событий, что и для встроенных [hooks] в config.toml.",
},
{
key: "hooks.managed_dir",
type: "string (absolute path)",
description:
"Каталог с управляемыми скриптами хуков в macOS и Linux. Перед загрузкой управляемых хуков Codex проверяет, что путь абсолютный и каталог существует.",
},
{
key: "hooks.windows_managed_dir",
type: "string (absolute path)",
description:
"Каталог с управляемыми скриптами хуков в Windows. Перед загрузкой управляемых хуков Codex проверяет, что путь абсолютный и каталог существует.",
},
{
key: "hooks.",
type: "array",
description:
"Группы сопоставления для события хука, например PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit или Stop.",
},
{
key: "hooks.[].hooks",
type: "array",
description:
"Обработчики хуков для группы сопоставления. В настоящее время поддерживаются командные хуки; обработчики хуков запросов и агентов разбираются, но пропускаются.",
},
{
key: "hooks.[].hooks[].commandWindows",
type: "string",
description:
"Переопределение команды только для Windows для командных хуков. Также принимается псевдоним TOML command_windows.",
},
{
key: "permissions.filesystem.deny_read",
type: "array",
description:
"Принудительно заданные администратором запреты чтения файловой системы. Записи могут быть путями или glob-шаблонами; пользователи не могут ослабить их локальной конфигурацией.",
},
{
key: "mcp_servers",
type: "table",
description:
"Список разрешённых серверов MCP. Для включения сервера MCP должны совпадать и имя сервера (<id>), и его идентификатор. Любой настроенный сервер MCP, отсутствующий в списке разрешённых или имеющий несовпадающий идентификатор, отключается.",
},
{
key: "mcp_servers..identity",
type: "table",
description:
"Правило идентификации отдельного сервера MCP. Задайте либо command (stdio), либо url (потоковый HTTP).",
},
{
key: "mcp_servers..identity.command",
type: "string | table",
description:
"Разрешить сервер MCP stdio по точной строке команды либо использовать таблицу сопоставления, чтобы требовать точного совпадения исполняемого файла и упорядоченных аргументов. Строковая форма не проверяет аргументы, cwd, env или env_vars.",
},
{
key: "mcp_servers..identity.command.executable",
type: "string",
description:
"Исполняемый файл, с которым должен точно совпадать настроенный для сервера stdio command.",
},
{
key: "mcp_servers..identity.command.args",
type: "array",
description:
"Упорядоченные сопоставления аргументов для сервера stdio. Настроенный список аргументов должен иметь ту же длину, и каждая позиция должна совпадать. Сопоставления команд не проверяют cwd, env или env_vars.",
},
{
key: "mcp_servers..identity.command.args[].match",
type: "exact | prefix | regex",
description: "Операция сопоставления для этой позиции аргумента.",
},
{
key: "mcp_servers..identity.command.args[].value",
type: "string",
description: "Значение, используемое сопоставлением аргумента exact или prefix.",
},
{
key: "mcp_servers..identity.command.args[].expression",
type: "string",
description:
"Регулярное выражение, используемое сопоставлением аргумента regex. Выражение должно быть допустимым и соответствовать полному значению аргумента.",
},
{
key: "mcp_servers..identity.url",
type: "string | table",
description:
"Разрешить потоковый HTTP-сервер MCP по точной строке URL либо использовать таблицу сопоставления значений exact, prefix или regex.",
},
{
key: "mcp_servers..identity.url.match",
type: "exact | prefix | regex",
description: "Операция сопоставления для настроенного URL сервера MCP.",
},
{
key: "mcp_servers..identity.url.value",
type: "string",
description: "Значение, используемое сопоставлением URL exact или prefix.",
},
{
key: "mcp_servers..identity.url.expression",
type: "string",
description:
"Регулярное выражение, используемое сопоставлением URL regex. Выражение должно быть допустимым и соответствовать полному значению URL.",
},
{
key: "plugins",
type: "table",
description:
"Списки разрешённых серверов MCP для отдельных плагинов с ключами по идентификатору плагина. Если эта таблица присутствует, встроенные в плагины серверы без соответствующих записей плагина и сервера отключаются.",
},
{
key: "plugins..mcp_servers",
type: "table",
description:
"Список разрешённых серверов MCP, входящих в один плагин. Для требований к серверам плагина используются те же формы точной идентификации и сопоставления, что и для требований mcp_servers верхнего уровня.",
},
{
key: "plugins..mcp_servers..identity",
type: "table",
description:
"Правило идентификации одного сервера MCP, входящего в плагин. Задайте либо command (stdio), либо url (потоковый HTTP).",
},
{
key: "plugins..mcp_servers..identity.command",
type: "string | table",
description:
"Разрешить сервер MCP stdio плагина по точной строке команды либо использовать таблицу сопоставления, чтобы требовать точного совпадения исполняемого файла и упорядоченных аргументов.",
},
{
key: "plugins..mcp_servers..identity.command.executable",
type: "string",
description:
"Исполняемый файл, с которым должна точно совпадать настроенная команда сервера stdio, входящего в плагин.",
},
{
key: "plugins..mcp_servers..identity.command.args",
type: "array",
description:
"Упорядоченные сопоставления аргументов для сервера stdio, входящего в плагин. Настроенный список аргументов должен иметь ту же длину, и каждая позиция должна совпадать.",
},
{
key: "plugins..mcp_servers..identity.command.args[].match",
type: "exact | prefix | regex",
description: "Операция сопоставления для этой позиции аргумента.",
},
{
key: "plugins..mcp_servers..identity.command.args[].value",
type: "string",
description: "Значение, используемое сопоставлением аргумента exact или prefix.",
},
{
key: "plugins..mcp_servers..identity.command.args[].expression",
type: "string",
description:
"Регулярное выражение, используемое сопоставлением аргумента regex. Выражение должно соответствовать полному значению аргумента.",
},
{
key: "plugins..mcp_servers..identity.url",
type: "string | table",
description:
"Разрешить потоковый HTTP-сервер MCP плагина по точной строке URL либо использовать таблицу сопоставления значений exact, prefix или regex.",
},
{
key: "plugins..mcp_servers..identity.url.match",
type: "exact | prefix | regex",
description: "Операция сопоставления для URL сервера MCP, входящего в плагин.",
},
{
key: "plugins..mcp_servers..identity.url.value",
type: "string",
description: "Значение, используемое сопоставлением URL exact или prefix.",
},
{
key: "plugins..mcp_servers..identity.url.expression",
type: "string",
description:
"Регулярное выражение, используемое сопоставлением URL regex. Выражение должно соответствовать полному значению URL.",
},
{
key: "marketplaces",
type: "table",
description:
"Требования администратора к источникам каталога плагинов. Правила вступают в силу, когда restrict_to_allowed_sources имеет значение true.",
},
{
key: "marketplaces.restrict_to_allowed_sources",
type: "boolean",
description:
"При значении true требовать, чтобы настроенные пользователем источники каталога совпадали с allowed_sources при добавлении каталога, установке плагина и обновлении настроенного каталога Git. Управляемые Codex каталоги OpenAI остаются разрешёнными при совпадении их зарезервированных источника и имени. Это не фильтрует уже настроенные пользовательские каталоги во время выполнения.",
},
{
key: "marketplaces.allowed_sources",
type: "table",
description:
"Разрешённые источники каталога с ключами по выбранному администратором имени правила. Различные имена накапливаются между слоями требований; для полей с одним именем действует обычный приоритет слоёв.",
},
{
key: "marketplaces.allowed_sources.",
type: "table",
description:
"Одно правило разрешённого источника. Итоговое значение source после объединения требований определяет, какие соседние поля интерпретирует Codex.",
},
{
key: "marketplaces.allowed_sources..source",
type: "git | host_pattern | local",
description:
"Тип сопоставления источника каталога. Используйте git для одного репозитория, host_pattern для узлов Git, сопоставляемых по регулярному выражению, или local для одного каталога.",
},
{
key: "marketplaces.allowed_sources..url",
type: "string",
description:
'URL репозитория Git, обязательный при source = "git". Codex нормализует настроенный и разрешённый URL, прежде чем потребовать точного совпадения репозитория.',
},
{
key: "marketplaces.allowed_sources..ref",
type: "string",
description:
"Необязательная точная ссылка Git для правила git. Если она пропущена, правило разрешает любую ссылку для соответствующего репозитория.",
},
{
key: "marketplaces.allowed_sources..host_pattern",
type: "string",
description:
'Регулярное выражение, обязательное при source = "host_pattern". Codex сопоставляет его с именем узла в нижнем регистре, извлечённым из источника Git в формате HTTPS, SSH или SCP. Используйте ^ и $, чтобы потребовать совпадения всего имени узла.',
},
{
key: "marketplaces.allowed_sources..path",
type: "string (absolute path)",
description:
'Локальный каталог торговой площадки, обязательный при source = "local". Codex требует абсолютный путь и сравнивает пути после нормализации.',
},
{
key: "apps",
type: "table",
description:
"Управляемые требования к приложениям с ключами по идентификатору приложения. Требования могут отключить приложение или ограничить порядок подтверждения для отдельных инструментов.",
},
{
key: "apps..enabled",
type: "boolean",
description:
"Установите false, чтобы отключить приложение. Запрещающее требование сохраняет силу при объединении нескольких источников требований.",
},
{
key: "apps..tools..approval_mode",
type: "auto | prompt | writes | approve",
description: "Задать управляемый режим подтверждения для одного инструмента приложения.",
},
{
key: "rules",
type: "table",
description:
"Принудительно заданные администратором правила команд, объединяемые с файлами .rules. Правила требований должны быть ограничительными.",
},
{
key: "rules.prefix_rules",
type: "array",
description:
"Список принудительно применяемых правил префиксов. Каждое правило должно содержать pattern и decision.",
},
{
key: "rules.prefix_rules[].pattern",
type: "array",
description:
"Префикс команды, представленный токенами шаблона. Каждый токен задаёт либо token, либо any_of.",
},
{
key: "rules.prefix_rules[].pattern[].token",
type: "string",
description: "Один буквальный токен в этой позиции.",
},
{
key: "rules.prefix_rules[].pattern[].any_of",
type: "array",
description: "Список разрешённых альтернативных токенов в этой позиции.",
},
{
key: "rules.prefix_rules[].decision",
type: "prompt | forbidden",
description:
"Обязательно. Правила требований могут только запрашивать подтверждение или запрещать, но не разрешать.",
},
{
key: "rules.prefix_rules[].justification",
type: "string",
description:
"Необязательное непустое обоснование, отображаемое в запросах подтверждения или сообщениях об отклонении.",
},
]}
client:load
/>
Назад Расширенная конфигурация Далее Переменные среды