model_catalog_json-Katalogdatei, um jederzeit aus der /model-Liste zu wechseln).
Installation
Offizieller Download (macOS-Version)
https://openai.com/en/codex/Installation per Kommandozeile
Basiskonfiguration
Konfiguration über Konfigurationsdateien
- Bearbeiten Sie die Konfigurationsdatei
~/.codex/config.tomlund fügen Sie die folgenden Einstellungen hinzu:
- Setzen Sie die mit
env_keyangegebene Umgebungsvariable auf Ihren AIHubMix-API-Key (achten Sie darauf, dass um das=herum keine Leerzeichen stehen):
~/.zshrc / ~/.bashrc einzutragen. Den Key erhalten Sie in der AIHubMix-Konsole.
Ein benutzerdefinierter Provider liest standardmäßig nicht den
OPENAI_API_KEY aus ~/.codex/auth.json. Übergeben Sie den Key über die mit env_key angegebene Umgebungsvariable – andernfalls werden die Anfragen ohne Key gesendet und mit 401 abgewiesen.model in jede andere Modell-ID auf AIHubMix ändern. Bei Nicht-OpenAI-Modellen wie GLM oder Claude meldet Codex Model metadata for ... not found und fällt auf Standardeinstellungen zurück; nutzen Sie in diesem Fall den unten beschriebenen Weg über benutzerdefinierte Modelle.
Konfiguration via cc-switch
- Starten Sie CC-Switch und fügen Sie den Anbieter hinzu.

- Wählen Sie aus der Voreinstellungsliste „AiHubMix”.

- Geben Sie Ihren Key in das Feld „API Key” ein und klicken Sie auf „Add”, um die Einstellungen zu speichern.

- Kehren Sie zur Startseite zurück, wählen Sie „AiHubMix” aus der Anbieterliste und klicken Sie auf „Enable”, um es zu verwenden.

Codex verwenden
Verwendung im Terminal
- Öffnen Sie das Terminal, navigieren Sie in Ihr Projektverzeichnis und führen Sie den Befehl
codexaus.
-
Legen Sie die Berechtigungen nach Bedarf fest; mit
/permissionskönnen Sie sie jederzeit ändern. -
Wählen Sie das benötigte Modell. Die Statusleiste unten zeigt das aktuelle Modell; mit
/modelwechseln Sie es.

- Geben Sie natürliche Sprache ein; wenn Sie eine normale Antwort erhalten, war die Konfiguration erfolgreich.

Verwendung in der Codex-Desktop-App
- Öffnen Sie die Codex-Desktop-App und wählen Sie das Arbeitsverzeichnis.
- Geben Sie die Aufgabe in das Eingabefeld ein; wenn Sie eine normale Antwort erhalten, war die Konfiguration erfolgreich.

