DEV Community

boluo
boluo

Posted on

Codex CLI unter Windows

Installation, Anmeldung und Überprüfung eines Codex-Projekts

„Die Installation ist fertig“ ist eine schlechte Abnahmebedingung für einen Coding-Agenten. Sie sagt nichts darüber aus, ob der richtige Dienst angesprochen wird oder ob das Ergebnis im Projekt landet. Für diese Anleitung beginnen wir deshalb mit einer kleinen Spezifikation: Eine lokale HTML-Seite soll einen Zähler anzeigen, ihn erhöhen und wieder auf null setzen können.

Wir richten dafür Codex CLI unter Windows ein und verbinden den Client über einen eigenen Provider mit Crazyrouter. Die Verbindung bleibt Teil der technischen Aufgabe: Schlüsselquelle, Modell-ID und Responses-Endpunkt werden ausdrücklich geprüft. Preisversprechen, Empfehlungen für unbekannte Konten oder behauptete erfolgreiche Modellaufrufe ersetzen diese Prüfung nicht.

Der Text ist auf Deutsch; die Protokollfelder und Befehle bleiben in ihrer tatsächlichen Schreibweise. Du kannst den gesamten Ablauf ohne Framework nachvollziehen. Eine installierte CLI brauchst du nicht erneut einzurichten, nur um jeden Absatz der Anleitung abzuarbeiten.

1. Erst festlegen, woran die Aufgabe scheitern könnte

Bevor ein Agent etwas baut, sollte klar sein, was du selbst überprüfen kannst. Für unseren Zähler gelten drei sichtbare Anforderungen: Beim Öffnen steht dort null; ein Klick erhöht den Wert um eins; Zurücksetzen stellt unabhängig vom bisherigen Wert null her. Speichern zwischen Browserbesuchen gehört ausdrücklich nicht zum Auftrag.

Diese Begrenzung macht einen Unterschied. Würden wir gleichzeitig Speicherung, Anmeldung und Synchronisation verlangen, könnte ein Fehler an vielen zusätzlichen Stellen entstehen. Ein einzelnes HTML-Dokument reicht dagegen aus, um Dateizugriff, generierten Code und Browserinteraktion zu untersuchen.

Prüfung Beobachtung, die wir benötigen Was dadurch noch offenbleibt
Programmstart Version und Hilfe erscheinen Zugang zum Modell
API-Probe Ein kurzer Text wird tatsächlich geliefert Vollständiges Agentenverhalten
CLI-Dialog Antwort über den vorgesehenen Provider Schreibberechtigung
Datei index.html liegt im Übungsordner Korrekte Bedienung
Interaktion Erhöhen und Zurücksetzen funktionieren Eignung für andere Projekte

Die Tabelle enthält Sollbedingungen, keine vorab ausgefüllten Testergebnisse. Ohne eigene gültige Zugangsdaten lässt sich der entfernte Teil nicht als bestanden markieren. Auch ein lokal simulierter HTTP-Responder könnte lediglich die Form eines Skripts prüfen, nicht dein Konto authentifizieren.

Lege dir eine kurze Notiz mit Version, Modell-ID und beobachtetem Ergebnis an. Damit kannst du nach einer Änderung dieselbe Aufgabe wiederholen. Die API-Key-Zeichenfolge gehört nicht in diese Notiz.

2. Den Windows-Unterbau vorbereiten

Wenn du noch nie mit PowerShell gearbeitet hast, führe diesen Abschnitt vollständig durch. Er erklärt auch Eingabeaufforderung und Zeilenumbrüche. Wenn die Werkzeuge bereits vorhanden sind, reichen die beschriebenen Versions- und Pfadprüfungen.

PowerShell öffnen und Befehle richtig einfügen

Suche im Windows-Startmenü nach PowerShell und öffne zunächst ein normales Fenster. Im Windows Terminal kannst du ein PowerShell-Profil auswählen. Ein Administratorfenster ist keine allgemeine Voraussetzung für jede Zeile dieser Anleitung; zusätzliche Rechte werden erst behandelt, wenn ein bestimmter Einrichtungsschritt sie verlangt.

