Vois quand Codex attend ton autorisation ou a terminé (Mac).

Codex peut te prévenir quand il a terminé et quand il attend ton accord, mais son réglage notify ne couvre que le premier cas. Ce guide explique le rôle de chaque réglage des notifications Codex sur Mac, avec des extraits de code vérifiés dans la documentation d’OpenAI.

Le réglage notify de Codex exécute ton programme uniquement à la fin d’un tour, pas pour les demandes d’autorisation (en octobre 2026). Pour être prévenu des demandes d’autorisation, utilise les notifications intégrées de Codex dans le terminal ([tui] notifications, activées par défaut quand le terminal est en arrière-plan, sous forme de bannière uniquement dans certains terminaux) ou un hook PermissionRequest dans ~/.codex/hooks.json. Dans l’app de bureau ChatGPT, active les notifications d’autorisation dans Settings > Notifications.

Dernière mise à jour :

Cowork Island

macOS 14 ou version ultérieure.
Mac avec puce Apple ou processeur Intel.
Aucun compte requis pour l’offre gratuite.

Télécharger gratuitement

Le rôle de chaque réglage de Codex.

Voici quatre façons de recevoir des alertes de Codex sur Mac. Un tour est un cycle de travail : tu envoies un message, Codex travaille, puis il s’arrête et attend ta réponse. Un hook est une commande que Codex exécute à un moment précis, par exemple juste avant de te demander une autorisation.

Réglages des alertes Codex sur Mac, d’après la documentation d’OpenAI (vérifiée le 18 octobre 2026)
RéglageEmplacementTour terminéAutorisation requiseBon à savoir
notify~/.codex/config.tomlOuiNonDésactivé tant que tu ne le configures pas. Exécute un programme de ton choix.
[tui] notifications~/.codex/config.tomlOuiOuiActivé par défaut. Se déclenche quand le terminal n’est pas au premier plan. Affiche une bannière uniquement dans les terminaux compatibles.
Hooks (Stop, PermissionRequest)~/.codex/hooks.jsonOuiOuiActivés par défaut. Tu dois approuver chaque nouveau hook dans /hooks avant qu’il puisse s’exécuter.
App de bureau ChatGPTSettings > NotificationsOuiOuiDes interrupteurs distincts pour les alertes de fin de tour, les demandes d’autorisation et les questions.

Une erreur courante consiste à configurer notify, puis à attendre une alerte d’autorisation qui n’arrive jamais. La documentation de configuration d’OpenAI précise que, pour l’instant, notify se déclenche uniquement pour agent-turn-complete. Pour les autorisations, utilise l’une des trois autres options du tableau.

Commence par les alertes intégrées de Codex.

Les notifications de Codex dans le terminal sont activées par défaut : tu les reçois donc peut-être déjà. Elles se déclenchent uniquement quand le terminal (l’app où Codex s’exécute, comme Terminal ou iTerm2) n’est pas au premier plan. Pour choisir toi-même les événements, indique-les dans ton fichier de configuration.

Ajoute ceci à ~/.codex/config.toml. Si le fichier contient déjà une section [tui], place ces clés dans cette section ; n’ajoute pas de second en-tête [tui]. La liste des terminaux dans le commentaire provient du code source de Codex, et non de sa documentation (voir ci-dessous).

[tui]
notifications = ["agent-turn-complete", "approval-requested"]
notification_method = "auto"        # osc9 in iTerm2/Ghostty/Kitty/Warp/WezTerm; bel elsewhere
notification_condition = "unfocused" # or "always"

Quand notification_method vaut auto, Codex choisit comment te prévenir : osc9 envoie un code spécial (une séquence d’échappement) que certains terminaux transforment en notification de bureau, tandis que bel fait retentir l’alerte sonore du terminal. Définis notification_condition sur "always" si tu veux recevoir les alertes même quand tu regardes le terminal.

Pourquoi Terminal se limite à une alerte sonore.

La documentation d’OpenAI ne précise pas quels terminaux affichent une bannière. D’après le code source public de Codex (ce comportement peut donc changer), la séquence qui déclenche une bannière est envoyée à Ghostty, iTerm2, Kitty, Warp et WezTerm. Tous les autres terminaux reçoivent une simple alerte sonore, y compris l’app Terminal fournie avec macOS. Une alerte sonore seule n’affiche aucune bannière. Dans Terminal, Settings > Profiles > Advanced > Bell propose une alerte visuelle, une pastille dans le Dock et une icône qui rebondit dans le Dock quand la fenêtre est en arrière-plan. Pour obtenir une véritable bannière dans Terminal, utilise le hook présenté plus bas.