Nützliche Befehlsreferenzen
Die vollständige Liste zeigtcodex --help. Die gängigsten Befehle und Optionen:
Benutzerdefinierte Modelle in Codex verwenden
Standardmäßig zeigt Codex in der/model-Liste nur die offiziellen OpenAI-Modelle an. Wenn Sie direkt aus der Liste ein beliebiges Modell auf AIHubMix auswählen möchten (GLM, Claude, Gemini, DeepSeek, Kimi, Qwen …), können Sie den offiziell unterstützten Mechanismus für „benutzerdefinierte Modelle” nutzen: Sie deklarieren die auswählbaren Modelle über eine lokale JSON-Datei (model_catalog_json) und leiten die Anfragen mit [model_providers.aihubmix] an AIHubMix weiter.
Offizielle Dokumentation: Advanced Configuration · Custom model providers
Zwei Anbindungswege
Der Abschnitt „Basiskonfiguration” weiter oben beschreibt den grundlegenden Weg, dieser Abschnitt beschreibt den Weg über benutzerdefinierte Modelle. Die Unterschiede sind wie folgt – wählen Sie nach Bedarf:
Der gesamte Ablauf besteht aus nur 4 Schritten: Katalogdatei erzeugen →
config.toml anpassen → Umgebungsvariable setzen → neu starten und Modell auswählen.
Schritt 1: Modellkatalog-Datei erzeugen
Die Katalogdatei hat die Struktur{ "models": [ ... ] }, wobei jedes Element im Array ein Modell beschreibt, das in /model ausgewählt werden kann. Im Folgenden erklären wir zunächst die Felder anhand eines festen Modells und geben anschließend ein Skript zum Batch-Generieren der Top 30.
1.1 Zuerst das Format verstehen: ein festes Modell
Im Folgenden sehen Sie einen nachweislich von Codex parsbaren minimalen vollständigen Katalog (enthält nur das eine Modellglm-5.2). Speichern Sie ihn einfach als ~/.codex/model-catalogs/custom-models.json, dann ist er einsatzbereit; für weitere Modelle hängen Sie einfach weitere Einträge mit derselben Struktur an das models-Array an.
Zu
base_instructions: Dies ist der System-Prompt des jeweiligen Modells. Im Beispiel steht ein Platzhaltersatz, mit dem das Modell normal läuft; wenn Sie ein Codierverhalten möglichst nah am nativen Codex möchten, ersetzen Sie ihn durch die vollständigen base_instructions eines beliebigen integrierten Modells aus codex debug models --bundled (genau das macht das Batch-Skript im nächsten Abschnitt).
Der offizielle Katalog verwendet snake_case-Felder (
display_name, supported_in_api, visibility). Zwei Fehlerarten führen dazu, dass der gesamte Katalog verworfen wird und in /model keine Modelle erscheinen: fehlende Pflichtfelder melden missing field ...; veraltete camelCase-Formate wie displayName, hidden oder unbekannte Werte melden unknown variant .... Halten Sie sich einfach an den Feldsatz in diesem Artikel, um beides zu vermeiden.1.2 Top 30 im Batch generieren
Mehrere Einträge von Hand zu schreiben, führt leicht zu fehlenden Feldern. Um die ersten 30 LLMs aus der AIHubMix-Modelllisten-API auf einen Schlag in den Katalog zu schreiben, verwenden Sie das folgende Skript – es klont ein integriertes Modell als Vorlage, sodass die Pflichtfelder (einschließlich der korrektenbase_instructions) von Haus aus vollständig sind und über alle Codex-Versionen hinweg nicht fehlen. Benötigt werden curl, python3 und die installierte codex-CLI:
slug, display_name, description, context_window usw.) und beschränkt die Reasoning-Stufen auf low / medium / high; alle übrigen Pflichtfelder werden aus der integrierten Vorlage geklont – genau der Feldsatz aus Abschnitt 1.1, nur dass base_instructions der vollständige offizielle Prompt ist.
Die erzeugte Datei ist relativ groß (jeder Eintrag enthält die vollständigenbase_instructions, etwa 1–2 MB), das ist normal. Prüfen Sie nach dem Ausführen mitcodex debug models, ob sie korrekt geparst wird (siehe Schritt 5).
Die Zeile mit demimage_generation-Filter im Skript ist bewusst beibehalten: In der Antwort vontype=llmtragen einige wenige Modelle gleichzeitig dasimage_generation-Label (z. B.gemini-3.1-flash-image), die nicht für Dialoge geeignet sind; das Skript überspringt diese automatisch und nimmt dann die ersten 30.
Schritt 2: config.toml anpassen
Bearbeiten Sie ~/.codex/config.toml, fügen Sie auf Wurzelebene model_catalog_json hinzu und definieren Sie den aihubmix-Provider:
wire_api unterstützt nur noch responses (das ist auch der Standardwert, wenn es fehlt); chat wird nicht mehr unterstützt. Codex nutzt ausschließlich OpenAIs Responses API (/v1/responses), und AIHubMix ist nativ mit der Responses API kompatibel – daher genügt es, direkt auf https://aihubmix.com/v1 zu verweisen, ohne einen eigenen Konvertierungs-Proxy aufzusetzen.model muss ein Modell sein, das in Ihrem Katalog vorhanden ist. Haben Sie den Katalog aus 1.1 von Hand geschrieben, tragen Sie glm-5.2 ein. Haben Sie das Skript aus 1.2 verwendet, enthält der Katalog die aktuellen Top 30 der API, und diese Liste ändert sich. Führen Sie daher zuerst codex debug models | grep -o '"slug":"[^"]*"' aus und wählen Sie ein Modell aus der Ausgabe (diese Anleitung verwendet claude-opus-5-5).
Nach der Konfiguration sieht config.toml ungefähr so aus (die roten Rahmen markieren die Kernpunkte dieses Schritts: die model / model_provider / model_catalog_json auf Wurzelebene sowie den Abschnitt [model_providers.aihubmix]):

