DEV Community

boluo
boluo

Posted on

Codex für Einsteiger: CLI, API und Desktop unter Windows und macOS Schritt für Schritt einrichten

Ein nachvollziehbarer Aufbau mit Skript, manueller Alternative und gezielter Fehlersuche.

Wenn codex --version funktioniert, ist die Installation erreichbar. Ob eine Anfrage beantwortet wird, entscheidet eine andere Kombination: Modell, Anbieteradresse und Schlüssel. Beim Wechsel zur Desktop-App kommt noch die Umgebung des gestarteten Prozesses hinzu. Genau diese Übergänge lohnt es sich beim ersten Aufbau einzeln zu prüfen.

Die manuelle Route in Abschnitt 2 zeigt die einzelnen Bestandteile. Wenn du direkt starten möchtest, nimm stattdessen das Skript in Abschnitt 3. Beide führen zur gleichen kleinen Anfrage in Abschnitt 4.

1. Das Setup in überprüfbare Teile zerlegen

Die CLI läuft im Terminal; die Desktop-App wird separat installiert. Beide können beim gleichen lokalen Benutzer dieselbe Standardkonfiguration verwenden. Ein Skript für die CLI installiert deshalb noch keine Desktop-App.

Als API-Beispiel dient Crazyrouter. Auf der Integrationsseite für Codex stehen Skript und Konfigurationsvorlage. Registriere dich über den dortigen Kontozugang, bestätige die erforderliche E-Mail-Verifikation und melde dich an. Öffne anschließend die Schlüsselverwaltung: Die Dokumentation nennt sie „Token Management“, die Aktion „Create Token“.

Registrierungsformular mit Feldern für Konto, Passwort und E-Mail-Verifikation

Originalaufnahme der Registrierung. Einige Quellseiten zeigen eine chinesische Oberfläche.

Erstelle einen Token, kontrolliere Ablaufdatum, Budget und Modellzugriff und kopiere den Schlüssel. Das Website-Passwort ist kein API-Schlüssel. Für das Beispiel muss gpt-5.6-sol freigeschaltet sein; außerdem wird verfügbares Guthaben benötigt. Das Installationsskript stellt beides nicht bereit.

Ein Vermittler ist interessant, wenn du Modellpreise oder die gemeinsame Abrechnung mehrerer Modelle vergleichen möchtest. Ein günstigerer Tarif allein reicht als Auswahlkriterium nicht: Responses-Unterstützung, Verfügbarkeit und Support müssen ebenfalls passen. Beim direkten offiziellen API-Zugang entfällt dieser zusätzliche Anbieter. Ein ChatGPT-Abonnement und API-Verbrauch sind unterschiedliche Abrechnungswege.

Die zugrunde liegende Windows-Prüfung vom 14. Oktober 2026 verwendete Node.js 24.21.0, npm 11.19.0, Git 2.53.0 und Codex CLI 0.162.1. Das sind Vergleichswerte, keine Mindestversionen.

2. Die manuelle Konfiguration nachvollziehbar aufbauen

CLI bereitstellen

Unter Windows installierst du Node.js LTS von der offiziellen Node.js-Website, passend zu deiner Prozessorarchitektur. Behalte die PATH-Option und öffne PowerShell danach neu. Führe die Zeilen einzeln aus:

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

Falls erforderlich, installiere Git über die offizielle Git-for-Windows-Website. Auf macOS kannst du stattdessen den offiziellen eigenständigen CLI-Installer verwenden:

curl -fsSL https://chatgpt.com/codex/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

Befolge dessen PATH-Hinweise, öffne das Terminal neu und prüfe codex --version. Jetzt folgt die manuelle Anbindung.

Anbieter und Schlüssel getrennt speichern

Windows: Die folgenden Zeilen sichern eine vorhandene Datei und öffnen den Editor.

