Erhalte am Mac eine Benachrichtigung, wenn Codex deine Genehmigung braucht oder fertig ist.

Codex kann dir eine Benachrichtigung senden, wenn es fertig ist oder auf dein OK wartet. Die Einstellung notify deckt aber nur den ersten Fall ab. Diese Anleitung erklärt, was die einzelnen Benachrichtigungseinstellungen von Codex auf einem Mac bewirken. Die Codebeispiele wurden anhand der Dokumentation von OpenAI geprüft.

Die Einstellung notify von Codex führt dein Programm nur aus, wenn eine Runde abgeschlossen ist, nicht bei Genehmigungsanfragen (Stand: Oktober 2026). Für Genehmigungsanfragen nutze die integrierten Terminal-Benachrichtigungen von Codex ([tui] notifications, standardmäßig aktiv, solange das Terminal im Hintergrund ist, nur in manchen Terminals als Banner) oder einen PermissionRequest-Hook in ~/.codex/hooks.json. In der ChatGPT-Desktop-App schaltest du Benachrichtigungen zu Berechtigungen unter Settings > Notifications ein.

Zuletzt aktualisiert:

Cowork Island

macOS 14 oder neuer.
Apple-Chip und Intel.
Für den kostenlosen Plan ist kein Konto nötig.

Kostenlos herunterladen

Was die einzelnen Codex-Einstellungen bewirken.

Codex kann dich auf einem Mac auf vier Arten benachrichtigen. Eine Runde ist ein Arbeitsdurchlauf: Du sendest eine Nachricht, Codex arbeitet, hält dann an und wartet auf dich. Ein Hook ist ein Befehl, den Codex zu einem festgelegten Zeitpunkt ausführt, etwa direkt bevor es dich um eine Genehmigung bittet.

Benachrichtigungseinstellungen von Codex auf einem Mac laut OpenAI-Dokumentation (geprüft am 18. Oktober 2026)
EinstellungWo du sie findestRunde abgeschlossenGenehmigung erforderlichGut zu wissen
notify~/.codex/config.tomlJaNeinAusgeschaltet, bis du sie einrichtest. Führt ein Programm deiner Wahl aus.
[tui] notifications~/.codex/config.tomlJaJaStandardmäßig eingeschaltet. Wird ausgelöst, wenn das Terminal nicht im Vordergrund ist. Zeigt nur in Terminals, die es unterstützen, ein Banner.
Hooks (Stop, PermissionRequest)~/.codex/hooks.jsonJaJaStandardmäßig eingeschaltet. Jeder neue Hook muss in /hooks als vertrauenswürdig bestätigt werden, bevor er ausgeführt wird.
ChatGPT-Desktop-AppSettings > NotificationsJaJaSeparate Schalter für Benachrichtigungen zu abgeschlossenen Runden, Berechtigungen und Fragen.

Ein häufiges Missverständnis: Du richtest notify ein und wartest dann auf eine Benachrichtigung zur Genehmigung, die nie kommt. Laut OpenAIs Konfigurationsdokumentation wird notify derzeit nur bei agent-turn-complete ausgelöst. Für Genehmigungsanfragen nutze eine der anderen drei Optionen in der Tabelle.

Beginne mit den integrierten Benachrichtigungen von Codex.

Die Terminal-Benachrichtigungen von Codex sind standardmäßig eingeschaltet. Vielleicht erhältst du sie also bereits. Sie werden nur ausgelöst, wenn das Terminal, also die App, in der Codex läuft, etwa Terminal oder iTerm2, nicht im Vordergrund ist. Wenn du die Ereignisse selbst auswählen möchtest, lege sie in deiner Konfigurationsdatei fest.

Füge den folgenden Abschnitt in ~/.codex/config.toml ein. Hat die Datei bereits einen Abschnitt [tui], füge die Schlüssel dort ein. Lege keine zweite Überschrift [tui] an. Die Terminal-Liste im Kommentar stammt aus dem Quellcode von Codex, nicht aus seiner Dokumentation (siehe unten).

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

Wenn notification_method auf auto steht, wählt Codex die Art des Signals: osc9 sendet einen speziellen Code (eine Escape-Sequenz), den manche Terminals in eine Desktop-Benachrichtigung umwandeln. bel löst die Terminal-Glocke aus. Setze notification_condition auf "always", wenn du auch Benachrichtigungen erhalten möchtest, während du im Terminal arbeitest.

Warum Terminal nur die Glocke auslöst.

