For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Hauptnavigation
Codex

Codex use case

Mac-Telemetrie hinzufügen

Nutze Codex, um eine Mac-Funktion mit Logger zu instrumentieren, führe die App aus und prüfe anhand der Unified-Logging-Daten, ob die Aktion ausgelöst wurde.

Difficulty Fortgeschritten
Time horizon 30 min

Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.

Am besten geeignet für

  • Mac-App-Funktionen, bei denen Codex zuverlässig nachverfolgen muss, wann Fenster geöffnet, Elemente in der Seitenleiste ausgewählt, Menübefehle oder Menüleistenaktionen ausgelöst, Synchronisierungsmeilensteine erreicht oder Fallback-Pfade verwendet werden
  • Agentische Debugging-Schleifen, in denen Codex Code patchen, die App erneut ausführen, Logs prüfen und anhand von Belegen statt durch Raten über die nächste Korrektur entscheiden soll
  • Lokale Schleifen zur Erfassung von App-Sitzungen, in denen du eine kompakte Abfolge von Interaktionen und App-Lebenszyklusereignissen über mehrere Durchläufe hinweg vergleichen möchtest

Contents

    ← Alle Anwendungsfälle

    Mac-Telemetrie hinzufügen

    Nutze Codex, um eine Mac-Funktion mit Logger zu instrumentieren, führe die App aus und prüfe anhand der Unified-Logging-Daten, ob die Aktion ausgelöst wurde.

    Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.

    Fortgeschritten
    30 min

    Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.

    Fortgeschritten
    30 min

    Am besten geeignet für

    • Mac-App-Funktionen, bei denen Codex zuverlässig nachverfolgen muss, wann Fenster geöffnet, Elemente in der Seitenleiste ausgewählt, Menübefehle oder Menüleistenaktionen ausgelöst, Synchronisierungsmeilensteine erreicht oder Fallback-Pfade verwendet werden
    • Agentische Debugging-Schleifen, in denen Codex Code patchen, die App erneut ausführen, Logs prüfen und anhand von Belegen statt durch Raten über die nächste Korrektur entscheiden soll
    • Lokale Schleifen zur Erfassung von App-Sitzungen, in denen du eine kompakte Abfolge von Interaktionen und App-Lebenszyklusereignissen über mehrere Durchläufe hinweg vergleichen möchtest

    Skills und Plug-ins

    • Nutze die Skills für macOS-Telemetrie sowie zum Bauen und Ausführen, um eine strukturierte Instrumentierung mit `OSLog` hinzuzufügen, die App zu starten, den UI-Pfad zu durchlaufen und die ausgegebenen Ereignisse in der Konsole oder mit `log stream` zu überprüfen.
    Skill Why use it
    Build macOS Apps Nutze die Skills für macOS-Telemetrie sowie zum Bauen und Ausführen, um eine strukturierte Instrumentierung mit `OSLog` hinzuzufügen, die App zu starten, den UI-Pfad zu durchlaufen und die ausgegebenen Ereignisse in der Konsole oder mit `log stream` zu überprüfen.

    Einstiegs-Prompt

    Verwende das Plug-in Build macOS Apps, um für [name one Mac feature or action flow] eine schlanke Unified-Logging-Instrumentierung hinzuzufügen. Führe dann die App aus und prüfe anhand der Logs, ob diese Ereignisse in der erwarteten Reihenfolge ausgelöst werden. Vorgaben: - Verwende vorzugsweise `Logger` aus `OSLog` statt `print` und lege für diese Funktion ein eindeutiges Paar aus subsystem/category fest, damit sich die Logs leicht filtern lassen. - Protokolliere für jede wichtige Aktionsgrenze oder Zustandsänderung genau eine kurze Zeile, zum Beispiel: Fenster geöffnet, Auswahl in der Seitenleiste geändert, Menübefehl aufgerufen, Synchronisierung gestartet, Synchronisierung abgeschlossen oder Fallback-Pfad verwendet. - Halte dauerhafte Logs der Stufe `info` stabil und aussagekräftig. Verwende `debug` nur für umfangreiche lokale Details und entferne temporäre Instrumentierung vor Abschluss oder stufe sie herunter. - Protokolliere keine Geheimnisse, Authentifizierungstoken, personenbezogenen Daten oder rohen Dokumentinhalte. Falls eine Kennung protokolliert werden muss, wähle die sicherste Datenschutzannotation und begründe deine Wahl. - Baue die App, führe sie aus, durchlaufe den Funktionspfad selbst und überprüfe die Ereignisse in der Konsole oder mit einem gezielten Prädikat für `log stream`. - Wenn der Ablauf lang, sporadisch oder manuell leichter zu reproduzieren ist, speichere den gefilterten Log-Stream in einer kleinen lokalen Trace-Datei für die Sitzung. Lass mich die App bei Bedarf manuell bedienen, lies die Datei anschließend wieder ein und fasse die Zeitleiste der Ereignisse zusammen. - Wenn ein erwartetes Ereignis nicht erscheint, verschiebe die Protokollierung näher an den vermuteten Kontrollpfad, führe den Ablauf erneut aus und fahre fort, bis aus den Logs hervorgeht, was passiert ist. Liefere: - die neue Logger-Konfiguration und die genauen Ereignisse, die du hinzugefügt hast - den Konsolenfilter oder das verwendete Prädikat für `log stream` - eine kurze Zusammenfassung im Format before/after dazu, was sich nun anhand der Logs beobachten lässt - die gespeicherte Trace-Datei und eine Zusammenfassung der Zeitleiste, falls daraus eine längere Aufzeichnungssitzung wurde - ein oder zwei repräsentative Log-Zeilen, die belegen, dass der Ablauf korrekt instrumentiert ist
    Verwende das Plug-in Build macOS Apps, um für [name one Mac feature or action flow] eine schlanke Unified-Logging-Instrumentierung hinzuzufügen. Führe dann die App aus und prüfe anhand der Logs, ob diese Ereignisse in der erwarteten Reihenfolge ausgelöst werden. Vorgaben: - Verwende vorzugsweise `Logger` aus `OSLog` statt `print` und lege für diese Funktion ein eindeutiges Paar aus subsystem/category fest, damit sich die Logs leicht filtern lassen. - Protokolliere für jede wichtige Aktionsgrenze oder Zustandsänderung genau eine kurze Zeile, zum Beispiel: Fenster geöffnet, Auswahl in der Seitenleiste geändert, Menübefehl aufgerufen, Synchronisierung gestartet, Synchronisierung abgeschlossen oder Fallback-Pfad verwendet. - Halte dauerhafte Logs der Stufe `info` stabil und aussagekräftig. Verwende `debug` nur für umfangreiche lokale Details und entferne temporäre Instrumentierung vor Abschluss oder stufe sie herunter. - Protokolliere keine Geheimnisse, Authentifizierungstoken, personenbezogenen Daten oder rohen Dokumentinhalte. Falls eine Kennung protokolliert werden muss, wähle die sicherste Datenschutzannotation und begründe deine Wahl. - Baue die App, führe sie aus, durchlaufe den Funktionspfad selbst und überprüfe die Ereignisse in der Konsole oder mit einem gezielten Prädikat für `log stream`. - Wenn der Ablauf lang, sporadisch oder manuell leichter zu reproduzieren ist, speichere den gefilterten Log-Stream in einer kleinen lokalen Trace-Datei für die Sitzung. Lass mich die App bei Bedarf manuell bedienen, lies die Datei anschließend wieder ein und fasse die Zeitleiste der Ereignisse zusammen. - Wenn ein erwartetes Ereignis nicht erscheint, verschiebe die Protokollierung näher an den vermuteten Kontrollpfad, führe den Ablauf erneut aus und fahre fort, bis aus den Logs hervorgeht, was passiert ist. Liefere: - die neue Logger-Konfiguration und die genauen Ereignisse, die du hinzugefügt hast - den Konsolenfilter oder das verwendete Prädikat für `log stream` - eine kurze Zusammenfassung im Format before/after dazu, was sich nun anhand der Logs beobachten lässt - die gespeicherte Trace-Datei und eine Zusammenfassung der Zeitleiste, falls daraus eine längere Aufzeichnungssitzung wurde - ein oder zwei repräsentative Log-Zeilen, die belegen, dass der Ablauf korrekt instrumentiert ist

    Einen Logger hinzufügen, wenn Debugging zu vage wird

    Dieser Anwendungsfall eignet sich für Abläufe in Mac-Apps, bei denen „etwas ist passiert“ zu vage ist, um Fehler allein durch eine Codeüberprüfung zu finden. Lass Codex für ein bestimmtes Verhalten einige wenige aussagekräftige Einträge im Unified Logging ergänzen, die App ausführen und das Verhalten auslösen. Prüfe anschließend in der Konsole oder mit log stream, ob die erwarteten Ereignisse ausgelöst wurden.

    Verwende für diese Schleife das Plug-in „Build macOS Apps“. Sein Skill für macOS-Telemetrie ist bewusst schlank gehalten: Verwende Apples Logger, wähle ein eindeutiges Paar aus Subsystem und Kategorie, protokolliere Aktionsgrenzen und Zustandsübergänge, vermeide sensible Nutzdaten und prüfe das Ereignis, nachdem du die App lokal gebaut und ausgeführt hast, statt davon auszugehen, dass die Instrumentierung korrekt eingebunden ist.

    Warum Telemetrie bei agentischer Softwareentwicklung nützlich ist

    Aussagekräftige Logs bieten Codex nach jedem Patch eine reproduzierbare Feedbackschleife. Statt dass du jedes Fenster, jede Menüaktion oder jeden Synchronisierungsübergang manuell prüfen musst, kann der Agent die App ausführen, den Ablauf durchspielen, gefilterte Logs auswerten und anhand der Ergebnisse entscheiden, welche Codeänderung als Nächstes erforderlich ist.

    Das ist besonders bei drei agentischen Schleifen nützlich:

    • Debugging-Schleife ohne manuelles Eingreifen: Codex instrumentiert einen verdächtigen Ablauf, startet die App, klickt in der Seitenleiste oder löst einen Befehl aus, wertet die ausgegebene Log-Sequenz aus, korrigiert den Pfad für Zustandsaktualisierungen und führt denselben Ablauf erneut aus, bis Logs und UI-Verhalten übereinstimmen.
    • Schleife zur Erfassung von App-Sitzungen: Codex fügt jeweils ein Ereignis für den App-Start, das Öffnen eines Fensters, die Auswahl in der Seitenleiste sowie Start, Abschluss und Fehlschlagen eines Imports hinzu. Anschließend führt Codex eine lokale App-Sitzung durch und fasst die resultierende Zeitleiste zusammen, sodass fehlende oder in der falschen Reihenfolge auftretende Übergänge sofort auffallen.
    • Manuell gesteuerte Erfassungsschleife: Codex startet die App mit aktivierter Protokollierung und lässt einen gezielt gefilterten Log-Stream laufen, während du einen schwierigen Ablauf manuell durchspielst. Anschließend prüft Codex die erfasste Sitzung und schlägt anhand dieses Traces den nächsten Patch vor.

    Instrumentierung sparsam und filterbar halten

    Lass Codex für jeden Funktionsbereich je einen Logger einrichten, statt für jede Zustandsänderung eine dauerhafte Log-Zeile anzulegen. Funktionskategorien wie Windowing, Commands, MenuBar, Sidebar, Sync oder Import erleichtern es erheblich, die Logs beim nächsten Debugging-Durchlauf zu filtern.

    import OSLog
    
    private let logger = Logger(
      subsystem: Bundle.main.bundleIdentifier ?? "SampleApp",
      category: "Sidebar"
    )
    
    @MainActor
    func selectItem(_ item: SidebarItem) {
      logger.info("Selected sidebar item: \(item.id, privacy: .public)")
      selection = item.id
    }

    Verwende info für knappe Aktions- und Lebenszyklusereignisse, die langfristig nützlich bleiben sollen, und debug für umfangreichere lokale Zustandsdetails, die vor Abschluss der Aufgabe entfernt oder herabgestuft werden können. Füge Signposts nur hinzu, wenn du eine Zeitspanne misst, und nicht standardmäßig.

    Lass Codex das Ereignis anhand der Logs nachweisen

    Es reicht nicht, nur Aufrufe von Logger hinzuzufügen. Lass Codex die App ausführen, den instrumentierten Ablauf auslösen und dir den genauen Filter für die Konsole oder das verwendete Prädikat für log stream sowie ein oder zwei repräsentative Log-Zeilen nennen.

    log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'

    Wenn ein erwartetes Ereignis nicht erscheint, lass Codex die Protokollierung näher an den vermuteten Kontrollpfad verschieben, denselben Ablauf erneut ausführen und so lange weiterarbeiten, bis aus den Logs hervorgeht, was passiert ist. Wenn sich die Aufgabe zu einer Absturz- oder Backtrace-Analyse entwickelt, nutze stattdessen den Debugging-Workflow des Plug-ins zum Bauen und Ausführen und konzentriere die Telemetrie weiterhin auf die Aktionsgrenzen.

    Einen Sitzungs-Trace für einen späteren Codex-Durchlauf speichern

    Lass Codex bei länger dauernden oder sporadischen Fehlern einen gezielt gefilterten Log-Stream in einer kleinen lokalen Trace-Datei speichern, die Zeitleiste zusammenfassen und dieses Artefakt im Workspace ablegen. So kann ein späterer Codex-Durchlauf dieselben Belege prüfen, ohne die gesamte Sitzung aus dem Gedächtnis rekonstruieren zu müssen. Das erleichtert das Debugging über mehrere Durchläufe hinweg, wenn ein Agenten-Durchlauf einen Trace erfassen und ein weiterer das Verhalten vor und nach einem Patch vergleichen soll.

    Das funktioniert auch gut, wenn du einen Teil der Sitzung selbst steuern musst. Lass Codex die App in einer Debugging-Schleife mit geeigneter Protokollierung starten und eine gefilterte Erfassung beginnen. Codex wartet, während du das Problem manuell reproduzierst, und liest danach die gespeicherte Trace-Datei ein.

    Praxistipps

    Jeweils nur eine Funktion instrumentieren

    Konzentriere dich zunächst auf eine Seitenleiste, ein Fenster, einen Befehl oder einen Synchronisierungspfad, damit die Log-Sequenz leicht zu prüfen bleibt. Sobald dieser Pfad zuverlässig funktioniert, kann Codex dasselbe Muster auf benachbarte Abläufe ausweiten.

    Datenschutz in den Prompt aufnehmen

    Lass Codex jede protokollierte Kennung erklären und weder Geheimnisse noch personenbezogene Daten oder Rohinhalte im Unified Logging erfassen. Ein kleiner Ereigniswortschatz reicht für lokales Debugging meist aus.

    Beispielausgabe in die abschließende Zusammenfassung aufnehmen

    Repräsentative Log-Zeilen schaffen deutlich mehr Vertrauen in die Änderung als die Aussage „Telemetrie wurde hinzugefügt“. Lass Codex das Filterprädikat und eine kurze Zeitleiste der Aktionen aufnehmen, damit der nächste Agenten-Durchlauf dieselbe Prüfschleife wiederverwenden kann.

    Tech stack

    Need

    App-Protokollierung

    Default options

    OSLog Logger

    Why it's needed

    Strukturiertes Unified Logging bietet Codex eine gezielte, filterbare Feedbackschleife, ohne die Codebasis mit zahllosen Aufrufen von print zu überladen.

    Need

    Agenten-Workflow

    Why it's needed

    Die Skills des Plug-ins für Telemetrie sowie zum Bauen und Ausführen sind aufeinander abgestimmt: Instrumentiere einen Ablauf, starte die App, prüfe die Logs und optimiere anschließend die Auswahl der Ereignisse.

    Need

    Laufzeitprüfung

    Default options

    Console.app und log stream --predicate ...

    Why it's needed

    Ein konkreter Log-Filter samt Beispielausgabe ermöglicht dem Agenten eine reproduzierbare Übergabe und erleichtert es, die neue Instrumentierung über mehrere Durchläufe hinweg zu überprüfen.

    Need Default options Why it's needed
    App-Protokollierung OSLog Logger Strukturiertes Unified Logging bietet Codex eine gezielte, filterbare Feedbackschleife, ohne die Codebasis mit zahllosen Aufrufen von print zu überladen.
    Agenten-Workflow Plug-in „Build macOS Apps“ Die Skills des Plug-ins für Telemetrie sowie zum Bauen und Ausführen sind aufeinander abgestimmt: Instrumentiere einen Ablauf, starte die App, prüfe die Logs und optimiere anschließend die Auswahl der Ereignisse.
    Laufzeitprüfung Console.app und log stream --predicate ... Ein konkreter Log-Filter samt Beispielausgabe ermöglicht dem Agenten eine reproduzierbare Übergabe und erleichtert es, die neue Instrumentierung über mehrere Durchläufe hinweg zu überprüfen.

    Verwandte Anwendungsfälle