Die Zeile mit PS und dem aktuellen Pfad ist die Eingabeaufforderung. Sie gehört nicht zum Befehl. Kopiere ausschließlich den Inhalt eines Codeblocks und drücke Enter.

Beginne mit einer Zeile, warte auf das Ergebnis und fahre dann fort. Wenn zwei Installationsbefehle ohne Zeilenumbruch aneinandergeraten, entsteht daraus kein gültiger längerer Befehl. Bei mehrzeiligen Blöcken mit Klammern muss dagegen der vollständige Block zusammenbleiben.

Zum Einfügen funktioniert häufig Strg + V, alternativ die rechte Maustaste oder Strg + Umschalt + V. Erscheint statt des normalen Prompts ein >>, erwartet PowerShell möglicherweise das Ende einer Zeichenkette oder eines Ausdrucks. Mit Strg + C kannst du diese unvollständige Eingabe abbrechen und sauber neu beginnen.

Die Endung .cmd verwenden wir bewusst. npm installiert unter Windows verschiedene Starter. PowerShell kann sonst einen Starter mit .ps1 auswählen, dessen Ausführung durch eine Richtlinie blockiert wird. Mit npm.cmd und codex.cmd benennen wir ausdrücklich die Windows-Befehlsdatei. Dafür muss nicht pauschal die Skriptrichtlinie gelockert werden.

Eine weitere Grenze wirst du später sehen: In PowerShell stehen Systembefehle, im geöffneten Codex-Dialog stehen deine Aufgaben in natürlicher Sprache. Vor jeder Eingabe lohnt sich ein kurzer Blick darauf, welches der beiden Programme gerade auf Text wartet.

Node.js installieren und die Umgebung kontrollieren

Bereits vorhandene Installation erkennen

node --version
npm.cmd --version
Enter fullscreen mode Exit fullscreen mode

Führe die beiden Zeilen einzeln aus. Wenn Node und npm jeweils eine Versionsnummer liefern, kannst du direkt zum nächsten Abschnitt wechseln. Es ist nicht nötig, eine zweite Kopie zu installieren, nur weil ein Screenshot eine andere Nummer zeigt.

PowerShell findet den Befehl node noch nicht

Die Oberfläche im Bild ist chinesisch. Relevant ist die fehlgeschlagene Programmsuche, noch nicht die spätere API-Verbindung.

Wird node nicht erkannt, ist entweder Node.js noch nicht vorhanden oder das Fenster kennt den neuen Suchpfad noch nicht. An dieser Stelle helfen Änderungen an Modellnamen und API-Schlüsseln nicht, denn die Anfrage erreicht noch keinen Anbieter.

Den passenden Windows-Download auswählen

Öffne die Node.js-Downloadseite. Wähle LTS, Windows und die passende Architektur. Ob dein Rechner x64 oder ARM64 verwendet, lässt sich in den Windows-Systeminformationen beziehungsweise unter „Info“ nachsehen.

Gesucht ist ein Installationspaket mit der Endung .msi. Befehle für Docker beschreiben eine andere Betriebsart und gehören nicht zu diesem Windows-Ablauf. Du musst weder einen Container starten noch dafür erst eine zusätzliche Entwicklungsumgebung aufbauen.

Lass im Installationsassistenten npm und die Einbindung in PATH aktiviert. Die zusätzlichen Werkzeuge zum Kompilieren nativer Module sind für diese Einführung nicht erforderlich. Lies die angebotenen Komponenten, statt vorsorglich jede optionale Entwicklungsumgebung mitzuinstallieren.

Ein neues Fenster ist Teil der Prüfung

Schließe nach der Installation das bisherige Terminal und öffne es neu. Bei einem Terminal innerhalb eines Editors kann ein Neustart des Editors nötig sein, weil dessen Prozesse die alte Umgebung weitergeben.

Node.js liefert eine Versionsnummer zurück

Die abgebildete Nummer ist ein Beispiel. npm muss zusätzlich geprüft werden.

