Claude Code und Codex über Nacht: /goal einrichten
MarkdownDer Befehl /goal in Claude Code 2.1.139 und Codex CLI lässt einen KI-Agenten stundenlang autonom arbeiten. Ich erkläre die Einrichtung, echte Beispiele und wie viele Tokens das kostet.
Vollständigen Artikel lesen
Das Wichtigste
Der Befehl /goal erschien in Claude Code 2.1.139 (11. Mai 2026) und Codex CLI 0.128.0 (30. April 2026, seit dem 21. Mai stabil). Du definierst das „Fertig“-Kriterium einmal, und der Agent durchläuft selbstständig Planung, Aktion und Verifikation, bis das Kriterium erfüllt ist oder ihm die Tokens ausgehen. OpenAI zeigte öffentlich einen 25-Stunden-Lauf mit 13 Millionen Tokens. Das eignet sich für Migrationen, Benchmarks und Refactorings mit messbaren Kriterien. Es eignet sich nicht für UI-Aufgaben, Produktionsdatenbanken oder vage Aufträge wie „mach es besser“.
Informationen zur Arbeit mit Ailoot findest du in der Dokumentation.
Was ist /goal und warum wurde es 2026 eingeführt?
Das Wichtigste
Vor /goal erforderte jeder Agenten-Durchlauf ein manuelles „Weiter“. Er öffnete eine Datei, las sie, schrieb etwas, hielt an und wartete. Mit dem Befehl /goal wird einmal ein Abschlusskriterium festgelegt – der Agent entscheidet selbst, wann die Aufgabe erledigt ist, und gibt die Kontrolle erst zurück, wenn er fertig ist.
So sah unser aller Alltag vor April 2026 aus: Ich gebe Claude die Aufgabe „Migriere das Projekt von Pydantic v1 zu v2“. Es fängt an, hält nach 30 Sekunden an, ich sehe mir an, was es getan hat, schreibe „weiter“, es macht den nächsten Schritt, hält an, und ich schreibe wieder „weiter“. Bei einer großen Migration bedeutet das 200–300 manuelle „Weiter“-Eingaben. Damit beaufsichtige ich den Agenten praktisch, statt parallel anderen Code zu schreiben.
OpenAIs Analyse lautete, dass das Problem nicht die „Dummheit“ des Modells war, sondern die Architektur der Schleife. Das Modell wusste nicht, wann es aufhören sollte, und trat deshalb bei jedem Durchlauf auf die Bremse. Gibt man ihm ein „Fertig“-Kriterium, entscheidet es selbst.
So entstand /goal – ein Mechanismus im Harness, nicht im Modell.
Diese Bemerkung fiel auf der Konferenz Code with Claude in London am 19.–20. Mai 2026. Sie beschreibt, was im Monat nach dem Start von /goal in beiden Tools tatsächlich geschah.
Wie richtest du den Goal-Modus in Claude Code ein?
Das Wichtigste
Claude Code 2.1.139 wurde am 11. Mai 2026 mit dem Befehl /goal veröffentlicht. Ein kleines Modell (standardmäßig Haiku) prüft das Kriterium nach jedem Durchlauf. Ist das Kriterium nicht erfüllt, startet Claude einen weiteren Durchlauf. Das Kriterium darf bis zu 4.000 Zeichen lang sein, und pro Sitzung ist ein Ziel möglich.
Ein minimales Beispiel aus der offiziellen Dokumentation von Anthropic:
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
Dieser Befehl startet den Agenten mit einem Ziel im Hintergrund. Claude findet die PRs, gleicht sie mit CHANGELOG.md ab, ergänzt fehlende Zeilen und hält an, sobald das Kriterium erfüllt ist.
Im interaktiven Modus gib einfach /goal gefolgt von der Bedingung ein:
/goal all pytest tests pass and mypy strict reports zero errors
Was Claude als Nächstes tut:
- Nach jedem Durchlauf erhält ein separates, schnelles Modell (standardmäßig Haiku) die aktuelle Bedingung und den Gesprächsverlauf
- Dieses Modell antwortet mit „Ja“ oder „Nein“ und einer kurzen Begründung
- Lautet die Antwort „Nein“, startet Claude automatisch einen weiteren Durchlauf, ohne dir die Kontrolle zurückzugeben
- Lautet die Antwort „Ja“, wird das Ziel gelöscht und die Kontrolle an dich zurückgegeben
Nach jedem Durchlauf prüft ein kleines, schnelles Modell, ob die Bedingung erfüllt wurde. Ist sie es nicht, startet Claude einen weiteren Durchlauf, ohne dir die Kontrolle zurückzugeben.
Harte Grenzen, von denen du erst erfährst, wenn du auf sie stößt:
/goalfunktioniert nur in Arbeitsverzeichnissen, für die der Vertrauensdialog bestätigt wurde. Auf einem neuen Rechner schlägt der Befehl fehl, wenn Claude sich dieses Verzeichnis noch nicht gemerkt hat- In Unternehmen mit
disableAllHooksoderallowManagedHooksOnlyist der Befehl nicht verfügbar - Die Bedingung darf bis zu 4.000 Zeichen lang sein
- Pro Sitzung kann nur ein Ziel aktiv sein. Ein neues
/goalsetzt das alte zurück - Mit
--resumebleibt die Bedingung erhalten, aber die Zähler für Durchläufe, Zeit und Tokens werden zurückgesetzt
Steuerungsbefehle:
/goalohne Argument – aktuellen Status anzeigen/goal clear(oderstop,off,reset,none,cancel) – Ziel löschen
Anthropic zufolge sind die Kosten der Auswertung „im Vergleich zu den Kosten des Hauptdurchlaufs normalerweise vernachlässigbar“. Haiku wertet das Kriterium und den Gesprächsverlauf aus und ruft keine Tools auf. Die Prüfung ist daher günstig; teuer sind die Durchläufe des Hauptmodells.
Wie richtest du /goal in Codex CLI ein?
Das Wichtigste
Codex CLI 0.128.0 führte /goal am 30. April 2026 als experimentelle Funktion ein. Am 21. Mai wurde der Modus in Version 26.519 / npm 0.133.0 stabil. Er verwendet zwei Prompt-Vorlagen – continuation.md („weiter“) und budget_limit.md („stoppen“). Das Ziel ist an den Thread gebunden und bleibt nach Neustarts erhalten.
Der Befehl sieht genauso aus wie in Claude:
codex
> /goal all vitest tests pass and there are no eslint errors
Codex bietet mehr Steuerungsmöglichkeiten für Ziele:
| Befehl | Funktion |
|---|---|
/goal condition | ein Ziel festlegen |
/goal | Status anzeigen |
/goal pause | pausieren |
/goal resume | fortsetzen |
/goal edit | Bedingung ändern (mit GA) |
/goal clear | Ziel löschen |
Der wichtigste Unterschied zu Claude: Codex prüft selbst, ob es „fertig“ ist, statt ein separates Modell dafür einzusetzen. Nach jedem Durchlauf fügt Codex automatisch die Vorlage continuation.md aus dem Repository openai/codex in den Kontext ein. Wörtlich übersetzt:
„Arbeite weiter auf das aktive Thread-Ziel hin. Wiederhole keine bereits erledigten Arbeiten. Wähle die nächste konkrete Handlung, die dem Ziel näherkommt. Markiere das Ziel erst dann als erreicht, wenn eine Prüfung zeigt, dass es tatsächlich erfüllt wurde und keine erforderlichen Arbeiten mehr ausstehen.“
Wenn sich die Tokens ihrem Limit nähern, wird eine zweite Vorlage eingefügt – budget_limit.md:
„Das Ziel hat sein Token-Limit erreicht. Beginne keine umfangreichen neuen Arbeiten. Schließe diesen Durchlauf so bald wie möglich ab: Fasse nützliche Fortschritte zusammen, benenne ausstehende Arbeiten und Hindernisse und gib dem Nutzer einen klaren nächsten Schritt.“
Die Logik ist dieselbe: „Behaupte nicht, etwas getan zu haben, das du nicht getan hast.“ Die Fortsetzung verlangt, nur dann weiterzumachen, wenn das Ziel tatsächlich noch nicht erreicht ist. budget_limit verlangt den Stopp, aber eine ehrliche Beschreibung dessen, was noch aussteht.
Anders als bei Claude ist das Ziel in Codex an den Thread statt an die Sitzung gebunden. Du kannst das Terminal schließen und am Morgen wieder öffnen. /goal resume setzt dasselbe Ziel mit denselben Fakten im Speicher fort. Das ist nützlich für Durchläufe, die man nach dem eigenen Zeitplan in Abschnitte aufteilt.
Worin unterscheiden sich /goal in Claude Code und /goal in Codex?
Das Wichtigste
Claude trennt Autor und Prüfer: Das Hauptmodell schreibt Code, ein separates kleines Modell beurteilt ihn. Codex prüft als einzelner Agent seine eigene Arbeit und erinnert sich: „Behaupte nicht, etwas getan zu haben, das du nicht getan hast.“ Die Architekturen unterscheiden sich, aber das Risiko einer Endlosschleife ist dasselbe.
Dieser Unterschied wird in Vergleichen am häufigsten übersehen. Sehen wir ihn uns genauer an.
| Aspekt | Claude Code /goal | Codex /goal |
|---|---|---|
| Veröffentlichung | v2.1.139, 11. Mai 2026 | v0.128.0, 30. April 2026 (experimentell) → v0.133.0 / 26.519, 21. Mai 2026 (stabil) |
| Zielbereich | Sitzung | Thread (bleibt nach Neustarts erhalten) |
| Steuerung | set, clear (+ Aliasse) | set, view, pause, resume, edit, clear |
| Wer prüft, ob es „fertig“ ist | Separates Modell (standardmäßig Haiku) | Derselbe Agent, über einen eingefügten Prompt |
| Dateizugriff der Auswertung | Nein; sie beurteilt nur anhand des Gesprächstextes | Ja; sie kann Dateien, Tests und Logs prüfen |
| Budget | Im Bedingungstext: „oder nach 20 Durchläufen stoppen“ | Integriertes Token-Limit + automatisches Einfügen von budget_limit.md |
| Harte Ausgabenobergrenze | Keine; nur das Abonnementlimit | Keine; nur das Abonnementlimit |
| Länge der Bedingung | Bis zu 4.000 Zeichen | Nicht angegeben |
| Verfügbarkeit | Interaktiver Modus, -p, Desktop-App, Remote Control | App, IDE-Erweiterung, CLI, ACP-Clients |
Der konzeptionelle Unterschied ist, dass Claude die Schleife als Qualitätsvertrag (externer Prüfer) behandelt, während Codex sie als Ausführungsmechanismus behandelt (der Agent verwaltet sich selbst).
Praktisch bedeutet das: Wenn das „Fertig“-Kriterium unparteiisch beurteilt werden soll, wähle Claude. Wenn der Agent bei der Auswertung Dateien und Logs prüfen können soll, wähle Codex.
Mehr über die Tools erfährst du im Leitfaden zu Codex und Claude Code.
Echtes Beispiel: Migration von Pydantic v1 zu v2 in 31 Stunden
Das Wichtigste
Codex /goal schloss die Migration von 14.000 Zeilen eines internen Dienstes von Pydantic v1 zu v2 in 31 Stunden Echtzeit ab, verteilt auf vier Sitzungen. Die Kosten betrugen ungefähr 44 $ mit gpt-5.3-codex.
Die Aufgabe lautete: „Migriere von Pydantic v1 zu v2; alle pytest-Tests müssen bestehen und mypy strict muss null Fehler melden.“
Was geschah:
- Sitzung 1 (8 Stunden) – Codex analysierte die Imports, schrieb
BaseModel-Deklarationen um und richtete mypy ein - Sitzung 2 (10 Stunden) – Validatoren wurden umgeschrieben und etwa 200 Tests schlugen fehl
- Sitzung 3 (7 Stunden) – die Tests wurden repariert und zirkuläre Abhängigkeiten entdeckt
- Sitzung 4 (6 Stunden) – die übrigen mypy-Fehler und Regressionen wurden behoben
Tokenkosten:
„Gesamtzeit: etwa 31 Stunden über vier Sitzungen. Gesamte Tokenkosten von Codex zu den Tarifen von gpt-5.3-codex: etwa $44.“
Den größten Anteil am Preis haben die Output-Tokens von gpt-5.3-codex mit 14 $ pro Million. Damit kosten 31 Stunden autonomer Arbeit etwa so viel wie ein ChatGPT-Plus-Abonnement für mehrere Wochen.
Was der Agent nicht selbst erledigte:
- Er schrieb keine Migrationsdokumentation für das Team (Codex verstand nicht, dass diese zur „Migration“ gehörte)
- Er aktualisierte keine Konfigurationsdateien für die Veröffentlichung mit der neuen Pydantic-Version
- Er übersah eine Produktionsregression, die erst einen Tag später entdeckt wurde
Mit anderen Worten: /goal erledigte 95 % der Arbeit; die übrigen 5 % müssen weiterhin von Hand erledigt werden. Das ist bei der aktuellen Generation normal und kein Grund, das Tool nicht zu verwenden.
14 Stunden über Nacht an einem macOS-Treiber arbeiten
Das Wichtigste
Treiber sind als Aufgabenklasse schlecht für interaktive Arbeit geeignet, passen aber gut zu lang laufenden Schleifen.
Die Aufgabenarten, bei denen dieser Ansatz den größten Nutzen bietet:
- Low-Level-Arbeiten, bei denen eine Iteration samt Prüfung Minuten dauert (Kompilieren, Tests ausführen)
- Migrationen mit klaren formalen Kriterien (Typen, Tests, Lint)
- Benchmarks und Optimierungen mit messbaren Ergebnissen
- Dokumentation und Changelogs mit klarer Struktur
Claude /goal erledigt das genauso gut. Für Treiber wird jedoch häufiger Codex gewählt, weil es Dateien und Logs selbst prüft, statt sich auf einen externen Prüfer zu verlassen.
Was kostet es, und wie vermeidest du, über Nacht deine Tokens aufzubrauchen?
Das Wichtigste
/goal hat keine harte Ausgabenobergrenze – nur die Limits deines Tarifs. Eine echte Stunde mit Codex kostet mit gpt-5.3-codex etwa 1,50–3 $. Claude ist im Betrieb teurer und in der Auswertung günstiger. Die einzige Schutzmaßnahme ist, direkt in die Bedingung „oder nach N Durchläufen stoppen“ zu schreiben.
Zahlen aus öffentlichen Berichten:
| Durchlauf | Dauer | Tokens | Kosten |
|---|---|---|---|
| Demo des OpenAI-Design-Tools | 25 Stunden | 13M | (interner Durchlauf) |
| Pydantic v1→v2 | 31 Stunden, 4 Sitzungen | ~3,1M Output | ~$44 |
| Sprachinterview-System | insgesamt 6 Stunden 44 Minuten (41 Minuten Rechenzeit) | 6,8 Millionen Input, 94 % gecacht | - |
| Font-Smoke-Test | 5 Minuten | 188.832 | weniger als 5 % des Wochenkontingents |
Das Wichtigste: Weder Claude Code noch Codex bietet eine harte Grenze wie „Stoppe die Ausgaben bei 𝑁 $“. Es gibt drei Schutzmaßnahmen:
- Abonnementlimits – Pro, Max oder Enterprise. Beim Max-Tarif von Anthropic (100 $/Monat) liegt ein 14-stündiger Lauf über Nacht innerhalb des Wochenkontingents, mit reichlich Spielraum
- Textlimit in der Bedingung – schreibe „oder nach 20 Durchläufen stoppen“ direkt in
/goal. Der Claude-Prüfer liest dies und schließt das Ziel ab - Token-Limit in Codex – ein integrierter Mechanismus, der
budget_limit.mdeinfügt, wenn die Tokens ausgehen
Was die Rechnung über Nacht in die Höhe treibt:
- Ein vages Kriterium wie „mach es praktischer“ – der Agent wird nie anhalten, weil der Prüfer nicht weiß, was „besser“ bedeutet
- Zugriff auf externe APIs ohne Stubs – jeder erneute Versuch kostet Tokens
- Ein langer Kontext – nach 6,7 Millionen Tokens setzt die Kontextkomprimierung ein, wobei ein Teil des Gedächtnisses verloren geht
Mehr zum Sparen erfährst du in den Anleitungen wohin die Claude-Code-Tokens gehen und wie du dein Limit nicht aufbrauchst.
Wann solltest du /goal NICHT verwenden: 5 Situationen
Das Wichtigste
Vage Kriterien wie „mach es ansehnlich“, Änderungen an einer einzelnen Zeile, Produktionsdatenbanken mit Nutzerdaten, sicherheitskritische Änderungen und Aufgaben mit unklaren externen Abhängigkeiten. In all diesen fünf Situationen bleibt der Agent entweder in einer Schleife stecken oder verbraucht sinnlos Tokens.
OpenAIs Dokumentation nennt ausdrücklich, was man NICHT tun sollte:
- Änderungen an einer einzelnen Zeile –
/goalzum Umbenennen einer Variablen zu verwenden kostet mehr, als es von Hand zu tun - Vage Ziele – „Leistung verbessern“, „den Code sauberer machen“, „es praktischer machen“. Der Prüfer hat kein Kriterium, also dreht sich der Agent endlos im Kreis
- Produktionsdatenbanken mit Nutzerdaten – der Agent könnte eine Migration beschädigen, und eine Wiederherstellung aus einem Backup kostet mehr als jede mögliche Ersparnis
- Sicherheitsänderungen – Authentifizierung, Verschlüsselung, Zahlungsabwicklung. Hier muss ein Mensch jeden Commit prüfen
- Externe APIs ohne Stubs – jeder Netzwerkausfall kostet Tokens und liegt außerhalb deiner Kontrolle
Was solltest du tun, wenn der Agent stecken bleibt?
Das Wichtigste
Ein Zeichen für eine Schleife: Der Agent bearbeitet dieselbe Stelle 3–4 Durchläufe lang und macht die Änderungen dann rückgängig. Unterbrich ihn mit Ctrl+C, prüfe das Log und formuliere dann entweder das Kriterium strenger oder beschränke die Aufgabe auf einen Teil. In Claude hilft /goal clear; in Codex verwende /goal pause und bearbeite die Bedingung.
So erkennst du eine Schleife schnell:
- Der Agent bearbeitet dieselben Dateien über 3+ Durchläufe hinweg und setzt sie auf ihren vorherigen Stand zurück
- Im Log erscheinen wiederholt Fehler, auf die er bereits reagiert hat
- Für dich sieht es so aus, als sei die Bedingung erfüllt, aber der Agent sagt „nicht erfüllt“
- Der Tokenverbrauch pro Durchlauf steigt, aber der Code macht keine Fortschritte
So gehst du vor:
- In Claude Code:
/goal clear, dann die Bedingung präziser formulieren - In Codex:
/goal pause, den aktuellen Thread prüfen, die Bedingung mit/goal editändern und dann/goal resume - In beiden: Prüfen, ob sich das Kriterium tatsächlich verifizieren lässt (ein Befehl gibt Exit-Code 0 zurück oder erzeugt eine bestimmte Ausgabe)
Oft liegt die Ursache der Schleife in der Aufgabe selbst, nicht im Agenten. Die Bedingung „alle Tests bestehen“ setzt voraus, dass die Tests überhaupt bestehen können. Bei einem tiefgreifenden Architekturproblem im Code kreist der Agent immer wieder um das Symptom.
„Fertig“-Kriterien: Aufgabendisziplin für /goal
Das Wichtigste
Ein gutes Kriterium ist ein Befehl, der den Exit-Code 0 oder eine bestimmte Ausgabe zurückgibt. „Alle Tests bestanden“ funktioniert. „Der Code ist sauberer“ funktioniert nicht. Am besten kombiniert man eine formale Prüfung mit einer messbaren Kennzahl – zum Beispiel Tests plus Mindestabdeckung.
OpenAI formuliert diese Regel in seinem offiziellen Codex Cookbook klar:
Ein Ziel gilt nicht allein deshalb als abgeschlossen, weil das Modell es für abgeschlossen hält. Ein Ziel ist erst abgeschlossen, wenn das Ergebnis anhand von Dateien, Tests, Logs, Benchmarks oder anderen konkreten Artefakten geprüft wurde.
Vorlagen für Kriterien, die sich bewähren:
| Kriterientyp | Formulierung |
|---|---|
| Tests | „pytest tests/ gibt Exit-Code 0 zurück und die Abdeckung beträgt mindestens 80 %“ |
| Typen | „mypy strict meldet null Fehler in src/“ |
| Lint | „eslint . gibt für alle geänderten Dateien Exit-Code 0 zurück“ |
| Build | „npm run build wird erfolgreich und ohne TypeScript-Fehler abgeschlossen“ |
| Benchmark | „k6 run perf test zeigt p95 unter 200 ms“ |
| Diff | „git diff zeigt Änderungen nur in den Dateien X, Y, Z“ |
| Kombination | „pytest ist grün UND mypy strict meldet null Fehler UND ruff check ist erfolgreich“ |
Das Beispiel kombiniert mehrere Prüfungen: Tests, mypy und Lint. Ist auch nur eine Prüfung noch rot, wird das Ziel nicht abgeschlossen. Der Prüfer kann nicht schummeln.
Anti-Muster:
- „Der Code ist besser“
- „Die Benutzerfreundlichkeit hat sich verbessert“
- „Die Leistung hat sich verbessert“
- „Die Dokumentation ist vollständig“
Der Unterschied zwischen „funktioniert“ und „funktioniert nicht“ liegt in der Überprüfbarkeit. Ein Kriterium, das sich nicht mit einem Befehl prüfen lässt, lässt sich überhaupt nicht prüfen. Das meint OpenAI auch mit „Langzeithorizont-Kohärenz“: Ein Agent kann lange nachdenken, aber nicht selbst entscheiden, was als „gut genug“ gilt.
Du kannst die Idee „ein Prompt – ein Ergebnis“ an einem echten Projekt ausprobieren: Setze /goal, formuliere ein Kriterium, führe es aus und analysiere, was schiefgelaufen ist.
Quellen
Lerne Ailoot kennen.
Weitere Details
Fragen und Antworten
Was ist ein brauchbares Abschlusskriterium für /goal?
Benenne ein prüfbares Ergebnis: Test, Typprüfung, Build oder Benchmark samt erwarteter Ausgabe. Verknüpfe nötige Prüfungen ausdrücklich und begrenze erlaubte Dateien. „Mach es besser“ gibt dem Agenten keinen messbaren Haltepunkt.
Was tue ich, wenn der Agent dieselben erfolglosen Änderungen wiederholt?
Unterbrich den Lauf und prüfe das Protokoll. Werden dieselben Dateien ständig geändert und zurückgesetzt, grenze die Aufgabe ein oder präzisiere das Kriterium. Prüfe vor dem Fortsetzen, ob die geforderten Prüfungen überhaupt bestehen können.