New-Item -ItemType Directory -Path "$env:USERPROFILE\.codex" -Force | Out-Null
$codexConfigPath = Join-Path $env:USERPROFILE '.codex\config.toml'
if (Test-Path -LiteralPath $codexConfigPath) { Copy-Item -LiteralPath $codexConfigPath -Destination ($codexConfigPath + '.backup-' + (Get-Date -Format 'yyyyMMdd-HHmmss')) }
if (-not (Test-Path -LiteralPath $codexConfigPath)) { New-Item -ItemType File -Path $codexConfigPath | Out-Null }
notepad.exe $codexConfigPath
Enter fullscreen mode Exit fullscreen mode

macOS:

mkdir -p ~/.codex
if [ -f ~/.codex/config.toml ]; then cp ~/.codex/config.toml ~/.codex/config.toml.backup-$(date +%Y%m%d-%H%M%S); fi
nano ~/.codex/config.toml
Enter fullscreen mode Exit fullscreen mode

Füge diese Vorlage in den Editor ein:

model = "gpt-5.6-sol"
model_provider = "crazyrouter"

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

Bei bestehenden Dateien bleiben fremde Einstellungen erhalten. Die beiden obersten Felder gehören vor den ersten Abschnitt in eckigen Klammern; ein vorhandener Anbieterabschnitt wird geändert, nicht verdoppelt. Speichere in Notepad mit Strg+S. In nano: Control+O, Return, dann Control+X. Der Dateiname darf nicht auf .txt enden.

Manuelle Vorlage mit Modell, Anbieteradresse und API-Protokoll

Die Quellseite zur manuellen Anbindung. env_key enthält einen Variablennamen, keinen Schlüssel.

model_provider wählt den gleichnamigen Abschnitt. base_url endet hier auf /v1; hänge /responses nicht an. wire_api bestimmt das Protokoll. Die geprüfte Skriptversion verwendete den Host cn.crazyrouter.com, die manuelle Vorlage api.crazyrouter.com: Übernimm jeweils eine vollständige Konfiguration.

Windows fragt den Schlüssel verdeckt ab:

$codexApiKey = Read-Host 'Paste your API Key, then press Enter' -AsSecureString
Enter fullscreen mode Exit fullscreen mode

Jetzt den Schlüssel einfügen und Enter drücken. Erst wenn der normale Prompt zurückkehrt:

[Environment]::SetEnvironmentVariable('OPENAI_API_KEY', ([System.Net.NetworkCredential]::new('', $codexApiKey)).Password, 'User')
Remove-Variable codexApiKey
Enter fullscreen mode Exit fullscreen mode

Dies ersetzt die Benutzervariable, die eventuell auch andere Werkzeuge verwenden. Beende Windows Terminal beziehungsweise PowerShell vollständig und starte es neu.

Auf dem Mac öffnest du nano ~/.zshrc und ergänzt oder änderst diese Zeile:

export OPENAI_API_KEY='YOUR_API_KEY'
Enter fullscreen mode Exit fullscreen mode

Ersetze den Platzhalter, behalte die Anführungszeichen und speichere wie oben. Lade mit source ~/.zshrc neu. Die Datei enthält den Schlüssel im Klartext und gehört weder in Screenshots noch ins Repository.

3. Dieselben Einstellungen per Skript erzeugen

Wenn du Abschnitt 2 bereits abgeschlossen hast, überspringe diesen Abschnitt. Für einen schnellen Start kannst du stattdessen direkt diesen Skriptweg wählen; anschließend geht es mit Abschnitt 4 weiter.

Integrationsseite mit Skriptoptionen für die Betriebssysteme

Der abgebildete Kurzbefehl verwendet den Wechselmodus. Für die erste CLI-Installation ist full vorgesehen.

Windows mit Skript

Drücke die Windows-Taste, suche „PowerShell“ und öffne das Programm. Kopiere Code mit Strg+C, füge ihn mit Strg+V ein und drücke nach jeder Zeile Enter. Kopiere weder die Sprachbezeichnung noch den Terminalprompt mit.

$env:CRAZYROUTER_CODEX_MODE='full'
iwr -UseB https://raw.githubusercontent.com/xujfcn/crazyrouter-codex-cli/main/install-crazyrouter-codex.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

full prüft Git, Node.js und CLI, ergänzt fehlende Abhängigkeiten und schreibt die Anbieterkonfiguration. Bei bereits installierter CLI ersetzt du in der ersten Zeile ausschließlich 'full' durch 'switch'. Dieser Modus setzt die CLI voraus.