Schritt 3: Umgebungsvariable setzen
Setzen Sie die oben mitenv_key angegebene Umgebungsvariable (achten Sie darauf, dass um das = herum keine Leerzeichen stehen):
~/.zshrc / ~/.bashrc einzutragen. Den Key erhalten Sie in der AIHubMix-Konsole.
Schritt 4: Neu starten und Modell auswählen
Starten Sie die Codex-App / das TUI neu, damit die Katalogdatei wirksam wird, dann:/model werden alle in der Katalogdatei deklarierten Modelle aufgelistet; mit den Pfeiltasten auswählen und mit Enter bestätigen:

/model Sie zusätzlich die Reasoning-Stufe (Effort) wählen; wählen Sie je nach Bedarf low / medium / high.

Schritt 5: Überprüfen, ob es wirkt
- Geben Sie nach dem Start von Codex
/modelein, vergewissern Sie sich, dass die in der Katalogdatei deklarierten Modelle sichtbar sind, und wechseln Sie zu einem davon (z. B.claude-opus-5-5). - Stellen Sie eine beliebige Frage, um die Verbindung zu prüfen. Beachten Sie: Verlassen Sie sich nicht auf „Welches Modell bist du?” – in
base_instructionssteht „You are Codex… based on GPT-5”, sodass sich alle Modelle entsprechend als GPT-5 ausgeben; die Frage gibt also keinen Aufschluss über das tatsächliche Modell. Um das wirklich aufgerufene Modell zu bestätigen, melden Sie sich in der AIHubMix-Konsole an und sehen Sie auf der Seite „Logs” diemodel_iddieses Anfrageeintrags – das ist die Wahrheit.
Model changed to ..., und die Statusleiste unten zeigt ebenfalls das aktuelle Modell und das Kontextfenster an (im Bild unten wurde zu claude-opus-5-5 gewechselt, Fenster 950K):