OpenAIs Dokumentation nennt nicht, welche Terminals ein Banner anzeigen. Laut dem öffentlichen Quellcode von Codex, der sich ändern kann, geht die Banner-Sequenz an Ghostty, iTerm2, Kitty, Warp und WezTerm. Alle anderen Terminals erhalten nur ein Glockensignal, auch die mit macOS gelieferte App Terminal. Ein Glockensignal allein erzeugt kein Banner. In Terminal bietet Settings > Profiles > Advanced > Bell ein visuelles Signal, eine Markierung am Dock-Symbol und ein hüpfendes Dock-Symbol, solange das Fenster im Hintergrund ist. Für ein echtes Banner in Terminal nutze den weiter unten beschriebenen Hook.

In tmux kommt die Banner-Sequenz von Codex nur durch, wenn allow-passthrough eingeschaltet ist: mit on nur aus einem sichtbaren Bereich, mit all auch aus ausgeblendeten Bereichen (tmux-Handbuch). Füge diese Zeile in ~/.tmux.conf ein. Schreibe all statt on, wenn du auch Benachrichtigungen aus ausgeblendeten Bereichen erhalten möchtest:

set -g allow-passthrough on

Erhalte mit notify ein Mac-Banner, wenn eine Runde abgeschlossen ist.

notify führt ein Programm aus, wenn eine Runde abgeschlossen ist, und übergibt ihm die Details als einzelnes JSON-Argument. Das funktioniert in jedem Terminal gleich. OpenAIs Beispiel verwendet terminal-notifier, ein Homebrew-Tool eines Drittanbieters, das nicht zu macOS gehört. Das folgende Skript nutzt nur Bestandteile von macOS: Es zeigt den Anfang der letzten Antwort von Codex und den Projektordner an und spielt den Ton Glass ab.

Schritt 1. Speichere dies als neue Datei ~/.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" });
}

Schritt 2. Füge diese Zeile in deine vorhandene ~/.codex/config.toml ein, oberhalb der ersten Überschrift [section]. Ersetze YOUR_NAME durch den Namen deines Benutzerordners: Codex führt diese Liste genau so aus, wie sie geschrieben ist. Daher wird ~ nicht zum vollständigen Pfad aufgelöst (laut Codex-Quellcode, nicht laut Dokumentation).

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

Drei Dinge, durch die notify nicht funktioniert:

  • Eine zweite notify-Zeile. Eine Konfiguration darf nur eine enthalten. Ein doppelter Schlüssel verhindert, dass die Datei geladen wird. Wenn ein anderes Tool die Einstellung bereits nutzt, lass sie ein kleines Skript aufrufen, das beide Programme ausführt. Oder nutze stattdessen einen Stop-Hook, denn Hooks aus allen Dateien werden nebeneinander ausgeführt.
  • Die falsche Stelle in der Datei. Fügst du die Zeile am Ende unter einer Überschrift [section] ein, gehört sie zu diesem Abschnitt. Codex liest sie dann nicht als notify-Einstellung.
  • Eine Projektkonfiguration. Codex ignoriert notify in der projekteigenen .codex/config.toml. Die Einstellung funktioniert nur in ~/.codex/config.toml.

Wenn kein Banner erscheint, öffne Systemeinstellungen > Mitteilungen. Laut Anthropics Hook-Anleitung werden mit osascript gesendete Banner dort unter Skripteditor geführt. Du musst sie dort erlauben; macOS fragt dich nicht vorher. Auf deinem Mac kann ein anderer Name angezeigt werden.

Erhalte mit einem Codex-Hook ein Banner für Genehmigungsanfragen.

Hooks ermöglichen ein echtes Banner für Genehmigungsanfragen in jedem Terminal, auch in der App Terminal. Codex führt einen PermissionRequest-Hook direkt vor einer Genehmigungsanfrage aus und einen Stop-Hook, wenn eine Runde abgeschlossen ist. Bei Befehlen, die keine Genehmigung brauchen, wird PermissionRequest nicht ausgelöst.

Ergänze die folgenden Einträge in ~/.codex/hooks.json. Falls die Datei bereits existiert, ersetze sie nicht: Andere Tools speichern dort möglicherweise ihre Einträge (Cowork Island tut das, sobald du Codex darin einschaltest). Füge jeden der folgenden Einträge der passenden Liste innerhalb von "hooks" hinzu. Erstelle die Liste, falls sie fehlt, und belasse jeden Eintrag in seinen eigenen geschweiften Klammern.

