Codex CLI mit UberLLM: OpenAIs Coding-Agent auf jedem Modell ausführen
Exportieren Sie UBERLLM_API_KEY, fügen Sie dann eine [model_providers.uberllm] Tabelle zu ~/.codex/config.toml mit base_url https://api.uberllm.dev/v1, env_key UBERLLM_API_KEY und wire_api "responses" hinzu, und setzen Sie model_provider = "uberllm" plus die model id. UberLLM bedient die Responses API Codex-Aufrufe, sodass shell commands, file edits und multi-step tasks mit jedem chat model funktionieren.
Schritte
- Erstellen Sie einen Schlüssel auf Ihrer Schlüsselseite und fügen Sie Guthaben hinzu.
- Installieren Sie Codex, falls Sie es noch nicht haben:
npm install -g @openai/codex. - Fügen Sie den Schlüssel in Ihr Shell-Profil (
~/.zshrcoder~/.bashrc) ein und öffnen Sie ein neues Terminal:
export UBERLLM_API_KEY="ull_..."
- Öffnen Sie
~/.codex/config.toml(erstellen Sie sie, falls sie fehlt) und fügen Sie hinzu:
model = "moonshotai/kimi-k3"
model_provider = "uberllm"
web_search = "disabled"
[model_providers.uberllm]
name = "UberLLM"
base_url = "https://api.uberllm.dev/v1"
env_key = "UBERLLM_API_KEY"
wire_api = "responses"
- Führen Sie
codexin einem Projektordner aus und geben Sie ihm eine Aufgabe.
Behalten Sie base_url, das auf /v1 endet: Codex fügt /responses hinzu. env_key ist der Name der Variable, nicht der Schlüssel selbst.
Modelle wechseln
Übergeben Sie -m für eine Sitzung, zum Beispiel codex -m deepseek/deepseek-v4.1-flash für eine kleine Korrektur, oder ändern Sie model in der Datei. Jede Chat-Modell-ID von uberllm.dev/models funktioniert.
Für Skripte und CI führt codex exec eine Aufgabe ohne den interaktiven Bildschirm aus:
codex exec --skip-git-repo-check "add a docstring to every function in utils.py"
Sinnvolle Einstellungen
model_context_window: Codex kennt die Kontextgröße von Modellen außerhalb der OpenAI-Liste nicht und nimmt 272,000 tokens an. Für ein kleineres Modell legen Sie die Zahl von seiner Seite auf uberllm.dev/models (zum Beispielmodel_context_window = 131072) fest, damit Codex die Konversation komprimiert, bevor der Platz ausgeht.model_reasoning_effort:"low","medium"oder"high"wird an Modelle weitergegeben, die denken (DeepSeek, Kimi Thinking, GLM, GPT-5). Lassen Sie es weg, um die Standardeinstellung des Modells zu verwenden.web_search = "disabled": Die Websuche von Codex läuft auf den eigenen Servern von OpenAI, daher kann sie nicht über einen anderen Anbieter laufen. Wenn sie deaktiviert ist, wird dem Modell kein Tool angeboten, das es nicht nutzen kann.
Was funktioniert
Jedes Codex-Tool ist ein normaler Funktionsaufruf vonseiten der API, sodass Befehlsausführungen, Dateibearbeitungen, Pläne und MCP-Server, die Sie zu Codex hinzufügen, alle mit jedem Modell funktionieren, das Tool-Aufrufe verarbeitet. Codex sendet die gesamte Konversation bei jeder Runde (store = false), sodass zwischen den Aufrufen nichts auf UberLLM gespeichert wird. Jeder Aufruf wird im Dashboard → Aktivität unter dem App-Namen codex mit seinen Kosten angezeigt.
Fehlerbehebung
wire_api = "chat"wird nicht mehr unterstützt: Codex 0.95 und neuere Versionen sprechen nur die Responses API. Setzen Siewire_api = "responses".- 401 oder „Missing environment variable: UBERLLM_API_KEY“: die Variable ist im Terminal, in dem Codex läuft, nicht exportiert. Öffnen Sie ein neues Terminal, nachdem Sie Ihr Profil bearbeitet haben, oder führen Sie zuerst
export UBERLLM_API_KEY=...aus. - 404 bei jeder Runde:
base_urlfehlt/v1. Es muss genauhttps://api.uberllm.dev/v1sein. - „Model metadata for … not found. Defaulting to fallback metadata“: Codex gibt dies für jedes Modell aus, das nicht auf der eigenen Liste von OpenAI steht. Es ist harmlos; setzen Sie
model_context_windowwie oben. - Das Modell antwortet, führt aber nie einen Befehl aus: wählen Sie ein Modell aus der ersten Tabelle. Kleine Modelle weichen vom Tool-Format von Codex ab.
- 402 unzureichende Credits: fügen Sie Credits auf der Credits-Seite hinzu. Für eine feste Obergrenze legen Sie ein Ausgabenlimit für den Schlüssel fest.