Häufige Fragen zu benutzerdefinierten Modellen
-
Der Start bricht mit
legacy profile = "..." config is no longer supportedab. Seit Codex 0.134.0 werdenprofile =und[profiles.xxx]nicht mehr unterstützt. Löschen Sie beide Teile und schreiben Sie die Konfiguration wie im Abschnitt „Basiskonfiguration” oben neu. - Katalog mit dem alten Skript erzeugt. Das alte Skript hat den Code-Modus der integrierten Vorlage nicht abgeschaltet. Nach Codex-Updates ist das erste integrierte Modell nun eines der gpt-6-Serie: Der so erzeugte Katalog wird zwar weiterhin geparst, die Anfragen enthalten aber keine Standard-Tool-Liste. Erzeugen Sie den Katalog mit dem neuen Skript aus Schritt 1 neu.
-
In
/modelsind die benutzerdefinierten Modelle nicht zu sehen? Gehen Sie der Reihe nach vor:- Führen Sie zuerst
codex debug modelsaus. Meldet esmissing field ...(am häufigsten, fehlendes Pflichtfeld) oderunknown variant ...(falscher Feldname / Wert), ist der gesamte Katalog beim Parsen fehlgeschlagen und wurde verworfen – erzeugen Sie ihn mit dem Skript „integrierte Vorlage klonen” aus Schritt 1 einfach neu. - Vergewissern Sie sich, dass
model_catalog_jsoninconfig.tomlauf Wurzelebene steht und nicht in einem[model_providers.*]-Abschnitt; - Vergewissern Sie sich, dass das JSON die offiziellen snake_case-Felder verwendet und
visibilityaufliststeht; - Wenn
codex debug modelsbereits alle Modelle anzeigt, in der Desktop-App aber nur ein oder zwei übrig bleiben und das aktuelle Modell als „benutzerdefiniert” erscheint – das ist ein bekannter Bug der Desktop-App: Sie legt über den lokalen Katalog hinaus noch eine Whitelist-Filterung auf offizielle Slugs und entfernt nicht-offizielle Modelle aus dem Auswahlmenü (siehe GitHub Issue #19694, #15138). Das Modell wird dabei tatsächlich weiterhin gemäß demmodel = "..."inconfig.tomlkorrekt aufgerufen (in den AIHubMix-Logs nachweisbar), nur der Name wird nicht angezeigt. Für die korrekte Anzeige verwenden Sie die Terminal-codex-CLI / das TUI; in der Desktop-App können Sie nur direkt inconfig.tomlein festesmodel = "Ihr gewünschtes Modell"eintragen, bis es offiziell behoben ist.
- Führen Sie zuerst
-
Der Katalog „ersetzt”, nicht „ergänzt”.
model_catalog_jsonersetzt die gesamte Modellliste, statt anzuhängen (in der Praxis getestet: stehen im Katalog nur 2 Modelle, zeigtcodex debug modelsauch nur diese 2 – die integriertengpt-5.xverschwinden alle). Wenn Sie beides möchten, schreiben Sie sie zusammen in den benutzerdefinierten Katalog. -
Anfrage meldet Protokollfehler / keine Verbindung. Meist ist
base_urloderwire_apides Providers falsch konfiguriert. Für AIHubMix muss eswire_api = "responses"+base_url = "https://aihubmix.com/v1"sein. Wenn Sie einen Drittanbieter anbinden, der nur Chat Completions unterstützt, benötigen Sie einen lokalen Konvertierungs-Proxy; AIHubMix-Nutzer brauchen diesen Schritt nicht. -
Dauerhaftes „Reconnecting”, danach ein Fehler. Prüfen Sie zuerst die letzte Fehlerzeile.
401 Unauthorizedbedeutet, dass die Anfrage ohne Key gesendet wurde: Vergewissern Sie sich, dass im Provider-Abschnittenv_keygesetzt ist und die Variable in dem Terminal gesetzt ist, aus dem Sie Codex starten (öffnen Sie ein neues Terminal oder führen Siesource ~/.zshrcaus). Ein Key, der nur inauth.jsonsteht, wird von benutzerdefinierten Providern nicht verwendet. -
Parsing meldet
missing field ...(z. B.missing field base_instructions). Dem Eintrag fehlt ein Pflichtfeld. Neuere Codex-Versionen parsen streng;base_instructions,availability_nux,upgrade,supports_reasoning_summaries,support_verbosity,default_verbosity,apply_patch_tool_type,truncation_policy,supports_parallel_tool_calls,experimental_supported_toolsusw. müssen alle vorhanden sein. Mit dem Skript „integrierte Vorlage klonen” aus Schritt 1 lässt sich das auf einen Schlag ergänzen. -
Parsing meldet
unknown variant. Im Katalog-JSON gibt es einen Feldnamen oder Wert, den Codex nicht kennt (häufig veraltete camelCase-Formate wiedisplayName/hidden). Wechseln Sie einfach zum snake_case-Feldsatz aus diesem Artikel.
Referenzartikel
- Offizielle Dokumentation: Advanced Configuration | Configuration Reference
- Referenz für das offizielle integrierte Katalogformat: codex-rs/models-manager/models.json
- Community-Leitfaden: Codex config.toml: einen beliebigen benutzerdefinierten Provider in 6 Zeilen anbinden
Zuletzt aktualisiert: 2026-10-15