{
  "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. Speichere die Datei, öffne Codex und gib /hooks ein.
  2. Bestätige beide neuen Einträge als vertrauenswürdig. Codex überspringt neue oder geänderte Hooks, bis du ihnen vertraust. Ein noch nicht bestätigter Hook wirkt deshalb so, als wäre er defekt.
  3. Behalte die Endung >/dev/null 2>&1 bei: Ein Stop-Hook muss JSON oder gar nichts ausgeben.

Wenn du stattdessen eine gesprochene Meldung oder eine Benachrichtigung auf dem Handy möchtest, erstellt der Generator für Benachrichtigungseinstellungen den Eintrag in deinem Browser und nennt die Datei, in die er gehört.

Codex in der ChatGPT-Desktop-App.

Seit dem 9. Juli 2026 ist die Codex-App Teil der ChatGPT-Desktop-App unter macOS. Ihre Benachrichtigungen stellst du in der App ein, nicht in Konfigurationsdateien:

  • Settings > Notifications (Cmd+,): Zeige Benachrichtigungen zu abgeschlossenen Runden nie, nur wenn ChatGPT im Hintergrund ist, oder immer an. Für Benachrichtigungen zu Berechtigungen und Fragen gibt es separate Schalter.
  • Sound: ein gemeinsamer Benachrichtigungston für abgeschlossene Aufgaben, Berechtigungsanfragen und Fragen. Wähle Default, Classic oder None. Unter macOS kannst du auch einen Systemton oder eine selbst importierte Datei verwenden.
  • Activity: Wo diese Funktion verfügbar ist, zeigt die Glocke in der Seitenleiste oder Cmd+Option+U eine Liste der Chats, die ungelesen sind, gerade laufen oder auf dich warten.

Die oben genannten [tui]-Schlüssel gelten für Codex im Terminal. OpenAIs Dokumentation sagt nicht, ob notify oder deine eigenen Hooks für Chats in der Desktop-App ausgeführt werden. Verlasse dich dort also nicht darauf.

Die Option ohne Konfiguration.

Cowork Island ist eine App für macOS 14 oder neuer, die deine KI-Agenten-Sitzungen aus unterstützten Tools in einem Panel unter der Notch bündelt und den Status jeder einzelnen zeigt. Du siehst, welche Codex- oder Claude-Code-Sitzung in Arbeit ist und welche auf „Braucht dich“ steht. Die Benachrichtigungen sind Teil dieser Ansicht.

Codex bleibt ausgeschaltet, bis du es in den Einstellungen einschaltest und anschließend die Hooks von Cowork Island in Codex erlaubst. Dabei bestätigst du sie wie oben beschrieben als vertrauenswürdig. Danach zeigt jede Codex-Sitzung ihren Status. Wenn eine Sitzung dich braucht, öffnet sich die Insel standardmäßig von selbst, außer das Terminal dieser Sitzung oder, bei Codex-Chats in der ChatGPT-App, die ChatGPT-App ist bereits im Vordergrund. Du kannst dies mit „Bei einer Frage“ in den Einstellungen ausschalten. Wenn eine Sitzung fertig ist, öffnet sich die Insel standardmäßig für 5 Sekunden. Auch Codex in der ChatGPT-App zeigt „Braucht dich“, und du antwortest in ChatGPT. Auf der Insel kannst du unterstützte Claude-Code-Anfragen erlauben oder ablehnen oder eine Multiple-Choice-Frage beantworten. Bei anderen Tools musst du unter Umständen direkt in deren App oder Terminal antworten.

Cowork Island sendet keine macOS-Mitteilungen. Die Insel selbst öffnet sich. Töne bleiben ausgeschaltet, bis du sie einschaltest. Der Ton „Genehmigung erforderlich“ ist kostenlos, der Abschlusston „Sitzung abgeschlossen“ ist Teil von Pro. Cowork Island nutzt die Einstellung notify von Codex nicht, sodass dein notify-Skript weiter funktioniert. Die App ergänzt ihre eigenen Einträge neben deinen in ~/.codex/hooks.json. Belasse deine Hooks wie im Codebeispiel oben in eigenen Einträgen und außerhalb des Ordners ~/.perch von Cowork Island, dann lässt die App sie unverändert bestehen.

Der kostenlose Plan zeigt jeweils eine Sitzungskarte. Pro zeigt alle deine Sitzungen, lässt dich zu ihnen zurückspringen und bietet zusätzlich detaillierte Nutzungsanzeigen, Abschlusstöne und mehr Maskottchen-Optionen. Automatisch startet eine 7-tägige Pro-Testphase, einmal pro Mac und ohne Zahlungsdaten. Sieh dir die Pläne und die Installationsanleitung an.

Kostenlos herunterladen

Quellen.

Schick dir den Download-Link für später.