Wiederhole die Versionsabfragen. Bleibt die Programmsuche erfolglos, kontrolliere den tatsächlichen Installationsordner und PATH. Ändere dabei nicht gleichzeitig Netzwerk, Schlüssel und Provider, sonst lässt sich eine Verbesserung später keinem einzelnen Schritt zuordnen.

Codex installieren und den Starter finden

npm.cmd install -g @openai/codex@latest
Enter fullscreen mode Exit fullscreen mode
codex.cmd --version
codex.cmd --help
Enter fullscreen mode Exit fullscreen mode

Warte, bis die npm-Installation beendet ist, bevor du die beiden Prüfkommandos ausführst. -g richtet das Paket als globales npm-Werkzeug ein. Es bedeutet nicht, dass der gesamte spätere Arbeitsablauf mit Administratorrechten laufen soll. latest bezeichnet ein Veröffentlichungslabel und keine dauerhaft feste Versionsnummer.

Eine Ausgabe mit codex-cli bestätigt, dass sich der Starter ausführen lässt. Die Hilfe zeigt außerdem, welche Unterbefehle die installierte Ausgabe kennt. Keine dieser beiden Abfragen testet bereits eine Modellantwort.

Hinweise mit notice oder WARN sollten gelesen werden, sind aber nicht automatisch ein Abbruch. Für eine Diagnose sind der eigentliche Fehlertext und die anschließende Funktionsprüfung aussagekräftiger als die bloße Farbe oder Sprache der Ausgabe.

Wenn Windows den Starter nach der Installation weiterhin nicht findet, öffne ein frisches Fenster und prüfe:

Get-Command codex.cmd -ErrorAction SilentlyContinue
npm.cmd config get prefix
Enter fullscreen mode Exit fullscreen mode

Der npm-Präfix zeigt den globalen Werkzeugordner. Öffne ihn im Explorer und suche codex.cmd. Existiert die Datei, aber die erste Abfrage findet nichts, kontrolliere den Benutzer-Path. Fehlt auch die Datei, lies die Installationsergebnisse erneut.

Ergänzt wird der Ordner, nicht der vollständige Dateiname. Bestehende Path-Einträge bleiben erhalten. Nach einer Änderung ist wiederum ein neuer Terminalprozess nötig. Bei mehreren Installationsmethoden kann später Get-Command codex* -All helfen, versehentlich verwendete ältere Starter zu erkennen.

Danach sollte Windows die CLI starten können. Noch wurde kein Zähler gebaut und keine bestimmte API-Berechtigung nachgewiesen. Halte diese lokale Prüfung im Protokoll getrennt von den nächsten Schritten.

3. Einen eindeutigen Arbeitsbereich für das Experiment schaffen

$projectDir = Join-Path $env:USERPROFILE 'CodexProjects\crazyrouter-demo'
New-Item -ItemType Directory -Path $projectDir -Force | Out-Null
Set-Location -LiteralPath $projectDir
Get-Location
Enter fullscreen mode Exit fullscreen mode

Prüfe den ausgegebenen Pfad. Für einen Test ist der Ort ein Teil der Ausgangsbedingungen: Eine Datei in einem anderen Ordner zählt nicht automatisch als Ergebnis dieser Aufgabe. Der Verzeichnisname richtet übrigens keinen Provider ein; er dient nur deiner Organisation.

Existiert die Übungsmappe bereits, sieh zuerst nach ihren Dateien. -Force in diesem Block löscht ihren Inhalt nicht. Wenn dort eine ältere index.html liegt, entscheide bewusst, ob sie ersetzt werden darf. Sonst könntest du nach einer gescheiterten Neuerstellung versehentlich eine alte funktionierende Seite prüfen.

Lass das PowerShell-Fenster offen. $projectDir und die folgenden Testvariablen gelten für diese Sitzung. Ein neuer Tab erhält nicht automatisch die temporären Werte aus einem anderen Tab. Bei einem Neustart führst du die benötigten Vorbereitungsblöcke erneut aus.