Die zweite Zeile lädt ein öffentliches Skript und führt es aus; dessen Quelltext ist über die Integrationsseite einsehbar. Der volle Installationsweg kann Installer und Berechtigungsdialoge öffnen und verwendet Optionen zur Annahme von Softwarevereinbarungen.

Füge beim Schlüsselprompt nur den API-Schlüssel ein und drücke Enter. Unsichtbare Eingabe ist normal. Bestätige danach das vorgeschlagene Modell nur, wenn dein Token es aufrufen darf. Warte auf den Abschluss und beende die ganze Terminalanwendung, bevor du sie neu öffnest.

macOS mit Skript

Öffne mit Command+Leertaste die Suche, tippe „Terminal“ und drücke Return. Die Anleitung verwendet zsh; bei einer anderen Shell starte zunächst zsh. Einfügen erfolgt mit Command+V, Ausführen mit Return.

touch ~/.zshrc
curl -fsSL https://raw.githubusercontent.com/xujfcn/crazyrouter-codex-cli/main/install-crazyrouter-codex.sh | bash -s -- --full
Enter fullscreen mode Exit fullscreen mode

Die erste Zeile stellt die zsh-Konfigurationsdatei bereit, ohne sie zu leeren. Bei vorhandener CLI ersetze --full durch --switch. Gib Schlüssel und Modell an den jeweiligen Eingabeaufforderungen ein. Ein vom Installer angefordertes Systempasswort ist dein Mac-Passwort.

Fehlt Git, starte xcode-select --install, schließe den Systemdialog ab und prüfe git --version, bevor du das Skript erneut aufrufst. Danach:

source ~/.zshrc
codex --version
Enter fullscreen mode Exit fullscreen mode

4. Einen kleinen Request als Kontrollpunkt verwenden

Prüfe zunächst nur, ob die aktuelle Umgebung einen Schlüssel enthält. Windows:

if ([string]::IsNullOrWhiteSpace($env:OPENAI_API_KEY)) { 'KEY_MISSING' } else { 'KEY_FOUND' }
Enter fullscreen mode Exit fullscreen mode

macOS:

if [ -n "${OPENAI_API_KEY:-}" ]; then echo KEY_FOUND; else echo KEY_MISSING; fi
Enter fullscreen mode Exit fullscreen mode

KEY_FOUND bestätigt keine Gültigkeit. Öffne deshalb ein kleines Übungsprojekt. Windows:

New-Item -ItemType Directory -Path "$env:USERPROFILE\Projects\codex-first-test" -Force | Out-Null
Set-Location "$env:USERPROFILE\Projects\codex-first-test"
codex
Enter fullscreen mode Exit fullscreen mode

macOS:

mkdir -p ~/Projects/codex-first-test
cd ~/Projects/codex-first-test
codex
Enter fullscreen mode Exit fullscreen mode

Prüfe einen etwaigen Vertrauensdialog für diesen Ordner. Sende anschließend im Codex-Eingabefeld:

Erkläre in drei Sätzen den Zweck einer README-Datei. Lies und ändere keine Dateien.
Enter fullscreen mode Exit fullscreen mode

Bei der Windows-Prüfung beantworteten sowohl die manuelle als auch die vom Skript erzeugte Konfiguration die chinesische Fassung dieser Frage. Die Abhängigkeiten waren bereits installiert. Eine Installation auf einem leeren Rechner, ein Mac-Lauf und eine eigenständige Desktop-Anfrage wurden damit nicht geprüft.

5. Die Desktop-App mit derselben Umgebung verbinden

Öffne die offizielle Installationsanleitung und folge dem aktuellen Downloadweg. Unter Windows installierst du die App über den angebotenen Installer beziehungsweise Store. War sie schon geöffnet, beende sie vollständig und starte sie nach dem Speichern des Schlüssels neu.

Offizielle Seite mit Einstieg in die Desktop-Installation

Download und Einrichtung der grafischen Anwendung erfolgen separat.

