Français

Référence de configuration

Référence complète pour les fichiers config.toml et requirements.toml de Codex

Utilisez cette page comme référence consultable pour les fichiers de configuration de Codex. Pour des conseils conceptuels et des exemples, commencez par Principes de base de la configuration et Configuration avancée.

config.toml

La configuration au niveau utilisateur se trouve dans ~/.codex/config.toml. Vous pouvez également ajouter des remplacements propres au projet dans des fichiers .codex/config.toml. Codex charge les fichiers de configuration propres au projet uniquement lorsque vous faites confiance au projet.

La configuration propre au projet ne peut pas remplacer les clés du fournisseur local à la machine, d’authentification, de métadonnées de requête d’application détenues par l’hôte, de notification, de sélection du profil de configuration ou de routage de la télémétrie. Codex ignore openai_base_url, chatgpt_base_url, apps_mcp_product_sku, model_provider, model_providers, notify, profile, profiles, experimental_realtime_ws_base_url et otel lorsqu’ils figurent dans un fichier .codex/config.toml local au projet ; placez plutôt les clés de fournisseur, de notification et de télémétrie dans la configuration au niveau utilisateur. Les fichiers de profil de configuration se trouvent à côté de config.toml sous la forme $CODEX_HOME/profile-name.config.toml ; sélectionnez-en un avec --profile profile-name.

Pour les clés de bac à sable et d’approbation (approval_policy, sandbox_mode et sandbox_workspace_write.*), consultez cette référence conjointement avec Bac à sable et approbations, Chemins protégés dans les racines accessibles en écriture et Accès réseau. Pour les profils d’autorisation en version bêta, consultez Autorisations.