Du musst Codex nicht in diesen Ordner installieren. Die globale npm-Installation stellt das Werkzeug bereit; der aktuelle Ordner bestimmt das Projekt. Diese Unterscheidung bleibt auch später bei mehreren Projekten nützlich.

4. Die Testdaten aus dem eigenen Konto beziehen

Der API-Key und der Modellbezeichner sind Eingaben, keine Konstanten aus einem Screenshot. Erzeuge einen eigenen Token im Crazyrouter-Konto und kontrolliere dessen Rechte. Die Dokumentation zum Einstieg beschreibt den Zugang zur Tokenverwaltung.

Eine ChatGPT-Anmeldung ist kein Ersatz für diesen Token. Ebenso gehört ein offizieller OpenAI-Key zu einem anderen Kontozugang. Für unseren Provider müssen Aussteller, Zieladresse und Authentifizierungsverfahren zusammenpassen.

$crazySecret = Read-Host 'Crazyrouter API Key' -AsSecureString
$env:CRAZYROUTER_API_KEY = [System.Net.NetworkCredential]::new('', $crazySecret).Password
$crazySecret.Dispose()
Remove-Variable crazySecret
[bool]$env:CRAZYROUTER_API_KEY
Enter fullscreen mode Exit fullscreen mode

Die verdeckte Eingabe verhindert, dass der rohe Wert als Bestandteil eines eingegebenen Shellbefehls erscheint. Die abschließende boolesche Abfrage meldet nur, ob der Prozess einen Wert enthält. Sie kann auch bei einer falschen Zeichenfolge True liefern.

Der Schlüssel wird hier nicht dauerhaft in den Benutzereinstellungen gespeichert. Das ist für diesen Versuch beabsichtigt: Wir wissen genau, aus welcher vorbereiteten Sitzung Codex gestartet werden soll. Umgebungsvariablen sind deshalb trotzdem kein universeller Geheimnisspeicher; veröffentliche ihren Inhalt nicht.

$crazyBase = 'https://api.crazyrouter.com/v1'
$crazyHeaders = @{ Authorization = "Bearer $env:CRAZYROUTER_API_KEY" }
$crazyModels = Invoke-RestMethod -Method Get -Uri "$crazyBase/models" -Headers $crazyHeaders
$crazyModels.data | Select-Object -ExpandProperty id
Enter fullscreen mode Exit fullscreen mode
$crazyModel = Read-Host 'Model ID'
Enter fullscreen mode Exit fullscreen mode

Übernimm bei Model ID die genaue Kennung eines für Codex und Responses geeigneten Modells, das dein Konto nutzen darf. Ein Eintrag im Modellkatalog belegt zunächst nur die Sichtbarkeit. Die Probe im nächsten Teil muss zeigen, ob eine konkrete Generierung funktioniert.

Besonders bei gemischten Katalogen lohnt sich dieser Zwischenschritt: Ein Bild- oder Audiomodell ist nicht allein wegen seines Vorkommens in der Liste für einen Coding-Agenten geeignet. Ein vertrauter Produktname wiederum muss nicht der exakte API-Identifier sein.

Wenn du nach der Abfrage den Key austauschst, führe auch die Zuweisung des Headers erneut aus. $crazyHeaders enthält den Wert vom Zeitpunkt seiner Erstellung. Es ist keine dauerhafte Verknüpfung, die bei jeder Änderung der Umgebungsvariable automatisch neu berechnet wird.

5. Die Verbindung als überprüfbare Konfiguration speichern

$codexConfigDir = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE '.codex' }
New-Item -ItemType Directory -Path $codexConfigDir -Force | Out-Null
$codexConfigFile = Join-Path $codexConfigDir 'config.toml'
if (Test-Path -LiteralPath $codexConfigFile) {
    $backupFile = $codexConfigFile + '.' + (Get-Date -Format 'yyyyMMdd-HHmmss') + '.bak'
    Copy-Item -LiteralPath $codexConfigFile -Destination $backupFile
}
notepad.exe $codexConfigFile
Enter fullscreen mode Exit fullscreen mode