Dans tmux, la séquence de bannière de Codex ne passe que si allow-passthrough est activé : avec on, uniquement depuis un volet visible ; avec all, également depuis les volets masqués (manuel de tmux). Ajoute cette ligne à ~/.tmux.conf, ou remplace on par all pour recevoir aussi les alertes des volets masqués :

set -g allow-passthrough on

Reçois une bannière sur Mac à la fin d’un tour avec notify.

notify exécute un programme à la fin d’un tour et lui transmet les détails dans un seul argument JSON. Il fonctionne de la même façon dans tous les terminaux. L’exemple d’OpenAI utilise terminal-notifier, un outil tiers disponible via Homebrew qui n’est pas fourni avec macOS. Le script ci-dessous utilise uniquement ce qui est fourni avec macOS : il affiche le début de la dernière réponse de Codex et le dossier du projet, puis joue le son Glass.

Étape 1. Enregistre ceci dans un nouveau fichier, ~/.codex/notify-macos.js :

// Codex notify -> macOS banner + sound. Codex appends one JSON argument.
function run(argv) {
  var n = {};
  try { n = JSON.parse(argv[argv.length - 1] || "{}"); } catch (e) {}
  if (n.type && n.type !== "agent-turn-complete") return;
  var app = Application.currentApplication();
  app.includeStandardAdditions = true;
  var msg = String(n["last-assistant-message"] || "Turn complete").slice(0, 180);
  var folder = String(n.cwd || "").split("/").pop();
  app.displayNotification(msg, { withTitle: "Codex finished", subtitle: folder, soundName: "Glass" });
}

Étape 2. Ajoute cette ligne à ton fichier ~/.codex/config.toml existant, avant le premier en-tête [section]. Remplace YOUR_NAME par le nom de ton dossier personnel : Codex exécute cette liste telle quelle, donc ~ n’est pas remplacé par le chemin de ce dossier (d’après le code source de Codex, et non sa documentation).

notify = ["/usr/bin/osascript", "-l", "JavaScript", "/Users/YOUR_NAME/.codex/notify-macos.js"]

Trois erreurs qui empêchent notify de fonctionner :

  • Une deuxième ligne notify. Une configuration ne peut en contenir qu’une, et une clé répétée empêche le chargement du fichier. Si un autre outil l’utilise déjà, fais-la pointer vers un petit script qui exécute les deux programmes. Tu peux aussi utiliser un hook Stop, car les hooks de tous les fichiers s’exécutent côte à côte.
  • Un mauvais emplacement dans le fichier. Si tu colles la ligne à la fin, sous un en-tête [section], elle appartient à cette section et Codex ne la reconnaît pas comme le réglage notify.
  • Une configuration propre au projet. Codex ignore notify dans le fichier .codex/config.toml d’un projet. Ce réglage fonctionne uniquement dans ~/.codex/config.toml.

Si aucune bannière n’apparaît, ouvre Réglages Système > Notifications. Le guide des hooks d’Anthropic indique que les bannières envoyées avec osascript y figurent sous Éditeur de scripts, dont tu dois autoriser les notifications, et que macOS ne te le demandera pas au préalable. Le nom affiché peut être différent sur ton Mac.

Reçois une bannière d’autorisation avec un hook Codex.

Les hooks permettent d’afficher une véritable bannière d’autorisation dans n’importe quel terminal, y compris Terminal. Codex exécute un hook PermissionRequest juste avant de te demander une autorisation, et un hook Stop à la fin d’un tour. PermissionRequest ne se déclenche pas pour les commandes qui ne nécessitent aucune autorisation.

Intègre ces entrées à ~/.codex/hooks.json. Si le fichier existe, ne le remplace pas : d’autres outils peuvent y conserver leurs entrées (c’est le cas de Cowork Island une fois que tu y actives Codex). Ajoute chaque entrée ci-dessous à la liste correspondante dans "hooks", crée la liste si elle n’existe pas et garde chaque entrée dans ses propres accolades.