<ConfigTable options={[ { key: "model", type: "string", description: "Modèle à utiliser (par exemple, gpt-5.5).", }, { key: "review_model", type: "string", description: "Remplacement facultatif du modèle utilisé par /review (par défaut, le modèle de la session actuelle).", }, { key: "model_provider", type: "string", description: "ID de fournisseur provenant de model_providers (par défaut : openai).", }, { key: "openai_base_url", type: "string", description: "Remplacement de l’URL de base pour le fournisseur de modèles openai intégré.", }, { key: "model_context_window", type: "number", description: "Nombre de jetons de la fenêtre de contexte disponibles pour le modèle actif.", }, { key: "model_auto_compact_token_limit", type: "number", description: "Seuil de jetons qui déclenche la compaction automatique de l’historique (s’il n’est pas défini, les valeurs par défaut du modèle sont utilisées).", }, { key: "model_auto_compact_token_limit_scope", type: "total | body_after_prefix", description: "Détermine si le seuil de compaction automatique prend en compte l’intégralité du contexte actif (total, valeur par défaut) ou uniquement sa croissance après le préfixe conservé de la fenêtre de compaction (body_after_prefix).", }, { key: "model_catalog_json", type: "string (path)", description: "Chemin facultatif vers un catalogue de modèles JSON chargé au démarrage. Un fichier de profil $CODEX_HOME/profile-name.config.toml sélectionné peut remplacer cette valeur pour le profil concerné.", }, { key: "oss_provider", type: "lmstudio | ollama", description: "Fournisseur local utilisé par défaut lors de l’exécution avec --oss (si cette option n’est pas définie, une invite s’affiche par défaut).", }, { key: "approval_policy", type: "untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }", description: "Détermine quand Codex suspend l’exécution pour demander une approbation avant d’exécuter des commandes. Vous pouvez également utiliser approval_policy = { granular = { ... } } pour autoriser ou rejeter automatiquement certaines catégories d’invites tout en conservant les autres invites interactives. on-failure est obsolète ; utilisez on-request pour les exécutions interactives ou never pour les exécutions non interactives.", }, { key: "approval_policy.granular.sandbox_approval", type: "boolean", description: "Lorsque cette option vaut true, les invites d’approbation d’élévation des droits du bac à sable peuvent s’afficher.", }, { key: "approval_policy.granular.rules", type: "boolean", description: "Lorsque cette option vaut true, les approbations déclenchées par les règles execpolicy prompt peuvent s’afficher.", }, { key: "approval_policy.granular.mcp_elicitations", type: "boolean", description: "Lorsque cette option vaut true, les invites de sollicitation MCP peuvent s’afficher au lieu d’être automatiquement rejetées.", }, { key: "approval_policy.granular.request_permissions", type: "boolean", description: "Lorsque cette option vaut true, les invites de l’outil request_permissions peuvent s’afficher.", }, { key: "approval_policy.granular.skill_approval", type: "boolean", description: "Lorsque cette option vaut true, les invites d’approbation des scripts de compétences peuvent s’afficher.", }, { key: "approvals_reviewer", type: "user | auto_review", description: "Indique qui examine les invites d’approbation admissibles dans le cadre de on-request ou des politiques d’approbation granulaires. La valeur par défaut est user ; auto_review utilise le sous-agent de révision. Ce paramètre ne modifie ni le fonctionnement du bac à sable ni les actions de révision déjà autorisées dans celui-ci.", }, { key: "auto_review.policy", type: "string", description: "Instructions de politique Markdown locales pour la révision automatique. La valeur guardian_policy_config gérée est prioritaire. Les valeurs vides sont ignorées.", }, { key: "allow_login_shell", type: "boolean", description: "Autorise les outils basés sur l’interpréteur de commandes à utiliser la sémantique d’un shell de connexion. La valeur par défaut est true ; lorsque cette option vaut false, les requêtes login = true sont rejetées et, en l’absence de login, les shells sans connexion sont utilisés par défaut.", }, { key: "sandbox_mode", type: "read-only | workspace-write | danger-full-access", description: "Politique du bac à sable concernant l’accès au système de fichiers et au réseau pendant l’exécution des commandes.", }, { key: "sandbox_workspace_write.writable_roots", type: "array", description: 'Racines accessibles en écriture supplémentaires lorsque sandbox_mode = "workspace-write".', }, { key: "sandbox_workspace_write.network_access", type: "boolean", description: "Autorise l’accès réseau sortant dans le bac à sable workspace-write.", }, { key: "sandbox_workspace_write.exclude_tmpdir_env_var", type: "boolean", description: "Exclut $TMPDIR des racines accessibles en écriture en mode workspace-write.", }, { key: "sandbox_workspace_write.exclude_slash_tmp", type: "boolean", description: "Exclut /tmp des racines accessibles en écriture en mode workspace-write.", }, { key: "windows.sandbox", type: "unelevated | elevated", description: "Mode de bac à sable natif propre à Windows lors de l’exécution native de Codex sous Windows.", }, { key: "windows.sandbox_private_desktop", type: "boolean", description: "Exécute par défaut le processus enfant final placé dans le bac à sable sur un bureau privé sous Windows natif. Définissez false uniquement pour assurer la compatibilité avec l’ancien comportement Winsta0\\\\Default.", }, { key: "computer_use.windows.always_allowed_app_ids", type: "array", description: "Identifiants d’applications Windows que Computer Use peut ouvrir sans demander d’autorisation. Les applications absentes de la liste nécessitent une approbation ; supprimez les entrées enregistrées dans les paramètres Computer Use de l’application de bureau ChatGPT.", }, { key: "notify", type: "array", description: "Commande appelée pour les notifications ; elle reçoit une charge utile JSON de Codex.", }, { key: "check_for_update_on_startup", type: "boolean", description: "Recherche les mises à jour de Codex au démarrage (définissez cette option sur false uniquement si les mises à jour sont gérées de manière centralisée).", }, { key: "feedback.enabled", type: "boolean", description: "Active l’envoi de commentaires via /feedback dans tous les clients locaux (par défaut : true).", }, { key: "analytics.enabled", type: "boolean", description: "Active ou désactive l’analyse pour cette machine ou ce profil. Si cette option n’est pas définie, la valeur par défaut du client s’applique.", }, { key: "instructions", type: "string", description: "Réservé à un usage futur ; privilégiez model_instructions_file ou AGENTS.md.", }, { key: "developer_instructions", type: "string", description: "Instructions supplémentaires du développeur injectées dans la session (facultatif).", }, { key: "log_dir", type: "string (path)", description: "Répertoire dans lequel Codex écrit les fichiers journaux ; la valeur par défaut est $CODEX_HOME/log. Définir explicitement ce paramètre active également, dans ce répertoire, le journal TUI facultatif en texte brut codex-tui.log.", }, { key: "sqlite_home", type: "string (path)", description: "Répertoire dans lequel Codex stocke la base de données d’état reposant sur SQLite, utilisée par les tâches d’agents et d’autres états d’exécution pouvant être repris.", }, { key: "compact_prompt", type: "string", description: "Remplacement en ligne de l’invite de compaction de l’historique.", }, { key: "model_instructions_file", type: "string (path)", description: "Remplace les instructions intégrées au lieu de AGENTS.md.", }, { key: "personality", type: "none | friendly | pragmatic", description: "Style de communication par défaut pour les modèles qui annoncent supportsPersonality ; il peut être remplacé pour chaque fil ou tour, ou via /personality.", }, { key: "service_tier", type: "string", description: "Niveau de service privilégié pour les nouveaux tours. Utilisez fast ou un autre niveau annoncé par le modèle actif ; fast correspond à la valeur de requête priority.", }, { key: "experimental_compact_prompt_file", type: "string (path)", description: "Charge depuis un fichier le remplacement de l’invite de compaction (expérimental).", }, { key: "skills.config", type: "array", description: "Remplacements de l’état d’activation de chaque compétence stockés dans config.toml.", }, { key: "skills.config..path", type: "string (path)", description: "Chemin vers un dossier de compétence contenant SKILL.md.", }, { key: "skills.config..enabled", type: "boolean", description: "Active ou désactive la compétence référencée.", }, { key: "apps..enabled", type: "boolean", description: "Active ou désactive une application ou un connecteur spécifique par son ID (par défaut : true).", }, { key: "apps._default.enabled", type: "boolean", description: "État d’activation par défaut de toutes les applications, sauf remplacement propre à une application.", }, { key: "apps._default.destructive_enabled", type: "boolean", description: "Autorisation ou refus par défaut pour les outils d’application dotés de destructive_hint = true.", }, { key: "apps._default.open_world_enabled", type: "boolean", description: "Autorisation ou refus par défaut pour les outils d’application dotés de open_world_hint = true.", }, { key: "apps._default.approvals_reviewer", type: "user | auto_review", description: "Réviseur par défaut des invites d’approbation des outils d’application, sauf remplacement propre à une application. Si cette option est omise, les applications héritent de la valeur approvals_reviewer de niveau supérieur.", }, { key: "apps._default.default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Comportement d’approbation par défaut des outils d’application sans remplacement propre à l’application ou à l’outil.", }, { key: "apps..destructive_enabled", type: "boolean", description: "Autorise ou bloque les outils de cette application qui annoncent destructive_hint = true.", }, { key: "apps..open_world_enabled", type: "boolean", description: "Autorise ou bloque les outils de cette application qui annoncent open_world_hint = true.", }, { key: "apps..default_tools_enabled", type: "boolean", description: "État d’activation par défaut des outils de cette application, sauf remplacement propre à un outil.", }, { key: "apps..approvals_reviewer", type: "user | auto_review", description: "Réviseur des invites d’approbation des outils de cette application. Remplace apps._default.approvals_reviewer.", }, { key: "apps..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Comportement d’approbation par défaut des outils de cette application, sauf remplacement propre à un outil.", }, { key: "apps..tools..enabled", type: "boolean", description: "Remplacement de l’état d’activation propre à un outil d’application (par exemple repos/list).", }, { key: "apps..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Remplacement du comportement d’approbation propre à un outil d’application.", }, { key: "tool_suggest.discoverables", type: "array", description: 'Autorise les suggestions d’outils pour d’autres connecteurs ou plugins détectables. Chaque entrée utilise type = "connector" ou "plugin" et un id.', }, { key: "tool_suggest.disabled_tools", type: "array
", description: 'Désactive les suggestions pour certains connecteurs ou plugins détectables. Chaque entrée utilise type = "connector" ou "plugin" et un id.', }, { key: "features.apps", type: "boolean", description: "Active les intégrations d’applications (connecteurs) (stable ; activé par défaut).", }, { key: "features.hooks", type: "boolean", description: "Active les hooks de cycle de vie chargés depuis hooks.json ou depuis la configuration [hooks] en ligne. features.codex_hooks est un alias obsolète.", }, { key: "features.code_mode.enabled", type: "boolean", description: "Active la configuration de la fonctionnalité de mode code. Cette fonctionnalité est en cours de développement et désactivée par défaut.", }, { key: "features.code_mode.excluded_tool_namespaces", type: "array", description: "Espaces de noms d’outils que le mode code exclut des instructions imbriquées relatives aux outils du mode code et de l’exposition à l’exécuteur.", }, { key: "features.code_mode.direct_only_tool_namespaces", type: "array", description: "Espaces de noms d’outils que le mode code ne peut utiliser que par des appels directs aux outils.", }, { key: "features.rollout_budget.enabled", type: "boolean", description: "Active le suivi du budget de déploiement. Cette fonctionnalité est en cours de développement et désactivée par défaut. Lorsqu’elle est activée, features.rollout_budget.limit_tokens est requis.", }, { key: "features.rollout_budget.limit_tokens", type: "integer", description: "Limite positive de jetons pour le suivi du budget de déploiement. Requise lorsque le budget de déploiement est activé.", }, { key: "features.rollout_budget.reminder_interval_tokens", type: "integer", description: "Intervalle positif, en jetons, entre les rappels relatifs au budget de déploiement. La valeur par défaut correspond à 10 % de limit_tokens, avec un minimum de 1 jeton.", }, { key: "features.rollout_budget.sampling_token_weight", type: "number", description: "Multiplicateur fini non négatif appliqué aux jetons échantillonnés dans le calcul du budget de déploiement. La valeur par défaut est 1.0.", }, { key: "features.rollout_budget.prefill_token_weight", type: "number", description: "Multiplicateur fini non négatif appliqué aux jetons de préremplissage dans le calcul du budget de déploiement. La valeur par défaut est 1.0.", }, { key: "hooks", type: "table", description: "Hooks de cycle de vie configurés en ligne dans config.toml. Utilise le même schéma d’événements que hooks.json ; consultez le guide des hooks pour obtenir des exemples et connaître les événements pris en charge.", }, { key: "hooks.", type: "array
", description: "Groupes de critères de correspondance pour les événements de hook tels que PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit ou Stop.", }, { key: "hooks.[].hooks", type: "array
", description: "Gestionnaires de hook d’un groupe de critères de correspondance. Les hooks de commande sont actuellement pris en charge ; les gestionnaires de hook d’invite et d’agent sont analysés, mais ignorés.", }, { key: "hooks.[].hooks[].commandWindows", type: "string", description: "Remplacement de commande propre à Windows pour les hooks de commande. L’alias TOML command_windows est également accepté.", }, { key: "features.memories", type: "boolean", description: "Active les mémoires (désactivées par défaut).", }, { key: "mcp_servers..command", type: "string", description: "Commande de lancement d’un serveur MCP stdio.", }, { key: "mcp_servers..args", type: "array", description: "Arguments transmis à la commande du serveur MCP stdio.", }, { key: "mcp_servers..env", type: "map<string,string>", description: "Variables d’environnement transmises au serveur MCP stdio.", }, { key: "mcp_servers..env_vars", type: 'array<string | { name = string, source = "local" | "remote" }>', description: 'Variables d’environnement supplémentaires à ajouter à la liste d’autorisation d’un serveur MCP stdio. Les entrées de type chaîne utilisent source = "local" par défaut ; utilisez source = "remote" uniquement avec un stdio distant reposant sur un exécuteur.', }, { key: "mcp_servers..cwd", type: "string", description: "Répertoire de travail du processus du serveur MCP stdio.", }, { key: "mcp_servers..url", type: "string", description: "Point de terminaison d’un serveur MCP HTTP avec diffusion en continu.", }, { key: "mcp_servers..auth", type: "oauth | chatgpt", description: "Méthode d’authentification de secours d’un serveur MCP HTTP après les jetons porteurs et les en-têtes d’autorisation configurés. oauth (valeur par défaut) utilise les identifiants MCP OAuth enregistrés lorsqu’ils sont disponibles. chatgpt utilise la session ChatGPT actuelle pour l’origine ChatGPT propriétaire approuvée, puis se rabat sur les identifiants OAuth enregistrés. Les deux modes peuvent se connecter sans authentification si aucune source d’identifiants n’aboutit.", }, { key: "mcp_servers..bearer_token_env_var", type: "string", description: "Variable d’environnement fournissant le jeton porteur d’un serveur MCP HTTP.", }, { key: "mcp_servers..http_headers", type: "map<string,string>", description: "En-têtes HTTP statiques inclus dans chaque requête HTTP MCP.", }, { key: "mcp_servers..env_http_headers", type: "map<string,string>", description: "En-têtes HTTP renseignés à partir de variables d’environnement pour un serveur MCP HTTP.", }, { key: "mcp_servers..enabled", type: "boolean", description: "Désactive un serveur MCP sans supprimer sa configuration.", }, { key: "mcp_servers..required", type: "boolean", description: "Lorsque cette option vaut true, le démarrage ou la reprise échoue si ce serveur MCP activé ne peut pas s’initialiser.", }, { key: "mcp_servers..startup_timeout_sec", type: "number", description: "Remplace le délai d’expiration par défaut de 10 s pour le démarrage d’un serveur MCP.", }, { key: "mcp_servers..startup_timeout_ms", type: "number", description: "Alias de startup_timeout_sec exprimé en millisecondes.", }, { key: "mcp_servers..tool_timeout_sec", type: "number", description: "Remplace le délai d’expiration par défaut de 60 s par outil pour un serveur MCP.", }, { key: "mcp_servers..enabled_tools", type: "array", description: "Liste d’autorisation des noms d’outils exposés par le serveur MCP.", }, { key: "mcp_servers..disabled_tools", type: "array", description: "Liste de refus appliquée après enabled_tools pour le serveur MCP.", }, { key: "mcp_servers..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Comportement d’approbation par défaut des outils MCP de ce serveur, sauf remplacement propre à un outil.", }, { key: "mcp_servers..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Remplacement du comportement d’approbation propre à un outil MCP de ce serveur.", }, { key: "mcp_servers..scopes", type: "array", description: "Portées OAuth à demander lors de l’authentification auprès de ce serveur MCP.", }, { key: "mcp_servers..oauth_resource", type: "string", description: "Paramètre de ressource OAuth RFC 8707 facultatif à inclure lors de la connexion MCP.", }, { key: "mcp_servers..experimental_environment", type: "local | remote", description: "Emplacement expérimental d’un serveur MCP. remote démarre les serveurs stdio au moyen d’un environnement d’exécution distant ; l’emplacement distant des serveurs HTTP avec diffusion en continu n’est pas implémenté.", }, { key: "agents", type: "table", description: "Paramètres multi-agents et déclarations de rôles personnalisés. Les noms de paramètres scalaires sont réservés et ne peuvent pas servir de noms de rôles personnalisés.", }, { key: "agents.enabled", type: "boolean", description: "Active ou désactive les outils multi-agents (par défaut : true).", }, { key: "agents.max_concurrent_threads_per_session", type: "number", description: "Nombre maximal de fils d’agents générés pouvant être ouverts simultanément, hors fil principal. Si cette option n’est pas définie, Codex choisit la valeur par défaut.", }, { key: "agents.max_threads", type: "number", description: "Alias historique de agents.max_concurrent_threads_per_session.", }, { key: "agents.default_subagent_model", type: "string", description: "Modèle par défaut des agents générés. Un modèle explicitement indiqué lors de la génération est prioritaire.", }, { key: "agents.default_subagent_reasoning_effort", type: "string", description: "Effort de raisonnement par défaut des agents générés. Un effort explicitement indiqué lors de la génération est prioritaire.", }, { key: "agents.interrupt_message", type: "boolean", description: "Enregistre un message visible par le modèle lorsqu’un tour d’agent est interrompu (par défaut : true).", }, { key: "agents..description", type: "string", description: "Instructions relatives au rôle présentées à Codex lorsqu’il choisit et génère ce type d’agent.", }, { key: "agents..config_file", type: "string (path)", description: "Chemin vers une couche de configuration TOML pour ce rôle ; les chemins relatifs sont résolus à partir du fichier de configuration qui déclare le rôle.", }, { key: "memories.generate_memories", type: "boolean", description: "Lorsque cette option vaut false, les fils nouvellement créés ne sont pas stockés comme entrées de génération de mémoires. La valeur par défaut est true.", }, { key: "memories.use_memories", type: "boolean", description: "Lorsque cette option vaut false, Codex n’injecte pas les mémoires existantes dans les sessions futures. La valeur par défaut est true.", }, { key: "memories.disable_on_external_context", type: "boolean", description: "Lorsque cette option vaut true, les fils qui utilisent un contexte externe, comme des appels d’outils MCP, une recherche Web ou une recherche d’outils, sont exclus de la génération de mémoires. La valeur par défaut est false. Alias historique : memories.no_memories_if_mcp_or_web_search.", }, { key: "memories.max_raw_memories_for_consolidation", type: "number", description: "Nombre maximal de mémoires brutes récentes conservées pour la consolidation globale. La valeur par défaut est 256 et le plafond est fixé à 4096.", }, { key: "memories.max_unused_days", type: "number", description: "Nombre maximal de jours depuis la dernière utilisation d’une mémoire avant qu’elle ne devienne inadmissible à la consolidation. La valeur par défaut est 30 et elle est limitée à l’intervalle 0-365.", }, { key: "memories.max_rollout_age_days", type: "number", description: "Âge maximal des fils pris en compte pour la génération de mémoires. La valeur par défaut est 30 et elle est limitée à l’intervalle 0-90.", }, { key: "memories.max_rollouts_per_startup", type: "number", description: "Nombre maximal de candidats au déploiement traités à chaque passage au démarrage. La valeur par défaut est 16 et le plafond est fixé à 128.", }, { key: "memories.min_rollout_idle_hours", type: "number", description: "Durée d’inactivité minimale avant qu’un fil soit pris en compte pour la génération de mémoires. La valeur par défaut est 6 et elle est limitée à l’intervalle 1-48.", }, { key: "memories.min_rate_limit_remaining_percent", type: "number", description: "Pourcentage restant minimal requis dans les fenêtres de limitation de débit de Codex avant le démarrage de la génération de mémoires. La valeur par défaut est 25 et elle est limitée à l’intervalle 0-100.", }, { key: "memories.extract_model", type: "string", description: "Remplacement facultatif du modèle pour l’extraction de mémoires par fil.", }, { key: "memories.consolidation_model", type: "string", description: "Remplacement facultatif du modèle pour la consolidation globale des mémoires.", }, { key: "features.unified_exec", type: "boolean", description: "Utilise l’outil d’exécution unifié reposant sur un PTY (stable ; activé par défaut, sauf sous Windows).", }, { key: "features.shell_snapshot", type: "boolean", description: "Crée un instantané de l’environnement du shell pour accélérer les commandes répétées (stable ; activé par défaut).", }, { key: "features.multi_agent", type: "boolean", description: "Active les outils de collaboration multi-agents (spawn_agent, send_input, resume_agent, wait_agent et close_agent) (stable ; activé par défaut).", }, { key: "features.goals", type: "boolean", description: "Active les objectifs persistants et la poursuite automatique (stable ; activé par défaut).", }, { key: "features.remote_plugin", type: "boolean", description: "Active le catalogue de plugins distants (stable ; activé par défaut).", }, { key: "features.personality", type: "boolean", description: "Active les contrôles de sélection de la personnalité (stable ; activé par défaut).", }, { key: "features.network_proxy", type: "boolean | table", description: "Active la mise en réseau dans le bac à sable. Utilisez la forme table pour définir les options de politique réseau telles que domains (expérimental ; désactivé par défaut).", }, { key: "features.network_proxy.enabled", type: "boolean", description: "Active la mise en réseau dans le bac à sable. La valeur par défaut est false.", }, { key: "features.network_proxy.domains", type: "map<string, allow | deny>", description: "Politique de domaines pour la mise en réseau dans le bac à sable. Elle n’est pas définie par défaut, ce qui signifie qu’aucune destination externe n’est autorisée tant que vous n’ajoutez pas de règles allow. Elle prend en charge les hôtes exacts, *.example.com pour les sous-domaines uniquement, **.example.com pour le domaine racine et ses sous-domaines, ainsi que les règles d’autorisation globales * ; privilégiez les règles ciblées, car * ouvre largement l’accès public sortant. Ajoutez des règles deny pour les destinations bloquées ; deny est prioritaire en cas de conflit.", }, { key: "features.network_proxy.unix_sockets", type: "map<string, allow | deny>", description: "Politique des sockets Unix pour la mise en réseau dans le bac à sable. Elle n’est pas définie par défaut ; ajoutez des entrées allow pour les sockets autorisés.", }, { key: "features.network_proxy.allow_local_binding", type: "boolean", description: "Autorise un accès plus large au réseau local ou privé. La valeur par défaut est false ; des règles d’autorisation portant sur un littéral d’adresse IP locale exact ou sur localhost peuvent tout de même autoriser des cibles locales spécifiques.", }, { key: "features.network_proxy.enable_socks5", type: "boolean", description: "Expose la prise en charge de SOCKS5. La valeur par défaut est true.", }, { key: "features.network_proxy.enable_socks5_udp", type: "boolean", description: "Autorise UDP via SOCKS5. La valeur par défaut est true.", }, { key: "features.network_proxy.allow_upstream_proxy", type: "boolean", description: "Autorise le chaînage via un proxy en amont provenant de l’environnement. La valeur par défaut est true.", }, { key: "features.network_proxy.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Autorise les adresses d’écoute qui ne sont pas en boucle locale. La valeur par défaut est false ; l’activation de cette option peut exposer les points d’écoute du proxy au-delà de localhost.", }, { key: "features.network_proxy.dangerously_allow_all_unix_sockets", type: "boolean", description: "Autorise des destinations de sockets Unix arbitraires au lieu d’un accès limité à une liste d’autorisation. La valeur par défaut est false ; utilisez cette option uniquement dans des environnements étroitement contrôlés.", }, { key: "features.network_proxy.proxy_url", type: "string", description: 'URL du point d’écoute HTTP pour la mise en réseau dans le bac à sable. La valeur par défaut est "http://127.0.0.1:3128".', }, { key: "features.network_proxy.socks_url", type: "string", description: 'URL du point d’écoute SOCKS5. La valeur par défaut est "http://127.0.0.1:8081".', }, { key: "features.web_search", type: "boolean", description: "Ancien commutateur obsolète ; privilégiez le paramètre web_search de niveau supérieur.", }, { key: "features.web_search_cached", type: "boolean", description: 'Ancien commutateur obsolète. Lorsque web_search n’est pas défini, true correspond à web_search = "cached".', }, { key: "features.web_search_request", type: "boolean", description: 'Ancien commutateur obsolète. Lorsque web_search n’est pas défini, true correspond à web_search = "live".', }, { key: "features.shell_tool", type: "boolean", description: "Active l’outil shell par défaut pour exécuter des commandes (stable ; activé par défaut).", }, { key: "features.enable_request_compression", type: "boolean", description: "Compresse avec zstd les corps de requêtes diffusées en continu lorsque cette opération est prise en charge (stable ; activé par défaut).", }, { key: "features.skill_mcp_dependency_install", type: "boolean", description: "Autorise les invites et l’installation des dépendances MCP manquantes pour les compétences (stable ; activé par défaut).", }, { key: "features.fast_mode", type: "boolean", description: "Active dans la TUI la sélection du niveau de service du catalogue de modèles, y compris les commandes du niveau Fast lorsque le modèle actif les annonce (stable ; activé par défaut).", }, { key: "features.prevent_idle_sleep", type: "boolean", description: "Empêche la mise en veille de la machine pendant l’exécution active d’un tour (expérimental ; désactivé par défaut).", }, { key: "suppress_unstable_features_warning", type: "boolean", description: "Masque l’avertissement qui s’affiche lorsque des indicateurs de fonctionnalités en cours de développement sont activés.", }, { key: "model_providers.", type: "table", description: "Définition d’un fournisseur personnalisé. Les ID de fournisseurs intégrés (openai, ollama et lmstudio) sont réservés et ne peuvent pas être remplacés.", }, { key: "model_providers..name", type: "string", description: "Nom d’affichage d’un fournisseur de modèles personnalisé.", }, { key: "model_providers..base_url", type: "string", description: "URL de base de l’API du fournisseur de modèles.", }, { key: "model_providers..env_key", type: "string", description: "Variable d’environnement fournissant l’API key du fournisseur.", }, { key: "model_providers..env_key_instructions", type: "string", description: "Instructions de configuration facultatives pour l’API key du fournisseur.", }, { key: "model_providers..experimental_bearer_token", type: "string", description: "Jeton porteur direct pour le fournisseur (déconseillé ; utilisez env_key).", }, { key: "model_providers..requires_openai_auth", type: "boolean", description: "Le fournisseur utilise l’authentification OpenAI (false par défaut).", }, { key: "model_providers..wire_api", type: "responses", description: "Protocole utilisé par le fournisseur. responses est la seule valeur prise en charge et constitue la valeur par défaut si l’option est omise.", }, { key: "model_providers..query_params", type: "map<string,string>", description: "Paramètres de requête supplémentaires ajoutés aux requêtes du fournisseur.", }, { key: "model_providers..http_headers", type: "map<string,string>", description: "En-têtes HTTP statiques ajoutés aux requêtes du fournisseur.", }, { key: "model_providers..env_http_headers", type: "map<string,string>", description: "En-têtes HTTP renseignés à partir des variables d’environnement lorsqu’elles sont présentes.", }, { key: "model_providers..request_max_retries", type: "number", description: "Nombre de nouvelles tentatives pour les requêtes HTTP adressées au fournisseur (par défaut : 4).", }, { key: "model_providers..stream_max_retries", type: "number", description: "Nombre de nouvelles tentatives après une interruption de diffusion SSE (par défaut : 5).", }, { key: "model_providers..stream_idle_timeout_ms", type: "number", description: "Délai d’expiration pour inactivité des flux SSE, en millisecondes (par défaut : 300000).", }, { key: "model_providers..supports_websockets", type: "boolean", description: "Indique si ce fournisseur prend en charge le transport WebSocket de la Responses API.", }, { key: "model_providers..supports_standalone_web_search", type: "boolean", description: "Annonce la prise en charge d’un point de terminaison compatible de recherche Web autonome (par défaut : false). La recherche autonome reste en cours de développement et désactivée par défaut ; la compatibilité du fournisseur ne suffit pas à l’activer.", }, { key: "model_providers..auth", type: "table", description: "Configuration d’un jeton porteur reposant sur une commande pour un fournisseur personnalisé. Ne l’associez pas à env_key, experimental_bearer_token ou requires_openai_auth.", }, { key: "model_providers..auth.command", type: "string", description: "Commande à exécuter lorsque Codex a besoin d’un jeton porteur. La commande doit écrire le jeton sur stdout.", }, { key: "model_providers..auth.args", type: "array", description: "Arguments transmis à la commande de jeton.", }, { key: "model_providers..auth.timeout_ms", type: "number", description: "Durée d’exécution maximale de la commande de jeton, en millisecondes (par défaut : 5000).", }, { key: "model_providers..auth.refresh_interval_ms", type: "number", description: "Fréquence à laquelle Codex actualise de manière proactive le jeton, en millisecondes (par défaut : 300000). Définissez cette option sur 0 pour ne l’actualiser qu’après une nouvelle tentative d’authentification.", }, { key: "model_providers..auth.cwd", type: "string (path)", description: "Répertoire de travail de la commande de jeton.", }, { key: "model_providers.amazon-bedrock.aws.profile", type: "string", description: "Nom du profil AWS utilisé par le fournisseur amazon-bedrock intégré.", }, { key: "model_providers.amazon-bedrock.aws.region", type: "string", description: "Région AWS utilisée par le fournisseur amazon-bedrock intégré.", }, { key: "model_reasoning_effort", type: "minimal | low | medium | high | xhigh", description: "Ajuste l’effort de raisonnement pour les modèles pris en charge (Responses API uniquement ; xhigh dépend du modèle).", }, { key: "plan_mode_reasoning_effort", type: "none | minimal | low | medium | high | xhigh", description: "Remplacement de l’effort de raisonnement propre au mode Plan. Si cette option n’est pas définie, le mode Plan utilise la valeur prédéfinie intégrée par défaut.", }, { key: "model_reasoning_summary", type: "auto | concise | detailed | none", description: "Sélectionne le niveau de détail du résumé du raisonnement ou désactive entièrement les résumés.", }, { key: "model_verbosity", type: "low | medium | high", description: "Remplacement facultatif du niveau de verbosité de la GPT-5 Responses API ; si cette option n’est pas définie, la valeur par défaut du modèle ou du préréglage sélectionné est utilisée.", }, { key: "model_supports_reasoning_summaries", type: "boolean", description: "Force Codex à envoyer ou à ne pas envoyer les métadonnées de raisonnement.", }, { key: "shell_environment_policy.inherit", type: "all | core | none", description: "Héritage de référence de l’environnement lors de la génération de sous-processus.", }, { key: "shell_environment_policy.ignore_default_excludes", type: "boolean", description: "Conserve les variables contenant KEY, SECRET ou TOKEN avant l’application des autres filtres (par défaut : true). Définissez cette option sur false pour appliquer l’exclusion automatique des noms de secrets.", }, { key: "shell_environment_policy.filters", type: "map<string, include | exclude>", description: "Filtres canoniques de motifs de variables d’environnement, insensibles à la casse. Les entrées d’inclusion créent une liste d’autorisation et ne peuvent pas restaurer les valeurs exclues. Les valeurs set explicites sont appliquées après les exclusions. N’associez pas les filtres aux tableaux historiques exclude ou include_only dans la même couche.", }, { key: "shell_environment_policy.exclude", type: "array", description: "Motifs historiques d’exclusion de variables d’environnement. Utilisez shell_environment_policy.filters pour toute nouvelle configuration ; n’associez pas les deux formes dans la même couche.", }, { key: "shell_environment_policy.include_only", type: "array", description: "Liste d’autorisation historique de motifs de variables d’environnement. Utilisez shell_environment_policy.filters pour toute nouvelle configuration ; n’associez pas les deux formes dans la même couche.", }, { key: "shell_environment_policy.set", type: "map<string,string>", description: "Valeurs d’environnement explicites injectées après les exclusions ; les filtres d’inclusion peuvent toujours les supprimer.", }, { key: "shell_environment_policy.experimental_use_profile", type: "boolean", description: "Utilise le profil du shell de l’utilisateur lors de la génération de sous-processus.", }, { key: "project_root_markers", type: "array", description: "Liste des noms de fichiers servant de marqueurs de racine du projet ; utilisée lors de la recherche de la racine du projet dans les répertoires parents.", }, { key: "project_doc_max_bytes", type: "number", description: "Nombre maximal d’octets lus depuis AGENTS.md lors de la création des instructions du projet.", }, { key: "project_doc_fallback_filenames", type: "array", description: "Noms de fichiers supplémentaires à essayer lorsque AGENTS.md est absent.", }, { key: "history.persistence", type: "save-all | none", description: "Détermine si Codex enregistre les transcriptions de session dans history.jsonl.", }, { key: "tool_output_token_limit", type: "number", description: "Budget de jetons pour le stockage dans l’historique des sorties individuelles d’outils ou de fonctions.", }, { key: "background_terminal_max_timeout", type: "number", description: "Fenêtre d’interrogation maximale, en millisecondes, pour les interrogations write_stdin vides (interrogation du terminal en arrière-plan). Valeur par défaut : 300000 (5 minutes). Remplace l’ancienne clé background_terminal_timeout.", }, { key: "history.max_bytes", type: "number", description: "Si cette option est définie, limite la taille du fichier d’historique en octets en supprimant les entrées les plus anciennes.", }, { key: "file_opener", type: "vscode | vscode-insiders | windsurf | cursor | none", description: "Schéma d’URI utilisé pour ouvrir les citations à partir de la sortie de Codex (par défaut : vscode).", }, { key: "otel.environment", type: "string", description: "Étiquette d’environnement appliquée aux événements OpenTelemetry émis (par défaut : dev).", }, { key: "otel.exporter", type: "none | otlp-http | otlp-grpc", description: "Sélectionne l’exportateur OpenTelemetry et fournit les métadonnées du point de terminaison.", }, { key: "otel.trace_exporter", type: "none | otlp-http | otlp-grpc", description: "Sélectionne l’exportateur de traces OpenTelemetry et fournit les métadonnées du point de terminaison.", }, { key: "otel.metrics_exporter", type: "none | statsig | otlp-http | otlp-grpc", description: "Sélectionne l’exportateur de métriques OpenTelemetry (valeur par défaut : statsig).", }, { key: "otel.log_user_prompt", type: "boolean", description: "Active explicitement l’exportation des invites utilisateur brutes avec les journaux OpenTelemetry.", }, { key: "otel.exporter..endpoint", type: "string", description: "Point de terminaison de l’exportateur pour les journaux OTEL.", }, { key: "otel.exporter..protocol", type: "binary | json", description: "Protocole utilisé par l’exportateur OTLP/HTTP.", }, { key: "otel.exporter..headers", type: "map<string,string>", description: "En-têtes statiques inclus dans les requêtes de l’exportateur OTEL.", }, { key: "otel.trace_exporter..endpoint", type: "string", description: "Point de terminaison de l’exportateur de traces pour les journaux OTEL.", }, { key: "otel.trace_exporter..protocol", type: "binary | json", description: "Protocole utilisé par l’exportateur de traces OTLP/HTTP.", }, { key: "otel.trace_exporter..headers", type: "map<string,string>", description: "En-têtes statiques inclus dans les requêtes de l’exportateur de traces OTEL.", }, { key: "otel.exporter..tls.ca-certificate", type: "string", description: "Chemin du certificat d’autorité de certification pour le TLS de l’exportateur OTEL.", }, { key: "otel.exporter..tls.client-certificate", type: "string", description: "Chemin du certificat client pour le TLS de l’exportateur OTEL.", }, { key: "otel.exporter..tls.client-private-key", type: "string", description: "Chemin de la clé privée du client pour le TLS de l’exportateur OTEL.", }, { key: "otel.trace_exporter..tls.ca-certificate", type: "string", description: "Chemin du certificat d’autorité de certification pour le TLS de l’exportateur de traces OTEL.", }, { key: "otel.trace_exporter..tls.client-certificate", type: "string", description: "Chemin du certificat client pour le TLS de l’exportateur de traces OTEL.", }, { key: "otel.trace_exporter..tls.client-private-key", type: "string", description: "Chemin de la clé privée du client pour le TLS de l’exportateur de traces OTEL.", }, { key: "tui", type: "table", description: "Options propres à la TUI, comme l’activation des notifications de bureau en ligne.", }, { key: "tui.notifications", type: "boolean | array", description: "Active les notifications de la TUI ; peut éventuellement les limiter à certains types d’événements.", }, { key: "tui.notification_method", type: "auto | osc9 | bel", description: "Méthode utilisée pour les notifications du terminal (par défaut : auto).", }, { key: "tui.notification_condition", type: "unfocused | always", description: "Détermine si les notifications de la TUI sont émises uniquement lorsque le terminal n’a pas le focus ou quel que soit le focus. La valeur par défaut est unfocused.", }, { key: "tui.animations", type: "boolean", description: "Active les animations du terminal (écran d’accueil, scintillement et indicateur de progression) (par défaut : true).", }, { key: "tui.alternate_screen", type: "auto | always | never", description: "Contrôle l’utilisation de l’écran secondaire par la TUI (par défaut : auto ; en mode auto, il est ignoré dans Zellij afin de préserver l’historique de défilement).", }, { key: "tui.resume_cwd", type: "current | session", description: "Répertoire de travail à utiliser lors de la reprise ou de la duplication d’une session. Si cette option n’est pas définie, Codex vous demande de choisir lorsque votre répertoire actuel diffère du répertoire enregistré pour la session.", }, { key: "tui.vim_mode_default", type: "boolean", description: "Démarre l’éditeur en mode normal Vim plutôt qu’en mode insertion (par défaut : false). Vous pouvez toujours basculer entre les modes pour chaque session avec /vim.", }, { key: "tui.raw_output_mode", type: "boolean", description: "Démarre la TUI en mode d’historique brut afin de faciliter la sélection et la copie dans le terminal (par défaut : false). Vous pouvez basculer ce mode avec /raw ou le raccourci clavier alt-r par défaut.", }, { key: "tui.show_tooltips", type: "boolean", description: "Affiche les infobulles d’intégration dans l’écran d’accueil de la TUI (par défaut : true).", }, { key: "tui.status_line", type: "array | null", description: "Liste ordonnée des identifiants d’éléments de la ligne d’état du pied de page de la TUI. null désactive la ligne d’état.", }, { key: "tui.terminal_title", type: "array | null", description: 'Liste ordonnée des identifiants d’éléments du titre de la fenêtre ou de l’onglet du terminal. La valeur par défaut est ["spinner", "project"] ; null désactive la mise à jour du titre.', }, { key: "tui.theme", type: "string", description: "Remplacement du thème de coloration syntaxique (nom de thème en kebab-case).", }, { key: "tui.keymap..", type: "string | array", description: "Association d’un raccourci clavier à une action de la TUI. Les contextes pris en charge comprennent global, chat, composer, editor, vim_normal, vim_operator, vim_text_object, pager, list et approval. Certaines actions de l’éditeur se rabattent sur les associations tui.keymap.global correspondantes ; les associations propres au contexte sont prioritaires lorsqu’elles sont prises en charge.", }, { key: "tui.keymap.. = []", type: "empty array", description: "Dissocie l’action dans ce contexte de raccourcis clavier. Les noms des touches utilisent des chaînes normalisées telles que ctrl-a, shift-enter, page-down ou minus.", }, { key: "plugins..mcp_servers..enabled", type: "boolean", description: "Active ou désactive un serveur MCP fourni par un plugin installé sans modifier le manifeste du plugin.", }, { key: "plugins..mcp_servers..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Comportement d’approbation par défaut des outils d’un serveur MCP fourni par un plugin.", }, { key: "plugins..mcp_servers..enabled_tools", type: "array", description: "Liste d’autorisation des outils exposés par un serveur MCP fourni par un plugin.", }, { key: "plugins..mcp_servers..disabled_tools", type: "array", description: "Liste de refus appliquée après enabled_tools pour un serveur MCP fourni par un plugin.", }, { key: "plugins..mcp_servers..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Remplacement du comportement d’approbation propre à un outil MCP fourni par un plugin.", }, { key: "tui.model_availability_nux.", type: "integer", description: "État interne de l’infobulle de démarrage indexé par le slug du modèle.", }, { key: "hide_agent_reasoning", type: "boolean", description: "Masque les événements de raisonnement dans la TUI et la sortie codex exec.", }, { key: "show_raw_agent_reasoning", type: "boolean", description: "Affiche le contenu brut du raisonnement lorsque le modèle actif en émet.", }, { key: "disable_paste_burst", type: "boolean", description: "Désactive la détection des collages en rafale dans la TUI.", }, { key: "windows_wsl_setup_acknowledged", type: "boolean", description: "Enregistre la confirmation de l’intégration Windows (Windows uniquement).", }, { key: "chatgpt_base_url", type: "string", description: "Remplace l’URL de base utilisée pendant le processus de connexion à ChatGPT.", }, { key: "cli_auth_credentials_store", type: "file | keyring | auto", description: "Détermine où la CLI stocke les identifiants mis en cache (auth.json basé sur des fichiers ou trousseau du système d’exploitation).", }, { key: "mcp_oauth_credentials_store", type: "auto | file | keyring", description: "Emplacement de stockage privilégié pour les identifiants MCP OAuth.", }, { key: "mcp_oauth_callback_port", type: "integer", description: "Port fixe facultatif du serveur de rappel HTTP local utilisé lors de la connexion MCP OAuth. Si cette option n’est pas définie, Codex se lie à un port éphémère choisi par le système d’exploitation.", }, { key: "mcp_oauth_callback_url", type: "string", description: "Remplacement facultatif de l’URL de base de rappel pour la connexion MCP OAuth (par exemple, une URL d’entrée de devbox). Codex ajoute un ID de rappel propre au serveur avant d’envoyer l’URI OAuth redirect_uri final ; enregistrez donc l’URI dérivé complet auprès de votre fournisseur. mcp_oauth_callback_port continue de déterminer le port du point d’écoute de rappel.", }, { key: "experimental_use_unified_exec_tool", type: "boolean", description: "Ancien nom servant à activer l’exécution unifiée ; privilégiez [features].unified_exec ou codex --enable unified_exec.", }, { key: "tools.web_search", type: 'boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }', description: "Configuration facultative de l’outil de recherche Web. L’ancienne forme booléenne reste acceptée, mais la forme objet vous permet de définir la taille du contexte de recherche, les domaines autorisés et la position approximative de l’utilisateur.", }, { key: "tools.view_image", type: "boolean", description: "Active l’outil de pièce jointe d’image locale view_image.", }, { key: "web_search", type: "disabled | cached | indexed | live", description: 'Mode de recherche Web (par défaut : "cached" ; cached utilise un index géré par OpenAI sans accès externe au Web ; indexed autorise l’accès externe uniquement lorsqu’il est validé par l’index de recherche ; si vous utilisez --yolo ou un autre paramètre de bac à sable avec accès complet, la valeur par défaut devient "live"). Utilisez "live" pour une récupération en direct sans restriction, ou "disabled" pour supprimer l’outil.', }, { key: "default_permissions", type: "string", description: "Nom du profil d’autorisations par défaut à appliquer aux appels d’outils placés dans le bac à sable. Les profils intégrés sont :read-only, :workspace et :danger-full-access ; les noms de profils personnalisés nécessitent des tables [permissions.<name>] correspondantes. Ne l’associez pas à sandbox_mode ou [sandbox_workspace_write].", }, { key: "permissions..description", type: "string", description: "Description lisible de ce profil nommé. Un profil n’hérite pas de la description de son parent via extends.", }, { key: "permissions..extends", type: "string", description: "Profil parent facultatif appliqué avant ce profil nommé. Définissez-le sur un autre profil nommé, :read-only ou :workspace ; :danger-full-access, les parents non définis et les cycles sont rejetés.", }, { key: "permissions..workspace_roots", type: "table", description: "Racines d’espace de travail définies par le profil qui reçoivent les règles de système de fichiers :workspace_roots en plus des racines d’espace de travail d’exécution de la session.", }, { key: "permissions..workspace_roots.", type: "boolean", description: "Ajoute un chemin à l’ensemble des racines d’espace de travail du profil lorsque cette option vaut true. Les entrées désactivées restent inactives.", }, { key: "permissions..filesystem", type: "table", description: "Profil nommé d’autorisations du système de fichiers. Chaque clé est un chemin absolu ou un jeton spécial tel que :minimal ou :workspace_roots.", }, { key: "permissions..filesystem.glob_scan_max_depth", type: "number", description: "Profondeur maximale d’expansion des motifs glob de refus de lecture sur les plateformes qui créent un instantané des correspondances avant le démarrage du bac à sable. Doit être au moins égale à 1 lorsqu’elle est définie.", }, { key: "permissions..filesystem.", type: '"read" | "write" | "deny" | table', description: 'Accorde un accès direct à un chemin, un motif glob ou un jeton spécial, ou limite la portée des entrées imbriquées sous cette racine. Utilisez "deny" pour refuser la lecture des chemins correspondants.', }, { key: 'permissions..filesystem.":workspace_roots".', type: '"read" | "write" | "deny"', description: 'Accès au système de fichiers limité à chaque racine effective de l’espace de travail. Utilisez "." pour la racine elle-même ; les sous-chemins glob tels que "**/*.env" peuvent refuser les lectures avec "deny".', }, { key: "permissions..network.enabled", type: "boolean", description: "Active l’accès réseau pour ce profil d’autorisations nommé. Cette option modifie la politique réseau du bac à sable ; elle ne démarre pas le proxy réseau à elle seule.", }, { key: "permissions..network.proxy_url", type: "string", description: "URL du point d’écoute HTTP utilisée lorsque ce profil d’autorisations active la mise en réseau dans le bac à sable.", }, { key: "permissions..network.enable_socks5", type: "boolean", description: "Expose la prise en charge de SOCKS5 lorsque ce profil d’autorisations active la mise en réseau dans le bac à sable.", }, { key: "permissions..network.socks_url", type: "string", description: "Point de terminaison du proxy SOCKS5 utilisé par ce profil d’autorisations.", }, { key: "permissions..network.enable_socks5_udp", type: "boolean", description: "Autorise UDP via le point d’écoute SOCKS5 lorsqu’il est activé.", }, { key: "permissions..network.allow_upstream_proxy", type: "boolean", description: "Autorise la mise en réseau dans le bac à sable à passer par un autre proxy en amont.", }, { key: "permissions..network.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Autorise les adresses de liaison qui ne sont pas en boucle locale pour les points d’écoute de mise en réseau dans le bac à sable. L’activation de cette option peut exposer ces points d’écoute au-delà de localhost.", }, { key: "permissions..network.dangerously_allow_all_unix_sockets", type: "boolean", description: "Autorise des destinations de sockets Unix arbitraires au lieu de l’ensemble restreint par défaut. Utilisez cette option uniquement dans des environnements étroitement contrôlés.", }, { key: "permissions..network.mode", type: "limited | full", description: "Mode de proxy réseau utilisé pour le trafic des sous-processus.", }, { key: "permissions..network.domains", type: "table", description: "Règles de domaines pour la mise en réseau dans le bac à sable. Elles prennent en charge les hôtes exacts, *.example.com pour les sous-domaines uniquement, **.example.com pour le domaine racine et ses sous-domaines, ainsi que les règles d’autorisation globales *. deny est prioritaire en cas de conflit.", }, { key: "permissions..network.domains.", type: "allow | deny", description: "Autorise ou refuse un hôte exact ou un motif générique délimité tel que *.example.com ou **.example.com.", }, { key: "permissions..network.unix_sockets", type: "table", description: "Remplacements de la liste d’autorisation des sockets Unix pour la mise en réseau dans le bac à sable. Utilisez les chemins de sockets comme clés ; allow ajoute un chemin et deny le rejette.", }, { key: "permissions..network.unix_sockets.", type: "allow | deny", description: "Ajoute un chemin absolu de socket Unix à la liste d’autorisation effective avec allow, ou le rejette avec deny. Les entrées refusées sont omises de la liste d’autorisation effective.", }, { key: "permissions..network.allow_local_binding", type: "boolean", description: "Autorise un accès plus large au réseau local ou privé par l’intermédiaire de la mise en réseau dans le bac à sable. Des règles d’autorisation portant sur un littéral d’adresse IP locale exact ou sur localhost peuvent tout de même autoriser des cibles locales spécifiques lorsque cette option reste définie sur false.", }, { key: "projects..trust_level", type: "string", description: 'Marque un projet ou un worktree comme approuvé ou non approuvé ("trusted" | "untrusted"). Les projets non approuvés ignorent les couches .codex/ propres au projet, notamment la configuration, les hooks et les règles locaux du projet.', }, { key: "notice.hide_full_access_warning", type: "boolean", description: "Enregistre la confirmation de l’avertissement d’accès complet.", }, { key: "notice.hide_world_writable_warning", type: "boolean", description: "Enregistre la confirmation de l’avertissement concernant les répertoires Windows accessibles en écriture à tous.", }, { key: "notice.hide_rate_limit_model_nudge", type: "boolean", description: "Enregistre le refus du rappel de changement de modèle lié à la limitation de débit.", }, { key: "notice.hide_gpt5_1_migration_prompt", type: "boolean", description: "Enregistre la confirmation de l’invite de migration vers GPT-5.1.", }, { key: "notice.hide_gpt-5.1-codex-max_migration_prompt", type: "boolean", description: "Enregistre la confirmation de l’invite de migration vers gpt-5.1-codex-max.", }, { key: "notice.model_migrations", type: "map<string,string>", description: "Enregistre les migrations de modèles confirmées sous forme de correspondances ancien->nouveau.", }, { key: "forced_login_method", type: "chatgpt | api", description: "Limite Codex à une méthode d’authentification spécifique.", }, { key: "forced_chatgpt_workspace_id", type: "string (uuid)", description: "Limite les connexions ChatGPT à un identifiant d’espace de travail spécifique.", }, ]} client:load />

Vous trouverez le dernier schéma JSON pour config.toml ici.

Pour bénéficier de l’autocomplétion et des diagnostics lorsque vous modifiez config.toml dans VS Code ou Cursor, vous pouvez installer l’extension Even Better TOML et ajouter cette ligne au début de votre config.toml :

#:schema https://developers.openai.com/codex/config-schema.json

Remarque : renommez experimental_instructions_file en model_instructions_file. Codex rend l’ancienne clé obsolète ; mettez à jour les configurations existantes avec le nouveau nom.

requirements.toml

requirements.toml est un fichier de configuration imposé par l’administrateur qui restreint les paramètres sensibles en matière de sécurité que les utilisateurs ne peuvent pas remplacer. Pour en savoir plus sur son fonctionnement, ses emplacements et consulter des exemples, consultez Exigences imposées par l’administrateur.

Pour les utilisateurs de ChatGPT Business et Enterprise, Codex peut également appliquer des exigences récupérées depuis le cloud. Consultez la page consacrée à la sécurité pour connaître les règles de priorité.

Utilisez [features] dans requirements.toml pour fixer les indicateurs de fonctionnalités à l’exécution à l’aide des mêmes clés canoniques que celles utilisées par config.toml. Les exigences peuvent aussi inclure des clés documentées réservées à l’application qui n’ont pas leur place dans config.toml. Les clés omises restent sans contrainte.

Certaines exigences gérées imposent une valeur de configuration exacte plutôt qu’une liste d’autorisation. Les utilisateurs ne peuvent pas remplacer un chemin imposé, une préférence de mise à jour, une stratégie de shell de connexion, un paramètre de commentaires ou un paramètre de bureau privé Windows.

Les listes d’autorisation de profils d’autorisations gérés nécessitent Codex 0.138.0 ou une version ultérieure. Codex 0.137.0 et les versions antérieures ignorent allowed_permission_profiles et le paramètre géré default_permissions.

Utilisez allowed_sandbox_modes avec sandbox_mode. Pour les déploiements de profils d’autorisations, utilisez allowed_permission_profiles avec le paramètre géré default_permissions.

La table [models.new_thread] fournit des valeurs par défaut gérées, et non des contraintes. Les choix de lancement explicites effectués au moyen d’indicateurs CLI dédiés ou les remplacements de --config sont prioritaires. Le remplacement explicite du modèle ou de l’effort de raisonnement ignore les deux champs de modèle gérés ; service_tier est indépendant.

<ConfigTable options={[ { key: "sqlite_home", type: "string (path)", description: "Impose le répertoire dans lequel Codex stocke l’état d’exécution reposant sur SQLite.", }, { key: "log_dir", type: "string (path)", description: "Impose le répertoire dans lequel Codex écrit les fichiers journaux locaux.", }, { key: "model_catalog_json", type: "string (path)", description: "Impose le catalogue de modèles JSON utilisé par Codex au démarrage.", }, { key: "check_for_update_on_startup", type: "boolean", description: "Impose si Codex recherche des mises à jour au démarrage.", }, { key: "allow_login_shell", type: "boolean", description: "Impose si les outils de shell peuvent démarrer un shell de connexion.", }, { key: "feedback", type: "table", description: "Paramètres de commentaires gérés.", }, { key: "feedback.enabled", type: "boolean", description: "Impose si les utilisateurs peuvent envoyer des commentaires depuis les différents clients Codex.", }, { key: "allowed_approval_policies", type: "array", description: "Valeurs autorisées pour approval_policy (par exemple untrusted, on-request, never et granular).", }, { key: "allowed_approvals_reviewers", type: "array", description: "Valeurs autorisées pour approvals_reviewer, telles que user et auto_review.", }, { key: "guardian_policy_config", type: "string", description: "Instructions de stratégie Markdown gérées pour la révision automatique. Elles sont prioritaires sur le fichier local [auto_review].policy. Les valeurs vides sont ignorées.", }, { key: "allowed_permission_profiles", type: "table", description: "Liste complète des profils d’autorisations autorisés. Les profils définis sur true sont autorisés. Les profils omis ou définis sur false sont refusés, y compris ceux ajoutés dans de futures versions. Lorsque plusieurs sources d’exigences sont combinées, les entrées sont mises en correspondance selon le nom du profil.", }, { key: "allowed_permission_profiles.", type: "boolean", description: "Autorise ou refuse un profil d’autorisations intégré ou personnalisé défini dans une configuration ou une source d’exigences chargée. Une source d’exigences ultérieure et plus prioritaire peut utiliser false pour désactiver un profil autorisé par une source antérieure et moins prioritaire.", }, { key: "default_permissions", type: "string", description: "Profil d’autorisations géré par défaut. Le profil doit être autorisé par allowed_permission_profiles. Définissez-le explicitement pour obtenir un comportement prévisible ; s’il est omis, Codex utilise par défaut :workspace uniquement lorsque :workspace et :read-only sont tous deux explicitement autorisés.", }, { key: "enforce_residency", type: "string", description: "Exige que le trafic du service Codex utilise une résidence des données prise en charge. Accepte actuellement us.", }, { key: "models", type: "table", description: "Valeurs par défaut gérées des modèles pour les nouveaux fils de discussion. Ces valeurs sont prioritaires sur les valeurs par défaut de l’utilisateur et du projet, mais une sélection explicite pour le nouveau fil peut les remplacer.", }, { key: "models.new_thread", type: "table", description: "Valeurs par défaut à appliquer lors du démarrage d’un nouveau fil local. Chaque paramètre de modèle est facultatif.", }, { key: "models.new_thread.model", type: "string", description: "Modèle par défaut des nouveaux fils. Un remplacement explicite de --model ou de --config pour le modèle ou le raisonnement est prioritaire.", }, { key: "models.new_thread.model_reasoning_effort", type: "string", description: "Effort de raisonnement par défaut des nouveaux fils. Le remplacement explicite du modèle ou de l’effort de raisonnement ignore les deux champs de modèle gérés.", }, { key: "models.new_thread.service_tier", type: "string", description: "Niveau de service par défaut des nouveaux fils. Le remplacement explicite du niveau de service est prioritaire indépendamment des champs de modèle.", }, { key: "permissions", type: "table", description: "Profils d’autorisations définis par l’administrateur, indexés par nom de profil. Utilise les mêmes champs de profil que config.toml.", }, { key: "permissions.", type: "table", description: "Profil d’autorisations défini par l’administrateur. Le nom ne peut pas commencer par :, utiliser le nom réservé filesystem ni dupliquer un profil provenant d’une configuration chargée. Utilise les mêmes champs de profil que config.toml ; consultez le guide des autorisations pour connaître le schéma complet du profil.", }, { key: "allowed_sandbox_modes", type: "array", description: "Valeurs autorisées pour sandbox_mode.", }, { key: "windows", type: "table", description: "Exigences de bac à sable Windows natif.", }, { key: "windows.allowed_sandbox_implementations", type: "array", description: "Implémentations de bac à sable Windows natif autorisées pour windows.sandbox (elevated et unelevated). La liste ne doit pas être vide. Lorsque les deux sont autorisées et qu’aucun mode n’est sélectionné, Codex privilégie elevated.", }, { key: "windows.sandbox_private_desktop", type: "boolean", description: "Impose si le bac à sable Windows natif démarre son processus enfant sur un bureau privé.", }, { key: "remote_sandbox_config", type: "array

", description: "Exigences de bac à sable propres à l’hôte. La première entrée dont les hostname_patterns correspondent au nom d’hôte résolu remplace le paramètre allowed_sandbox_modes de premier niveau pour cette source d’exigences. Les entrées propres à l’hôte ne remplacent actuellement que les modes de bac à sable.", }, { key: "remote_sandbox_config[].hostname_patterns", type: "array", description: "Motifs de noms d’hôte insensibles à la casse. Prend en charge * pour toute séquence de caractères et ? pour un seul caractère.", }, { key: "remote_sandbox_config[].allowed_sandbox_modes", type: "array", description: "Modes de bac à sable autorisés à appliquer lorsque cette entrée propre à l’hôte correspond.", }, { key: "allowed_web_search_modes", type: "array", description: "Valeurs autorisées pour web_search (disabled, cached, indexed, live). disabled est toujours autorisé ; une liste vide n’autorise en pratique que disabled.", }, { key: "allow_managed_hooks_only", type: "boolean", description: "Lorsque la valeur est true, Codex ignore les hooks de l’utilisateur, du projet, de la session et des plugins, tout en continuant à autoriser les hooks gérés provenant de requirements.toml et d’autres couches de configuration gérées.", }, { key: "allow_appshots", type: "boolean", description: "Définissez sur false pour désactiver Appshots pour les utilisateurs gérés. Si ce paramètre est omis, les exigences ne restreignent pas Appshots et sa disponibilité suit les règles normales du produit.", }, { key: "allow_remote_control", type: "boolean", description: "Définissez sur false pour désactiver le contrôle à distance des appareils pour les utilisateurs gérés. Si ce paramètre est omis, les exigences ne restreignent pas le contrôle à distance des appareils et sa disponibilité suit les règles normales du produit.", }, { key: "features.plugin_sharing", type: "boolean", description: "Définissez sur false dans le fichier requirements.toml géré dans le cloud pour désactiver le partage dans l’espace de travail des plugins créés localement.", }, { key: "features", type: "table", description: "Valeurs de fonctionnalités fixes. Utilisez les noms canoniques de config.toml pour les fonctionnalités d’exécution ; les clés d’exigences documentées réservées à l’application sont également prises en charge ici.", }, { key: "features.", type: "boolean", description: "Exige qu’une fonctionnalité d’exécution ou d’application documentée reste activée ou désactivée.", }, { key: "features.apps", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité de l’intégration Apps pour les utilisateurs gérés.", }, { key: "features.in_app_updates", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver les mises à jour dans l’application. Les mises à jour restent activées par défaut lorsque cette exigence est omise.", }, { key: "features.in_app_browser", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver le volet de navigateur intégré.", }, { key: "features.browser_use", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver Computer Use dans les navigateurs ainsi que la disponibilité de Browser Agent.", }, { key: "features.browser_use_external", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver Computer Use dans les navigateurs externes.", }, { key: "features.browser_use_full_cdp_access", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver l’accès complet au Chrome DevTools Protocol dans l’environnement d’exécution local, notamment le mode Browser Developer, et empêcher l’application de bureau ChatGPT d’activer le paramètre correspondant. Si cette exigence est omise, les règles normales de disponibilité du produit s’appliquent.", }, { key: "features.fast_mode", type: "boolean", description: "Fixe l’activation ou la désactivation de la fonctionnalité canonique fast_mode pour les utilisateurs gérés.", }, { key: "features.guardian_approval", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité de l’approbation Guardian pour les utilisateurs gérés.", }, { key: "features.memories", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité de Memories pour les utilisateurs gérés.", }, { key: "features.multi_agent", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité du mode multi-agent pour les utilisateurs gérés.", }, { key: "features.plugins", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité des plugins pour les utilisateurs gérés.", }, { key: "features.remote_plugin", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité du catalogue de plugins distants pour les utilisateurs gérés.", }, { key: "features.computer_use", type: "boolean", description: "Définissez sur false dans requirements.toml pour désactiver Computer Use, Record & Replay ainsi que les parcours d’installation ou d’activation associés.", }, { key: "features.workspace_dependencies", type: "boolean", description: "Fixe l’activation ou la désactivation de la disponibilité de l’environnement d’exécution intégré des dépendances d’espace de travail pour les utilisateurs gérés.", }, { key: "computer_use", type: "table", description: "Exigences de Computer Use imposées depuis requirements.toml.", }, { key: "computer_use.allow_locked_computer_use", type: "boolean", description: "Définissez sur false pour empêcher Computer Use de fonctionner après le verrouillage d’un appareil macOS géré. Si ce paramètre est omis, les exigences ne restreignent pas l’utilisation après verrouillage.", }, { key: "experimental_network", type: "table", description: "Exigences d’accès réseau imposées depuis requirements.toml. Ces contraintes sont distinctes de features.network_proxy et peuvent configurer la mise en réseau en bac à sable sans l’indicateur de fonctionnalité de l’utilisateur.", }, { key: "experimental_network.enabled", type: "boolean", description: "Active les exigences de mise en réseau en bac à sable. Cela n’accorde pas d’accès réseau lorsque le bac à sable actif maintient la mise en réseau des commandes désactivée.", }, { key: "experimental_network.http_port", type: "integer", description: "Port d’écoute HTTP en boucle locale à utiliser pour les exigences [experimental_network].", }, { key: "experimental_network.socks_port", type: "integer", description: "Port d’écoute SOCKS5 en boucle locale à utiliser pour les exigences [experimental_network].", }, { key: "experimental_network.allow_upstream_proxy", type: "boolean", description: "Autorise la mise en réseau en bac à sable à passer par un proxy en amont provenant de l’environnement.", }, { key: "experimental_network.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Autorise les adresses d’écoute hors boucle locale pour les exigences [experimental_network]. Son activation peut exposer les points d’écoute au-delà de localhost.", }, { key: "experimental_network.dangerously_allow_all_unix_sockets", type: "boolean", description: "Autorise des destinations de sockets Unix arbitraires au lieu d’un accès limité à une liste d’autorisation. Utilisez cette option uniquement dans des environnements étroitement contrôlés.", }, { key: "experimental_network.domains", type: "map<string, allow | deny>", description: "Stratégie de domaines de l’administrateur sous forme de table de correspondance pour la mise en réseau en bac à sable. Prend en charge les hôtes exacts, *.example.com pour les sous-domaines uniquement, **.example.com pour le domaine racine et ses sous-domaines, ainsi que les règles d’autorisation globales * ; privilégiez les règles ciblées, car * ouvre largement l’accès sortant public. deny l’emporte en cas de conflit. Ne combinez pas ce paramètre avec experimental_network.allowed_domains ou experimental_network.denied_domains.", }, { key: "experimental_network.allowed_domains", type: "array", description: "Règles d’autorisation de l’administrateur sous forme de liste pour la mise en réseau en bac à sable. Ne combinez pas ce paramètre avec experimental_network.domains.", }, { key: "experimental_network.denied_domains", type: "array", description: "Règles de refus de l’administrateur sous forme de liste pour la mise en réseau en bac à sable. Ne combinez pas ce paramètre avec experimental_network.domains.", }, { key: "experimental_network.managed_allowed_domains_only", type: "boolean", description: "Lorsque la valeur est true, seules les règles d’autorisation gérées par l’administrateur restent effectives tant que les exigences de mise en réseau en bac à sable sont actives ; les ajouts de l’utilisateur à la liste d’autorisation sont ignorés. En l’absence de règles d’autorisation gérées, les règles d’autorisation de domaines ajoutées par l’utilisateur ne restent pas effectives.", }, { key: "experimental_network.unix_sockets", type: "map<string, allow | deny>", description: "Stratégie de sockets Unix gérée par l’administrateur pour la mise en réseau en bac à sable.", }, { key: "experimental_network.allow_local_binding", type: "boolean", description: "Autorise un accès plus large au réseau local ou privé pour la mise en réseau en bac à sable. Des règles d’autorisation portant sur une adresse IP locale littérale exacte ou sur localhost peuvent toujours autoriser des cibles locales précises lorsque ce paramètre reste défini sur false.", }, { key: "hooks", type: "table", description: "Hooks de cycle de vie gérés et imposés par l’administrateur. Nécessite un répertoire de hooks gérés et utilise le même schéma d’événements que les hooks [hooks] en ligne dans config.toml.", }, { key: "hooks.managed_dir", type: "string (absolute path)", description: "Répertoire contenant les scripts de hooks gérés sous macOS et Linux. Codex vérifie qu’il est absolu et qu’il existe avant de charger les hooks gérés.", }, { key: "hooks.windows_managed_dir", type: "string (absolute path)", description: "Répertoire contenant les scripts de hooks gérés sous Windows. Codex vérifie qu’il est absolu et qu’il existe avant de charger les hooks gérés.", }, { key: "hooks.", type: "array
", description: "Groupes de correspondance pour un événement de hook tel que PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit ou Stop.", }, { key: "hooks.[].hooks", type: "array
", description: "Gestionnaires de hooks pour un groupe de correspondance. Les hooks de commande sont actuellement pris en charge ; les gestionnaires de hooks d’invite et d’agent sont analysés, mais ignorés.", }, { key: "hooks.[].hooks[].commandWindows", type: "string", description: "Remplacement de commande réservé à Windows pour les hooks de commande. L’alias TOML command_windows est également accepté.", }, { key: "permissions.filesystem.deny_read", type: "array", description: "Interdictions de lecture du système de fichiers imposées par l’administrateur. Les entrées peuvent être des chemins ou des motifs glob, et les utilisateurs ne peuvent pas les assouplir au moyen d’une configuration locale.", }, { key: "mcp_servers", type: "table", description: "Liste d’autorisation des serveurs MCP pouvant être activés. Le nom du serveur (<id>) et son identité doivent tous deux correspondre pour que le serveur MCP soit activé. Tout serveur MCP configuré qui ne figure pas dans la liste d’autorisation, ou dont l’identité ne correspond pas, est désactivé.", }, { key: "mcp_servers..identity", type: "table", description: "Règle d’identité pour un serveur MCP unique. Définissez soit command (stdio), soit url (HTTP diffusable en continu).", }, { key: "mcp_servers..identity.command", type: "string | table", description: "Autorise un serveur MCP stdio au moyen d’une chaîne de commande exacte, ou utilise une table de correspondance pour exiger un exécutable exact et des critères de correspondance d’arguments ordonnés. La forme chaîne n’examine ni les arguments, ni cwd, ni env, ni env_vars.", }, { key: "mcp_servers..identity.command.executable", type: "string", description: "Exécutable auquel la valeur command configurée du serveur stdio doit correspondre exactement.", }, { key: "mcp_servers..identity.command.args", type: "array
", description: "Critères de correspondance d’arguments ordonnés pour un serveur stdio. La liste d’arguments configurée doit avoir la même longueur, et chaque position doit correspondre. Les critères de commande n’examinent ni cwd, ni env, ni env_vars.", }, { key: "mcp_servers..identity.command.args[].match", type: "exact | prefix | regex", description: "Opération de correspondance pour cette position d’argument.", }, { key: "mcp_servers..identity.command.args[].value", type: "string", description: "Valeur utilisée par un critère de correspondance d’argument exact ou prefix.", }, { key: "mcp_servers..identity.command.args[].expression", type: "string", description: "Expression régulière utilisée par un critère de correspondance d’argument regex. L’expression doit être valide et correspondre à la valeur complète de l’argument.", }, { key: "mcp_servers..identity.url", type: "string | table", description: "Autorise un serveur MCP HTTP diffusable en continu au moyen d’une chaîne d’URL exacte, ou utilise une table de critères de correspondance de valeur exact, prefix ou regex.", }, { key: "mcp_servers..identity.url.match", type: "exact | prefix | regex", description: "Opération de correspondance pour l’URL configurée du serveur MCP.", }, { key: "mcp_servers..identity.url.value", type: "string", description: "Valeur utilisée par un critère de correspondance d’URL exact ou prefix.", }, { key: "mcp_servers..identity.url.expression", type: "string", description: "Expression régulière utilisée par un critère de correspondance d’URL regex. L’expression doit être valide et correspondre à la valeur complète de l’URL.", }, { key: "plugins", type: "table", description: "Listes d’autorisation de serveurs MCP propres aux plugins, indexées par identifiant de plugin. Lorsque cette table est présente, les serveurs intégrés à des plugins ne disposant pas d’une entrée de plugin et de serveur correspondante sont désactivés.", }, { key: "plugins..mcp_servers", type: "table", description: "Liste d’autorisation des serveurs MCP intégrés à un plugin. Les exigences relatives aux serveurs de plugins utilisent les mêmes formes d’identité exacte et de critères de correspondance que les exigences mcp_servers de premier niveau.", }, { key: "plugins..mcp_servers..identity", type: "table", description: "Règle d’identité pour un serveur MCP intégré à un plugin. Définissez soit command (stdio), soit url (HTTP diffusable en continu).", }, { key: "plugins..mcp_servers..identity.command", type: "string | table", description: "Autorise le serveur MCP stdio d’un plugin au moyen d’une chaîne de commande exacte, ou utilise une table de correspondance pour exiger un exécutable exact et des critères de correspondance d’arguments ordonnés.", }, { key: "plugins..mcp_servers..identity.command.executable", type: "string", description: "Exécutable auquel la commande configurée du serveur stdio intégré au plugin doit correspondre exactement.", }, { key: "plugins..mcp_servers..identity.command.args", type: "array
", description: "Critères de correspondance d’arguments ordonnés pour un serveur stdio intégré à un plugin. La liste d’arguments configurée doit avoir la même longueur, et chaque position doit correspondre.", }, { key: "plugins..mcp_servers..identity.command.args[].match", type: "exact | prefix | regex", description: "Opération de correspondance pour cette position d’argument.", }, { key: "plugins..mcp_servers..identity.command.args[].value", type: "string", description: "Valeur utilisée par un critère de correspondance d’argument exact ou prefix.", }, { key: "plugins..mcp_servers..identity.command.args[].expression", type: "string", description: "Expression régulière utilisée par un critère de correspondance d’argument regex. L’expression doit correspondre à la valeur complète de l’argument.", }, { key: "plugins..mcp_servers..identity.url", type: "string | table", description: "Autorise le serveur MCP HTTP diffusable en continu d’un plugin au moyen d’une chaîne d’URL exacte, ou utilise une table de critères de correspondance de valeur exact, prefix ou regex.", }, { key: "plugins..mcp_servers..identity.url.match", type: "exact | prefix | regex", description: "Opération de correspondance pour l’URL du serveur MCP intégré au plugin.", }, { key: "plugins..mcp_servers..identity.url.value", type: "string", description: "Valeur utilisée par un critère de correspondance d’URL exact ou prefix.", }, { key: "plugins..mcp_servers..identity.url.expression", type: "string", description: "Expression régulière utilisée par un critère de correspondance d’URL regex. L’expression doit correspondre à la valeur complète de l’URL.", }, { key: "marketplaces", type: "table", description: "Exigences de l’administrateur relatives aux sources des places de marché de plugins. Les règles prennent effet lorsque restrict_to_allowed_sources vaut true.", }, { key: "marketplaces.restrict_to_allowed_sources", type: "boolean", description: "Lorsque la valeur est true, exige que les sources de places de marché configurées par l’utilisateur correspondent à allowed_sources lors de l’ajout d’une place de marché, de l’installation d’un plugin et de l’actualisation d’une place de marché Git configurée. Les places de marché OpenAI gérées par Codex restent autorisées lorsque leur source et leur nom réservés correspondent. Cela ne filtre pas à l’exécution les places de marché utilisateur déjà configurées.", }, { key: "marketplaces.allowed_sources", type: "table", description: "Sources de places de marché autorisées, indexées par un nom de règle choisi par l’administrateur. Les noms distincts s’accumulent entre les couches d’exigences ; les champs portant le même nom suivent les règles habituelles de priorité des couches.", }, { key: "marketplaces.allowed_sources.", type: "table", description: "Une règle de source autorisée. La valeur finale de source après la fusion des exigences détermine les champs voisins que Codex interprète.", }, { key: "marketplaces.allowed_sources..source", type: "git | host_pattern | local", description: "Type de critère de correspondance de source de place de marché. Utilisez git pour un dépôt, host_pattern pour les hôtes Git correspondant à une expression régulière ou local pour un répertoire.", }, { key: "marketplaces.allowed_sources..url", type: "string", description: 'URL du dépôt Git requise lorsque la valeur est source = "git". Codex normalise les URL configurée et autorisée avant d’exiger une correspondance exacte du dépôt.', }, { key: "marketplaces.allowed_sources..ref", type: "string", description: "Référence Git exacte facultative pour une règle git. Lorsqu’elle est omise, la règle autorise toute référence pour le dépôt correspondant.", }, { key: "marketplaces.allowed_sources..host_pattern", type: "string", description: 'Expression régulière requise lorsque la valeur est source = "host_pattern". Codex la compare au nom d’hôte en minuscules analysé depuis une source Git HTTPS, SSH ou de style SCP. Utilisez ^ et $ pour exiger une correspondance avec l’intégralité du nom d’hôte.', }, { key: "marketplaces.allowed_sources..path", type: "string (absolute path)", description: 'Répertoire de place de marché locale requis lorsque la valeur est source = "local". Codex exige un chemin absolu et compare les chemins après normalisation.', }, { key: "apps", type: "table", description: "Exigences d’applications gérées, indexées par identifiant d’application. Les exigences peuvent désactiver une application ou restreindre le comportement d’approbation de certains outils.", }, { key: "apps..enabled", type: "boolean", description: "Définissez sur false pour désactiver une application. Une exigence de désactivation reste restrictive lorsque plusieurs sources d’exigences sont fusionnées.", }, { key: "apps..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Définit le mode d’approbation géré d’un outil d’application.", }, { key: "rules", type: "table", description: "Règles de commande imposées par l’administrateur et fusionnées avec les fichiers .rules. Les règles d’exigences doivent être restrictives.", }, { key: "rules.prefix_rules", type: "array
", description: "Liste de règles de préfixe imposées. Chaque règle doit inclure pattern et decision.", }, { key: "rules.prefix_rules[].pattern", type: "array
", description: "Préfixe de commande exprimé sous forme de jetons de motif. Chaque jeton définit soit token, soit any_of.", }, { key: "rules.prefix_rules[].pattern[].token", type: "string", description: "Un seul jeton littéral à cette position.", }, { key: "rules.prefix_rules[].pattern[].any_of", type: "array", description: "Liste de jetons alternatifs autorisés à cette position.", }, { key: "rules.prefix_rules[].decision", type: "prompt | forbidden", description: "Obligatoire. Les règles d’exigences peuvent uniquement demander une confirmation ou interdire, et non autoriser.", }, { key: "rules.prefix_rules[].justification", type: "string", description: "Justification facultative non vide affichée dans les demandes d’approbation ou les messages de rejet.", }, ]} client:load />