Der Block sucht den Benutzerkonfigurationsort über CODEX_HOME beziehungsweise den üblichen Home-Pfad. Vorhandene Inhalte bekommen eine Sicherung mit Zeitstempel. Bearbeite die betreffenden Einträge und erhalte andere Einstellungen; ein vollständiger Austausch deiner Konfiguration ist nicht nötig.

model = "MODEL_ID_FROM_YOUR_ACCOUNT"
model_provider = "crazyrouter"

[model_providers.crazyrouter]
name = "Crazyrouter"
base_url = "https://api.crazyrouter.com/v1"
env_key = "CRAZYROUTER_API_KEY"
wire_api = "responses"
requires_openai_auth = false
Enter fullscreen mode Exit fullscreen mode

Ersetze MODEL_ID_FROM_YOUR_ACCOUNT durch den eben ausgewählten Identifier. Die Eingabe in $crazyModel schreibt ihn nicht von selbst in diese Datei. Für den Vergleich von direkter Anfrage und CLI müssen beide Stellen übereinstimmen.

Ich würde diese Datei bei einer technischen Durchsicht mit vier Fragen lesen: Welche Tabelle wird ausgewählt? Welche Adresse steht darin? Woher kommt das Geheimnis? Welches Protokoll erwartet der Client? Die Antwort darf nicht aus dem hübschen Anzeigenamen abgeleitet werden, sondern aus den tatsächlichen Feldern.

Kontrollpunkt Erwartete Beziehung
model_provider Entspricht dem Namen hinter model_providers.
base_url API-Basis mit einmaligem /v1, ohne Artikelparameter
env_key Exakter Variablenname aus dem PowerShell-Block
wire_api responses für den hier beschriebenen Weg
requires_openai_auth false für den dienstspezifischen Variablenzugang

Bei requires_openai_auth = true verwendet Codex OpenAI-Authentifizierung und ignoriert env_key. Das wäre eine andere Strategie. Übernimm diesen Wert daher nicht zusätzlich aus einem Beispiel für eine offizielle Anmeldung.

Die ersten beiden Schlüssel gehören auf die oberste TOML-Ebene, vor Tabellenüberschriften. Doppelte Schlüssel oder wiederholte Provider-Tabellen sind kein Verfahren zum Überschreiben. Aktualisiere vorhandene Einträge und kontrolliere, dass der Editor wirklich config.toml gespeichert hat, nicht config.toml.txt.

Provider- und Authentifizierungseinstellungen gehören hier in die Benutzerkonfiguration. Eine gleichnamige Datei im Übungsprojekt ist kein beliebiger Ersatz. Nach dem Speichern wird eine alte Sitzung beendet und neu gestartet, damit der Test nicht noch den alten Zustand verwendet.

6. Einen kleinen API-Smoke-Test ausführen

Dieser Aufruf verwendet echte Kontoressourcen und kann nach den Bedingungen des Dienstes Nutzung verursachen. Er setzt die zuvor erstellten Variablen voraus:

$crazyPayload = @{
    model = $crazyModel
    input = 'Reply with OK.'
    stream = $false
} | ConvertTo-Json -Depth 6

$crazyResponse = Invoke-RestMethod -Method Post -Uri "$crazyBase/responses" -Headers $crazyHeaders -ContentType 'application/json' -Body $crazyPayload
$crazyResponse | Select-Object id, status, error
$crazyResponse.output | ConvertTo-Json -Depth 8
Enter fullscreen mode Exit fullscreen mode

Der Test ist bewusst unspektakulär. Die Antwort muss keine komplizierte Lösung enthalten; wir wollen die Verbindung mit einer kleinen Eingabe beobachten. Notiere die tatsächliche Antwort-ID, den Status, einen möglichen Fehler und die vorhandene Textausgabe.

Ein fehlerfreier HTTP-Transport allein erfüllt die Abnahmebedingung nicht. Wenn der zurückgegebene Inhalt eine fehlgeschlagene Verarbeitung beschreibt, bleibt der Test fehlgeschlagen. Bei einer abweichenden Antwortstruktur wird zuerst die aktuelle Dokumentation mit dem realen Körper verglichen.