Die aktuelle offizielle Seite nennt die gemeinsame Oberfläche „ChatGPT desktop app“. Wähle nach dem Öffnen im ChatGPT-Produktmenü „Codex“, um mit den Entwicklerwerkzeugen zu arbeiten. Die Anleitung nennt auch den Zugang per API-Schlüssel; die verfügbaren Funktionen können sich vom Abonnement unterscheiden.

Wähle im Ordnerdialog %USERPROFILE%\Projects\codex-first-test und wiederhole die kurze Frage in einer neuen Unterhaltung.

Auf dem Mac zeigt „Über diesen Mac“ im Apple-Menü den Prozessortyp. Wähle Apple silicon oder Intel entsprechend der Downloadseite und beachte deren Systemanforderungen. Öffne die heruntergeladene Datei: Bei einer .dmg ziehst du die App nach „Programme“, bei einer .pkg folgst du dem Assistenten.

Downloadauswahl für Apple silicon und Intel

Die Paketauswahl richtet sich nach dem Prozessor.

Eine über das Dock gestartete App liest .zshrc nicht automatisch. Beende Codex mit Command+Q, lade den Schlüssel im Terminal und prüfe erneut KEY_FOUND. Übertrage ihn dann in die grafische Sitzung:

source ~/.zshrc
launchctl setenv OPENAI_API_KEY "$OPENAI_API_KEY"
Enter fullscreen mode Exit fullscreen mode

Starte die App neu. Mit Command+Shift+G kannst du im Ordnerdialog ~/Projects/codex-first-test eingeben. Wiederhole den Request. Die Übergabe gilt für die aktuelle Sitzung und muss nach Abmelden oder Neustart erneut erfolgen. WSL, andere Benutzer oder ein eigenes Konfigurationsverzeichnis sind keine identische Umgebung.

6. Fehler anhand des letzten erfolgreichen Schritts eingrenzen

Beobachtung Nächste sinnvolle Prüfung
CLI nicht gefunden Installation und PATH; bei npm auf dem Mac zunächst export PATH="$PATH:$(npm config get prefix)/bin" versuchen
PowerShell blockiert codex.ps1 codex.cmd verwenden
KEY_MISSING Prozess neu starten beziehungsweise .zshrc laden
HTTP 401 Schlüssel, Ablauf und gewählten Anbieter prüfen
HTTP 403 Fehlertext, Modellfreigabe und Kontoregeln vergleichen
CLI funktioniert, Desktop nicht Benutzer, Konfigurationspfad und Prozessumgebung vergleichen
Antwort vorhanden, Schreiben verweigert Projektordner und aktive Berechtigungen prüfen

Wenn die PATH-Zeile auf dem Mac hilft, speichere genau diese Exportzeile mit nano ~/.zshrc dauerhaft. Bei API-Fehlern hilft die Uhrzeit der Anfrage beim Abgleich mit den Nutzungsprotokollen; Neuinstallation behebt keinen abgelaufenen Token.

Für eine Schreibübung öffnest du in der CLI /permissions, in der App den Berechtigungswähler unter dem Eingabefeld. Der dokumentierte Modus „Ask for approval“ erlaubt Arbeit im Projekt und fragt bei Zugriffen außerhalb nach; übergeordnete Richtlinien können zusätzliche Grenzen setzen.

Offizielles Beispiel für die Berechtigungsauswahl

Dokumentationsbeispiel, kein Nachweis einer ausgeführten Dateiänderung.

Bitte Codex, im Übungsordner learning-checklist.md mit drei leeren Markdown-Aufgaben für Installation, API-Antwort und Dateiänderung zu speichern. Öffne die echte Datei im Explorer oder Finder. Lass anschließend nur die ersten beiden Kästchen markieren und prüfe den Unterschied. Eine frühere Schreibprobe wurde durch eine Nur-Lese-Richtlinie blockiert; diese Übung ist daher kein bereits belegter Schreiberfolg.

Für einen hilfreichen Fehlerbericht genügen zunächst Betriebssystem, CLI-Version, letzter erfolgreicher Kontrollpunkt und bereinigter Fehlertext. So kann jemand anderes den fehlerhaften Übergang untersuchen, ohne deinen API-Schlüssel zu sehen.

Top comments (0)