{
  "hooks": {
    "PermissionRequest": [
      { "hooks": [ { "type": "command", "async": true, "timeout": 10,
        "command": "/usr/bin/osascript -e 'display notification \"Codex needs your approval\" with title \"Codex\" sound name \"Funk\"' >/dev/null 2>&1" } ] }
    ],
    "Stop": [
      { "hooks": [ { "type": "command", "async": true, "timeout": 10,
        "command": "/usr/bin/osascript -e 'display notification \"Codex finished\" with title \"Codex\" sound name \"Glass\"' >/dev/null 2>&1" } ] }
    ]
  }
}
  1. Enregistre le fichier, ouvre Codex et saisis /hooks.
  2. Approuve les deux nouvelles entrées. Codex ignore les hooks nouveaux ou modifiés tant que tu ne les as pas approuvés. Un hook non approuvé peut donc sembler en panne.
  3. Conserve la fin >/dev/null 2>&1 : un hook Stop doit produire du JSON ou ne rien produire.

Si tu préfères un message vocal ou une alerte sur ton téléphone, le générateur de configuration des notifications crée l’entrée dans ton navigateur et indique dans quel fichier la placer.

Codex dans l’app de bureau ChatGPT.

Depuis le 9 juillet 2026, l’app Codex fait partie de l’app de bureau ChatGPT sur macOS. Ses alertes se règlent dans l’app, pas dans des fichiers de configuration :

  • Settings > Notifications (Cmd+,) : choisis de ne jamais afficher les alertes de fin de tour, de les afficher uniquement quand ChatGPT est en arrière-plan ou de toujours les afficher. Des interrupteurs distincts contrôlent les notifications d’autorisation et de question.
  • Sound : un même son de notification pour les tâches terminées, les demandes d’autorisation et les questions. Choisis Default, Classic ou None ; sur macOS, tu peux aussi utiliser un son système ou un fichier que tu importes.
  • Activity : là où cette fonction est disponible, la cloche dans la barre latérale, ou Cmd+Option+U, affiche la liste des conversations non lues, en cours ou qui attendent ta réponse.

Les clés [tui] ci-dessus concernent Codex dans un terminal. La documentation d’OpenAI ne précise pas si notify ou tes propres hooks s’exécutent pour les conversations dans l’app de bureau. Ne compte donc pas sur eux dans cette app.

L’option sans configuration.

Cowork Island est une app pour macOS 14 ou version ultérieure qui réunit dans un panneau sous l’encoche tes sessions d’agents d’IA issues des outils compatibles et affiche l’état de chacune. Tu vois quelle session Codex ou Claude Code est en cours et laquelle affiche « À toi ». Les alertes font partie de cette vue.

Codex reste désactivé jusqu’à ce que tu l’actives dans Réglages, puis que tu approuves les hooks de Cowork Island dans Codex, comme à l’étape d’approbation ci-dessus. Chaque session Codex affiche ensuite son état. Par défaut, quand l’une d’elles a besoin de toi, l’île s’ouvre d’elle-même, sauf si le terminal de cette session, ou l’app ChatGPT pour ses propres conversations Codex, est déjà au premier plan. Tu peux désactiver ce comportement avec « Lors d’une question » dans Réglages. Quand une session se termine, l’île s’ouvre pendant 5 secondes par défaut. Codex dans l’app ChatGPT affiche aussi « À toi », et tu réponds dans ChatGPT. Dans l’île, tu peux autoriser ou refuser les demandes compatibles de Claude Code, ou répondre à une question à choix multiple. Avec d’autres outils, tu devras peut-être répondre dans leur app ou leur terminal.

Cowork Island n’envoie pas de notifications macOS. C’est l’île elle-même qui s’ouvre. Les sons restent désactivés jusqu’à ce que tu les actives ; le son « Autorisation requise » est gratuit et le son « Session terminée » fait partie de Pro. L’app n’utilise pas le réglage notify de Codex, donc ton script notify continue de fonctionner. Elle ajoute ses propres entrées à ~/.codex/hooks.json à côté des tiennes : garde tes hooks dans leurs propres entrées, comme dans l’extrait ci-dessus, et hors de son dossier ~/.perch, et elle les laisse en place.

L’offre gratuite affiche une carte de session à la fois. Pro affiche toutes tes sessions, te permet d’y revenir et ajoute des jauges d’utilisation détaillées, des sons de fin de session et davantage d’options de mascottes. Un essai de Pro de 7 jours se lance tout seul, une fois par Mac, sans informations de paiement. Consulte les offres et le guide d’installation.

Télécharger gratuitement

Sources.

Envoie-toi le lien de téléchargement pour plus tard.