Diese Probe verwendet stream = false. Sie ist deshalb kein vollständiger Test für das Streaming und die Werkzeuge der CLI. Aus Chat-Completions-Kompatibilität lässt sich ebenfalls nicht automatisch die gesamte benötigte Responses-Funktionalität ableiten.

Wenn die Anfrage scheitert, halte die restlichen Bedingungen konstant. Ein anderer Key, eine andere Basisadresse und ein anderes Modell im selben Versuch machen den Vergleich wertlos. Beginne beim Fehlertext: 401 deutet auf die Authentifizierungsebene, 403 verlangt eine Prüfung des Ablehnungsgrunds, 404 auf Pfad oder Auswahl, 429 auf die erläuterten Limits. Keiner dieser Codes ersetzt das Lesen der Antwort.

7. Den Agenten starten und seine Schreibrechte einordnen

Set-Location -LiteralPath $projectDir
codex.cmd
Enter fullscreen mode Exit fullscreen mode

Frage zunächst: „Was ist eine HTML-Datei? Antworte in einem Satz und verwende keine Dateien oder Befehle.“ Kontrolliere außerdem, ob die Sitzung den gewünschten Provider und das Modell anzeigt. Die direkte Anfrage verwendet Skriptvariablen; die CLI verwendet ihre geladene Konfiguration. Das sind zwei verschiedene Zugriffswege, die übereinstimmen müssen.

Abfrage zur Windows-Sandbox bei Codex

Die Oberfläche ist chinesisch. Lies die entsprechende Beschreibung deiner Version; Modellanzeige und Schaltflächenpositionen sind keine Empfehlung für eine bestimmte Auswahl.

Bei einer Vertrauensabfrage gehört der angezeigte Pfad zur Prüfung. Wenn dort ein anderer Ordner steht, beende die Sitzung und korrigiere die Startposition. Ein Vertrauensklick auf das gesamte Benutzerprofil wäre keine genaue Umsetzung unseres begrenzten Auftrags.

Für den Zähler brauchen wir genau eine lokale Datei. Eine vorgeschlagene Installation zusätzlicher Pakete sollte deshalb erklärt werden, bevor sie ausgeführt wird. Du kannst den Agenten nach betroffenen Dateien und dem Zweck eines Befehls fragen. Rechte pauschal zu erweitern ist keine Voraussetzung dieses Beispiels.

Die Windows-Sandbox kann eigene Einrichtungsschritte benötigen. Beachte deren Beschreibung und die Vorgaben verwalteter Geräte. Wenn die Modellantwort ankommt, aber das Speichern verweigert wird, untersuche diese lokale Grenze. Ein neu ausgestellter API-Key ändert keine Dateiberechtigung.

8. Den Zähler mit konkreten Abnahmekriterien bauen lassen

Erstelle im aktuellen Übungsordner ausschließlich index.html.
Die deutsche Seite trägt die Überschrift „Mein erster Zähler“.
Beim Laden steht der sichtbare Wert auf 0.
Ein Button „Erhöhen“ addiert pro Klick genau 1.
Ein Button „Zurücksetzen“ setzt jeden erreichten Wert auf 0.
Nutze echte HTML-Buttons, die auch mit der Tastatur bedient werden können.
Kein Speichern über Seitenaufrufe hinweg, keine externen Ressourcen oder Pakete.
CSS und JavaScript stehen in derselben Datei. Keine zusätzlichen Netzwerkaufrufe.
Melde den tatsächlich gespeicherten Pfad und nenne die manuell prüfbaren Funktionen.
Wenn Schreiben nicht möglich ist, beschreibe den Grund statt eine fertige Datei zu behaupten.
Enter fullscreen mode Exit fullscreen mode

Hier steckt bereits eine einfache Prüfliste im Auftrag. „Pro Klick genau eins“ verhindert eine unklare Erwartung an den Zähler. „Kein Speichern“ erklärt, warum nach einem Neuladen wieder null erscheinen soll. Ohne diesen Satz könnte ein persistenter Zähler eine plausible, aber andere Umsetzung sein.

Du musst dafür noch keine Testbibliothek installieren. Bei einer kleinen Ein-Datei-Aufgabe lässt sich das Verhalten unmittelbar prüfen. Wir testen auch nicht die Geschwindigkeit verschiedener Modelle, sondern ob der definierte Auftrag erfüllt wird.

Lies die Schreibanfrage und bestätige nur den passenden Zielpfad. War dort schon eine Datei vorhanden, achte auf die geplante Änderung. Nach Abschluss verlässt du den Dialog mit /quit oder der angebotenen Beenden-Funktion und kehrst zum Shellprompt zurück.

Test-Path .\index.html
Enter fullscreen mode Exit fullscreen mode
Start-Process .\index.html
Enter fullscreen mode Exit fullscreen mode

Die zweite Zeile wird erst nach einer Existenzprüfung mit True ausgeführt. Ein Quelltextblock im Gespräch zählt nicht als gespeichertes Artefakt. Eine alte Datei aus einem früheren Durchlauf darf ebenfalls nicht unbemerkt das Ergebnis ersetzen.

9. Nicht nur den ersten Klick ausprobieren

Eine kleine Funktion kann beim ersten Versuch richtig wirken und bei einer Wiederholung falsch reagieren. Nutze deshalb eine kurze, feste Reihenfolge:

Aktion Erwartete Anzeige Warum diese Aktion dazugehört
Seite öffnen 0 Anfangszustand
Zweimal erhöhen 2 Mehrere Ereignisse, nicht nur ein erster Klick
Zurücksetzen 0 Rückweg aus einem veränderten Zustand
Nochmals zurücksetzen 0 Wiederholtes Zurücksetzen
Einmal erhöhen 1 Weiterarbeiten nach dem Reset
Seite neu laden 0 Vereinbarter Verzicht auf Persistenz

Ergänze eine Tastaturprüfung: Tab sollte die echten Buttons erreichen, und die übliche Aktivierung sollte dieselbe Aktion auslösen. Behaupte damit keine vollständige Barrierefreiheitsprüfung; es ist eine konkrete Anforderung dieses kleinen Beispiels.

Bei einem Fehler beschreibst du die Folge der Aktionen und den abweichenden Wert. „Nach zweimaligem Erhöhen steht 4 statt 2“ ist für eine Korrektur brauchbarer als „Die Seite ist falsch“. Bitte um Änderung nur an der vorhandenen Datei und wiederhole danach dieselbe Reihenfolge.

Kontrolliere bei jeder Wiederholung die Adresse im Browser. Wenn zwei Dateien gleich heißen, könnte eine geöffnete alte Kopie den Eindruck erzeugen, die Korrektur sei wirkungslos. Auch die Seite selbst muss nach dem Speichern neu geladen werden.

Die Abnahme endet bei unserem vereinbarten Funktionsumfang. Ein funktionierender Zähler beweist weder sichere Verarbeitung beliebiger Projekte noch Zuverlässigkeit für jede spätere Aufgabe. Das ist kein Mangel der Probe, sondern ihr klar definierter Geltungsbereich.

10. Fragen, die beim Wiederholen des Versuchs auftreten

Warum ist der Schlüssel im neuen Terminal nicht vorhanden?

[bool]$env:CRAZYROUTER_API_KEY
Enter fullscreen mode Exit fullscreen mode

Die ursprüngliche Eingabe galt für einen Prozess. Bereite den Wert im Fenster vor, aus dem du Codex startest. Die TOML-Datei nennt die Variable, stellt aber keinen geheimen Inhalt her.

Muss ich bei einem npm-Timeout den API-Anbieter wechseln?

npm.cmd config get registry
Enter fullscreen mode Exit fullscreen mode

Nein, der Paketdownload ist ein anderer Netzwerkweg. Prüfe Registry und Fehlermeldung. Behalte beabsichtigte Firmenkonfigurationen bei und löse Zertifikatsprobleme nicht durch pauschales Abschalten der Prüfung.

Warum wird ein PowerShell-Skript blockiert?

Kontrolliere, ob du den beschriebenen .cmd-Starter aufrufst. Eine Skriptrichtlinie ist eine gesonderte Frage, gerade auf verwalteten Geräten. Für diesen Ablauf muss nicht vorsorglich jede Skriptausführung freigegeben werden.

Der Modellkatalog funktioniert; warum scheitert die Generierung?

Die Operationen prüfen unterschiedliche Fähigkeiten. Lies den konkreten Generierungsfehler, prüfe Modellrechte und Responses-Verhalten. Der Katalog ist kein Ersatz für einen erfolgreichen Aufruf.

Warum verwendet Codex anscheinend die alte Auswahl?

Vergleiche Benutzerkonfigurationspfad, CODEX_HOME, oberste TOML-Schlüssel und Sitzung. Danach neu starten. Die Modellvariable des Tests und die Datei werden nicht automatisch synchronisiert.

Wie prüfe ich eine Aktualisierung der CLI?

npm.cmd install -g @openai/codex@latest
codex.cmd --version
Get-Command codex* -All
Enter fullscreen mode Exit fullscreen mode

Vergleiche Version und gefundene Starter. Anschließend genügt für die erste Kontrolle wieder dieselbe kleine Aufgabe; installiere das Werkzeug nicht vor jedem Projektstart neu.

Funktioniert eine kopierte CMD-Zeile in PowerShell?

Nicht zwangsläufig. Hier gilt $env:USERPROFILE, nicht %USERPROFILE%; für Pfade nutzen wir Set-Location, nicht cd /d. Die richtige Shell ist Teil der reproduzierbaren Anleitung.

Welche Angaben gehören zu einem Fehlerbericht?

Version, ausgewähltes Modell, konkrete Aktion, erwartetes und beobachtetes Ergebnis sowie bereinigte Fehlermeldung. Zugangsdaten, Gerätecodes und private Projektinhalte bleiben draußen. Eine Anfrage-ID kann dem Dienst helfen, ohne dass du den Header veröffentlichst.

11. Einen nachvollziehbaren Abschluss festhalten

Ein guter Abschlussbericht für dieses Experiment ist kurz: Welche lokale Version wurde verwendet, welche Konfiguration war ausgewählt und welche Prüfschritte wurden tatsächlich ausgeführt? Markiere offen gebliebene Punkte ausdrücklich als offen. Eine fehlende Berechtigung wird nicht durch eine schönere Zusammenfassung zum Erfolg.

Bewahre die Konfigurationssicherung auf. Bei einem Rückwechsel beendest du die Sitzung und stellst die betroffenen Felder wieder her, statt sämtliche Authentifizierungsdaten oder den kompletten Codex-Ordner zu löschen. Für ein neues Modell oder eine neue Basisadresse wiederholst du API-Probe und CLI-Aufgabe mit übereinstimmenden Werten.

Damit bleibt dieser Beitrag auch als Diskussionsgrundlage brauchbar: Nicht die allgemeine Aussage „lief bei mir“ ist interessant, sondern eine nachvollziehbare Bedingung und ihr Ergebnis. Wenn du im Kommentar einen zusätzlichen Prüfpunkt vorschlägst, beschreibe, welchen Fehler er sichtbar machen würde. Behaupte keine Messwerte, die im eigenen Versuch nicht erhoben wurden.

Die Verbindung zu Crazyrouter ist hier Bestandteil eines überprüfbaren Entwicklungsablaufs. Das wiederverwendbare Ergebnis besteht aus einer verständlichen Provider-Konfiguration und einer kleinen Aufgabe, deren Erfolg du selbst beurteilen kannst.

Versionsbezogene Optionen findest du in der Codex-Dokumentation.

Redaktioneller Hinweis: Dieser Text wurde mit KI-Unterstützung ausgearbeitet und lokalisiert. Konfigurationsbeispiele und Sollwerte ersetzen keine Prüfung mit dem eigenen Dienstkonto.

Top comments (0)