# Wie man lokale LLMs mit OpenAI Codex ausführt

Diese Schritt-für-Schritt-Anleitung zeigt dir, wie du offene LLMs und APIs mit OpenAI Codex verbindest **vollständig lokal**, komplett mit Screenshots. Codex benötigt nur einen lokalen Endpunkt, der die OpenAI Responses API spricht. Mit jedem offenen Modell ausführbar wie Qwen, DeepSeek, Gemma und mehr.

Für dieses Tutorial verwenden wir die offenen Modelle: [Gemma 4](/docs/de/modelle/gemma-4.md) und [Qwen3.5](/docs/de/modelle/qwen3.5.md) die starke agentische und Coding-Modelle sind (funktioniert auf Geräten mit 24 GB RAM/vereinheitlichtem Speicher). Für die Inferenz verwenden wir [Unsloth Studio](https://github.com/unslothai/unsloth) und [`llama.cpp`](https://github.com/ggml-org/llama.cpp) ermöglicht dir, LLMs auf macOS, Linux und Windows auszuführen/bereitzustellen. Du kannst jedes andere Modell einsetzen, aktualisiere einfach die Modellnamen in deinen Skripten und in der Codex-Konfiguration.

<a href="/pages/1813c928d883d651dff92062bc0da6e96d06e50a#setup-codex" class="button primary" data-icon="openai">Codex einrichten</a><a href="/pages/1813c928d883d651dff92062bc0da6e96d06e50a#quickstart-tutorials" class="button primary">📖 Tutorial zum Einrichten lokaler Modelle</a>

Für Modell-Quants verwenden wir Unsloth [**Dynamische GGUFs**](/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs.md) damit du quantisierte GGUF-Modelle ausführen kannst und dabei so viel Genauigkeit wie möglich behältst.

{% hint style="info" %}
Codex hat sich seit Jan 2026 ziemlich stark verändert. Es verwendet jetzt die [**OpenAI Responses API**](https://platform.openai.com/docs/api-reference/responses) **ausschließlich**, und die Unterstützung für Chat Completions wurde eingestellt. [Unsloth Studio](#unsloth-tutorial) unterstützt beides, daher verwenden wir `wire_api = "responses"` durchgehend in diesem Leitfaden.
{% endhint %}

### &#x20;<i class="fa-openai">:openai:</i> Codex einrichten

[Codex](https://github.com/openai/codex) ist OpenAIs offizieller Coding-Agent, der lokal läuft. Obwohl er für ChatGPT entwickelt wurde, unterstützt er **benutzerdefinierte API-Endpunkte**, wodurch er mit lokalen LLMs funktioniert. Später werden wir ihn auf den `/v1/responses` -Endpunkt von Unsloth Studio verweisen, sobald Studio läuft.

{% tabs %}
{% tab title="Linux / WSL" %}
Führe in deinem Terminal aus:

```bash
apt update
sudo apt install nodejs npm -y
npm install -g @openai/codex
```

{% endtab %}

{% tab title="Windows" %}
In Windows Powershell ausführen:

```powershell
winget install --id OpenAI.Codex
```

{% hint style="info" %}
**Bevorzugst du die Codex-Desktop-App?** Installiere sie aus dem Microsoft Store:

```powershell
winget install --id 9PLM9XGG6VKS --source msstore
```

Oder über den [Microsoft App Store](https://apps.microsoft.com/detail/9plm9xgg6vks). Die App liest dieselbe `%USERPROFILE%\.codex\config.toml`, daher gilt die Provider-Konfiguration, die wir später einrichten, in beiden Fällen.
{% endhint %}

{% hint style="info" %}
**Bevorzugst du WSL?** Öffne PowerShell als Administrator und führe `wsl --install`aus, starte dann neu und folge anschließend dem Linux-Tab oben innerhalb von Ubuntu. Du brauchst einen kleinen Netzwerktrick, um Studio auf dem Windows-Host zu erreichen – siehe den WSL-Hinweis in Codex mit Studio verbinden.
{% endhint %}
{% endtab %}

{% tab title="MacOS" %}
Führe in deinem Terminal aus:

<pre class="language-bash"><code class="lang-bash"><strong>bash brew install --cask codex
</strong></code></pre>

{% endtab %}
{% endtabs %}

Das war's für die Installation – **führe `codex` noch nicht**aus. Wenn du es ohne weitere Optionen startest, landest du im OpenAI-Auswahlfenster „Mit ChatGPT anmelden“ (das modal ist – es gibt keinen Ausweg). Sobald wir ein lokales Profil eingerichtet haben, überspringt `codex -p unsloth_api` oder `codex -p llama_cpp` diesen Bildschirm vollständig, weil benutzerdefinierte Provider standardmäßig `requires_openai_auth = false`verwenden. Starte zuerst den lokalen Modellserver und dann Codex dagegen.

## 📖 Quickstart-Tutorials <a href="#quickstart-tutorials" id="quickstart-tutorials"></a>

Bevor wir beginnen, müssen wir zunächst die Einrichtung für das jeweilige Modell abschließen, das du verwenden möchtest. Wir verwenden [Unsloth](https://unsloth.ai/docs/new/studio) (eine Web-UI) und llama.cpp, die Open-Source-Frameworks zum Ausführen und Bereitstellen von LLMs auf deinen Mac-, Linux- und Windows-Geräten sind.

{% columns %}
{% column %}
Bevor wir beginnen, müssen wir zunächst die Einrichtung für das jeweilige Modell abschließen, das du verwenden möchtest. Wir verwenden [Unsloth](/docs/de/neu/studio.md) (eine Web-UI) und llama.cpp, die Open-Source-Frameworks zum Ausführen und Bereitstellen von LLMs auf deinen Mac-, Linux- und Windows-Geräten sind.

Unsloth hat außerdem einzigartige selbstheilende [Tool-Calling-](/docs/de/neu/studio/chat.md#auto-healing-tool-calling) und [Websuche-](/docs/de/neu/studio/chat.md#code-execution) Fähigkeiten. Rechts siehst du Claude Code, das mit Unsloth verbunden ist:
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/c2d94cbc99436e352e9f976044d5ce03e49dd84a" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

<a href="/pages/1813c928d883d651dff92062bc0da6e96d06e50a#unsloth-tutorial" class="button primary">🦥 Unsloth-Tutorial</a><a href="/pages/1813c928d883d651dff92062bc0da6e96d06e50a#llama.cpp-tutorial" class="button primary">🦙 llama.cpp-Tutorial</a>

## 🦥 Unsloth-Tutorial

Für dieses Tutorial werden wir lokale Modelle über eine UI mit Claude Code verbinden/bereitstellen, indem wir [Unsloth](https://github.com/unslothai/unsloth)verwenden. Unsloth funktioniert unter Windows, WSL, Linux und MacOS.&#x20;

{% columns %}
{% column %}

* Suchen, herunterladen, [GGUFs ausführen](/docs/de/neu/studio.md#run-models-locally) und Safetensor-Modelle
* [**Selbstheilendes** Tool-Calling](/docs/de/neu/studio.md#execute-code--heal-tool-calling) + **Websuche-**
* [**Codeausführung**](/docs/de/neu/studio.md#run-models-locally) (Python, Bash)
* [Automatische Inferenz-](/docs/de/neu/studio.md#model-arena) Parameterabstimmung (Temp, Top-p usw.)
* Schnelle CPU- + GPU-Inferenz über llama.cpp
* [LLMs trainieren](/docs/de/neu/studio.md#no-code-training) 2x schneller mit 70 % weniger VRAM

Siehe unten für Installationsanweisungen:
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/16c0b18ba770d26abf1c3a92209b60c094a825a0" alt=""><figcaption><p>Beispiel für Qwen3.6 2-Bit, das in Unsloth läuft.</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% tabs %}
{% tab title="MacOS" %}

#### Schritt 1: Unsloth einrichten

Starte das `Terminal` auf dem Mac und installiere dann Unsloth, indem du den untenstehenden Befehl eingibst.

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

Unsloth beginnt damit, die Umgebung einzurichten und die erforderlichen Pakete zu installieren, wie unten gezeigt. Gib **Y** ein und drücke `Eingabe` wenn du gefragt wirst, ob Studio jetzt gestartet werden darf. Dadurch wird Unsloth auf deinem lokalen **8888** Port gestartet.

<figure><img src="/files/6337582368e5e994ddb66c8a622177d6c41fc7de" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
Wenn du dich entschieden hast, Unsloth während des Installationsprozesses nicht zu starten, kannst du die Unsloth-App jederzeit mit `unsloth studio -p 8888` starten. Wenn du möchtest, dass deine Unsloth-Instanz für Clients außerhalb deines PCs/Computers erreichbar ist, füge `-H 0.0.0.0` zum `unsloth studio` -Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffne den Browser deiner Wahl und gib `http://127.0.0.1:8888`  in das URL-Feld ein. Wenn du Unsloth zum ersten Mal installierst, wirst du zur Passwort-Seite weitergeleitet, auf der du ein neues Passwort erstellen musst. Danach sollte Unsloth auf der Chat-Seite geöffnet werden, wie unten gezeigt.

<figure><img src="/files/3c82d946a8c4f751f5b7fbd693e1efe2cf2a63af" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Windows" %}

#### Schritt 1: Unsloth einrichten

Öffne das Startmenü, suche nach `PowerShell`, und starte es. Kopiere den Installationsbefehl und gib ihn ein:

```powershell
irm https://unsloth.ai/install.ps1 | iex
```

die Installation beginnt automatisch. Nach Abschluss der Installation fragt PowerShell, ob du Unsloth Studio starten möchtes&#x74;**.**

<figure><img src="/files/6337582368e5e994ddb66c8a622177d6c41fc7de" alt="" width="375"><figcaption></figcaption></figure>

Du kannst es auch mit folgendem Befehl starten:

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

{% hint style="info" %}
Wenn du möchtest, dass deine Instanz für Clients außerhalb deines PCs/Computers erreichbar ist.\
Füge `-H 0.0.0.0` zum `unsloth studio` -Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffne `http://127.0.0.1:8888` in deinem Browser. Beim ersten Start erstelle ein neues Passwort, um zur Chat-Seite weiterzugehen. **Unsloth Studio** ist jetzt installiert und einsatzbereit.

<figure><img src="/files/3c82d946a8c4f751f5b7fbd693e1efe2cf2a63af" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Linux, WSL" %}

#### Schritt 1: Unsloth einrichten

{% tabs %}
{% tab title="Linux" %}
Öffne deine Terminal-Anwendung. Du kannst sie mit `Strg + Alt + T`starten oder indem du nach `Terminal` im Anwendungsmenü deines Systems suchst.
{% endtab %}

{% tab title="WSL" %}
Klicke auf das Windows-Startmenü, gib den Namen deiner installierten Distribution ein (z. B. `Ubuntu`) und öffne sie dann.

{% hint style="warning" %}
Unter **WSL**, stelle sicher, dass deine **NVIDIA-Treiber** auf **Windows** installiert sind (nicht innerhalb von WSL) und dass das **CUDA-Toolkit** innerhalb deiner WSL-Distribution installiert ist. Siehe die Systemanforderungen unten für Details.
{% endhint %}
{% endtab %}
{% endtabs %}

Zum Installieren kopiere den Installationsbefehl und führe ihn aus:

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

Dann:

1. Klicke in das Terminalfenster
2. Füge den Befehl mit `Strg + Umschalt + V`
3. Drücke `Eingabe`

Unsloth beginnt damit, die Umgebung einzurichten und die erforderlichen Pakete zu installieren, wie unten gezeigt. Gib **Y** ein und drücke `Eingabe` wenn du gefragt wirst, ob Studio jetzt gestartet werden darf. Dadurch wird Unsloth auf deinem lokalen **8888** Port gestartet.

<figure><img src="/files/ea07e1b505e0d11cc8f39b34d4df520d1d58fe0f" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Wenn du dich entschieden hast, Unsloth während des Installationsprozesses nicht zu starten, kannst du die Unsloth-App jederzeit mit `unsloth studio -p 8888` starten. Wenn du möchtest, dass deine Unsloth-Instanz für Clients außerhalb deines PCs/Computers erreichbar ist, füge `-H 0.0.0.0` zum `unsloth studio` -Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffne den Browser deiner Wahl und gib `http://127.0.0.1:8888`  in das URL-Feld ein. Wenn du Unsloth zum ersten Mal installierst, wirst du zur Passwort-Seite weitergeleitet, auf der du ein neues Passwort erstellen musst. Danach sollte Unsloth auf der Chat-Seite geöffnet werden, wie unten gezeigt.

<figure><img src="/files/fab3a64e6e14bb8ee47919b963bf11d7da3202ee" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### Anleitung zum Laden von Modellen + API

{% stepper %}
{% step %}

#### Modell auswählen

Bevor du die API verwendest, lade ein Modell aus dem Dropdown-Menü **Modell auswählen** in der oberen linken Ecke der Chat-Seite.

<figure><img src="/files/35a6966ece42497bdc299b98050269c7636c7c98" alt=""><figcaption></figcaption></figure>

In diesem Leitfaden verwenden wir: `unsloth/gemma-4-26B-A4B-it-GGUF` mit der empfohlenen `UD-Q4_K_XL` -Quantisierung.
{% endstep %}

{% step %}

#### Modell testen

Bevor du den Client verwendest, sende eine kurze Nachricht:

<div data-with-frame="true"><figure><img src="/files/245fe14776c68639a801acfab0d58e75d6cf1ce4" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Dies bestätigt, dass das Modell korrekt geladen wurde und bereit ist zu antworten.
{% endhint %}
{% endstep %}

{% step %}

#### **Unsloth-API-Schlüssel**

Öffne in Studio **Einstellungen → API** , um deinen API-Schlüssel anzuzeigen oder zu erstellen.

<figure><img src="/files/96dbb4b6e52ce8bc33d050cacf1e90d03b66c1ae" alt=""><figcaption></figcaption></figure>

Behandle deinen API-Schlüssel wie ein Passwort und vermeide es, ihn in Screenshots oder Repositories offenzulegen.
{% endstep %}
{% endstepper %}

## ⚙️ Codex verbinden

Dieser Abschnitt ist derselbe, egal ob du Unsloth Studio, llama.cpp oder einen anderen OpenAI-kompatiblen lokalen Server verwendet hast. Codex benötigt drei Werte: den **API-Schlüssel**, die **Basis-URL**, und den **Modellnamen**. Das folgende Beispiel verwendet Unsloth Studio; für llama.cpp verwende dieselbe Struktur mit dem `llama_cpp` -Profil im llama.cpp-Abschnitt.

{% stepper %}
{% step %}

#### **Den Unsloth-Provider konfigurieren**

Codex sucht nach `~/.codex/config.toml` unter macOS/Linux/WSL oder `%USERPROFILE%\.codex\config.toml` unter Windows. Erstelle oder bearbeite sie:

{% code title="\~/.codex/config.toml" overflow="wrap" %}

```toml
[model_providers.unsloth_api]
name                  = "Unsloth Studio"
base_url              = "http://localhost:8888/v1"
env_key               = "UNSLOTH_STUDIO_AUTH_TOKEN"
wire_api              = "responses"
requires_openai_auth  = false

[profiles.unsloth_api]
model_provider = "unsloth_api"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

{% hint style="info" %}
Diese Konfiguration erstellt ein Codex-Profil namens `unsloth_api`, verweist es auf Studio und weist Codex an, den API-Schlüssel aus einer Umgebungsvariable mit dem Namen `UNSLOTH_STUDIO_AUTH_TOKEN`zu lesen. Den echten Schlüssel setzt du im nächsten Schritt.
{% endhint %}

| Feld                   | Was es tut                                                                                                                                           |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `base_url`             | Dein lokaler Server-Endpunkt + `/v1`                                                                                                                 |
| `env_key`              | **Name** der Umgebungsvariable, aus der Codex deinen API-Schlüssel liest. Das ist nicht der Schlüssel selbst.                                        |
| `wire_api`             | `responses`. Codex verwendet jetzt ausschließlich OpenAIs Responses API.                                                                             |
| `requires_openai_auth` | `false` lässt Codex den Bildschirm „Mit ChatGPT anmelden“ für diesen Provider überspringen. Der Standardwert ist bereits `false`, aber sei explizit. |
| `model`                | Die Modell-ID, die dein Server bereitstellt. Rufe `GET <base_url>/models` auf, um die genaue Zeichenfolge zu bestätigen.                             |

{% hint style="warning" %}
OpenAI hat die Unterstützung für `wire_api = "chat"` entfernt. Verwende immer `wire_api = "responses"`. Wenn du `wire_api = "chat"`setzt, verweigert Codex den Start mit `` `wire_api = "chat"` wird nicht mehr unterstützt. So behebst du das Problem: setze `wire_api = "responses"` in deiner Provider-Konfiguration. ``
{% endhint %}

{% hint style="info" %}
Du kannst derselben Datei mehrere Profile hinzufügen, eines für jedes Unsloth-Modell, zwischen denen du wechselst. Codex erkennt sie automatisch.
{% endhint %}
{% endstep %}

{% step %}

#### Die API-Schlüssel-Umgebungsvariable setzen

Verwende denselben Namen für die Umgebungsvariable, den du in `env_key`geschrieben hast. Im obigen Unsloth-Studio-Beispiel ist `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`, also setze `UNSLOTH_STUDIO_AUTH_TOKEN` im selben Terminal, von dem aus du Codex starten wirst:

{% code title="MacOS / Linux / WSL" %}

```bash
export UNSLOTH_STUDIO_AUTH_TOKEN=YOUR_TOKEN
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:UNSLOTH_STUDIO_AUTH_TOKEN = "YOUR_TOKEN"
```

{% endcode %}

Wenn du `env_key`umbenannt hast, benenne die Variable auch in den Befehlen um. Zum Beispiel benötigt ein llama.cpp-Profil, das `env_key = "LLAMA_CPP_API_KEY"` verwendet, `LLAMA_CPP_API_KEY`, nicht `UNSLOTH_STUDIO_AUTH_TOKEN`.

**Sitzung vs. dauerhaft:** die obigen Befehle gelten nur für das aktuelle Terminal. Um sie dauerhaft zu machen:

* **MacOS / Linux / WSL:** füge die `export` -Zeile zu `~/.bashrc` (bash) oder `~/.zshrc` (zsh) hinzu.
* **Windows:** führe `setx UNSLOTH_STUDIO_AUTH_TOKEN "YOUR_TOKEN"` einmal aus oder füge die `$env:` -Zeile zu deinem PowerShell- `$PROFILE`.

{% hint style="warning" %}
**aus. Führst du Codex in WSL mit Unsloth unter Windows aus?** WSL ist ein separater Netzwerk-Namespace, daher erreicht `localhost` von innerhalb von WSL aus Unsloth nicht. Bearbeite deine `config.toml` so, dass stattdessen die Windows-Host-IP verwendet wird:

```bash
# Windows-Host-IP von innerhalb von WSL abrufen
ip route | grep default | awk '{print $3}'
```

Setze dann `base_url = "http://<that-ip>:8888/v1"`. Wenn du WSL2-Spiegelnetzwerk aktiviert hast (`.wslconfig` → `networkingMode=mirrored`), `localhost` funktioniert es wie unter nativem Windows.
{% endhint %}
{% endstep %}

{% step %}

#### **Codex starten**

```bash
mkdir my-project && cd my-project
codex -p unsloth_api
```

{% hint style="info" %}
**Erster Start in einem neuen Verzeichnis** Codex fragt *„Vertraust du dem Inhalt dieses Verzeichnisses?“* - wähle *Ja, fortfahren.* Dies ist die vertrauensbezogene Aufforderung pro Arbeitsverzeichnis, nicht der ChatGPT-Login (dieser wird wegen \`requires\_openai\_auth = false\` übersprungen). Nachfolgende Starts im selben Verzeichnis überspringen diese Aufforderung.
{% endhint %}

<figure><img src="/files/61e97ea2ae9cf535a1cea3727c2335624ef285fa" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Siehst du `Modellmetadaten für`  unsloth/gemma-4-26B-A4B  `nicht gefunden. Es werden ersatzweise Fallback-Metadaten verwendet`?** Codex wird mit einer integrierten Tabelle von Kontextfenstern, Tool-Unterstützung und Eingabemodalitäten für OpenAIs eigene Modelle ausgeliefert. Für alles andere greift es auf sichere Standardwerte zurück. Die Warnung erscheint einmal pro Sitzung für jeden Nicht-OpenAI-Slug. Alles funktioniert trotzdem, du kannst sie ignorieren.

**So behebst du es:** füge `model_context_window = 131072` oben in `~/.codex/config.toml` ein, damit Codex Gemma 4s echtes 128K-Kontextfenster statt seiner Fallback-Schätzung verwendet. Für vollständige Kontrolle über Tool-Unterstützung und Eingabemodalitäten verweise `model_catalog_json` innerhalb von `[profiles.unsloth_api]` auf eine JSON-Datei, die einen benutzerdefinierten `ModelInfo` -Eintrag für deinen Slug enthält.
{% endhint %}

Das `-p unsloth_api` -Flag weist Codex an, das Profil zu verwenden, das du gerade hinzugefügt hast. Der Modellname erscheint in der Statusleiste von Codex.

<figure><img src="/files/e7870ddd8fe082e76567e4f867afdb22e471a5cd" alt=""><figcaption></figcaption></figure>

Füge `--search` hinzu, um die Websuche zu aktivieren:

```bash
codex -p unsloth_api --search
```

Um alle Genehmigungsaufforderungen zu umgehen **(ACHTUNG: Dadurch lässt du Codex ohne jegliche Genehmigungen tun und Code ausführen, wie es möchte!)**:

{% code overflow="wrap" %}

```bash
codex -p unsloth_api --search --dangerously-bypass-approvals-and-sandbox
```

{% endcode %}
{% endstep %}
{% endstepper %}

### Probiere eine echte Aufgabe aus

Probiere diesen Prompt aus, um ein einfaches Unsloth-Finetuning zu installieren und auszuführen:

{% code overflow="wrap" %}

```
Du kannst nur im cwd project/ arbeiten. Suche nicht nach AGENTS.md – das ist es.
Installiere Unsloth über eine virtuelle Umgebung mit uv. Siehe
https://unsloth.ai/docs/get-started/install/pip-install, wie das geht (aufrufen und lesen).
Führe dann ein einfaches Unsloth-Finetuning aus, das in
https://github.com/unslothai/unsloth beschrieben wird. Du hast Zugriff auf 1 GPU.
```

{% endcode %}

und wenn wir noch ein wenig länger warten, wirst du ein erfolgreich mit Unsloth feinabgestimmtes Modell sehen!

<figure><img src="/files/dd56d99410fd2a1460522ef78e17c1226ec4ccba" alt=""><figcaption></figcaption></figure>

### Verbindung trennen oder rückgängig machen

Starte Codex ohne `-p unsloth_api` und es verwendet seinen Standard-Provider. Oder lösche die `[profiles.unsloth_api]` und `[model_providers.unsloth_api]` -Blöcke aus `~/.codex/config.toml`.

```bash
unset UNSLOTH_STUDIO_AUTH_TOKEN
```

Du kannst Unsloth Studio weiterlaufen lassen oder es beenden. Im gestoppten Zustand fängt es nichts ab.

### Fehlerbehebung

| Symptom                                         | Wahrscheinliche Ursache                                                                        | Lösung                                                                                                                                     |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `Modellmetadaten für ... nicht gefunden`        | Nicht-OpenAI-Slug, keine integrierten Metadaten                                                | Unbedenkliche Warnung. Um die Nebeneffekte zu unterdrücken, setze `model_context_window = 131072` in `~/.codex/config.toml`, oder verweise |
| Codex sagt, es sei GPT                          | Codex injiziert einen auf OpenAI verweisenden System-Prompt; lokale Modelle spiegeln ihn wider | Kein Routing-Fehler. Überprüfe es über das Aktivitätsfenster von Studio. Überschreibe den System-Prompt, um die Selbstauskunft zu ändern.  |
| `Verbindung abgelehnt`                          | Studio läuft nicht oder falscher Port                                                          | Bestätige, dass Studio unter `http://localhost:8888`läuft; prüfe `base_url` in `config.toml`                                               |
| `wire_api = "chat" wird nicht mehr unterstützt` | Veraltetes `wire_api = "chat"` in der Konfiguration                                            | Wechsle zu `wire_api = "responses"`                                                                                                        |
| `Modell nicht gefunden`                         | Tippfehler in der Modell-ID                                                                    | `GET http://localhost:8888/v1/models` und kopiere die exakte ID                                                                            |
| OOM mitten in der Generierung                   | Kontext zu groß für VRAM                                                                       | Reduziere den Kontext in Studio **Einstellungen → Inferenz**, oder verwende eine kleinere Quantisierung                                    |
| Codex zeigt die Auswahl „Mit ChatGPT anmelden“  | Ohne Optionen gestartet `codex` (kein `-p`)                                                    | Beenden (Strg+C), dann neu starten mit `codex -p unsloth_api`. Benutzerdefinierte Provider überspringen das                                |
| Tool-Calling unzuverlässig                      | Selbstheilendes Fallback erforderlich                                                          | Studios [selbstheilende Tool-Aufrufe](file:///1382377/new/studio/#execute-code--heal-tool-calling) sind standardmäßig aktiviert            |
| WSL: `Verbindung abgelehnt` zu `localhost`      | WSL-Netzwerk-Namespace                                                                         | Verwende die Windows-Host-IP in `base_url`, oder aktiviere WSL2-Spiegelnetzwerk                                                            |

## 🦙 Llama.cpp-Tutorial

Wir können auch `llama.cpp` direkt verwenden. Wir müssen `llama-server` bereitstellen, ein Open-Source-Framework zum effizienten Ausführen und Bereitstellen von LLMs auf Mac-, Linux- und Windows-Geräten. Das Modell wird auf **Port 8001** bereitgestellt, wobei alle Agent-Tool-Aufrufe über diesen einen OpenAI-kompatiblen Endpunkt geleitet werden.

{% hint style="info" %}
Der llama.cpp-Endpunkt wird auf **Port 8001** anstelle von `8888` (Standard von Unsloth Studio) liegen. Passe deine Codex- `base_url` entsprechend in `~/.codex/config.toml`.
{% endhint %}

{% stepper %}
{% step %}

#### **llama.cpp installieren**

Wir müssen `llama.cpp` installieren, um lokale LLMs bereitzustellen/auszuliefern und in Codex zu verwenden. Wir folgen den offiziellen Build-Anweisungen für korrekte GPU-Bindings und maximale Leistung. Ändere `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn du keine GPU hast oder nur CPU-Inferenz möchtest. **Für Apple Mac / Metal-Geräte**, setze `-DGGML_CUDA=OFF` und fahre dann wie gewohnt fort – Metal-Unterstützung ist standardmäßig aktiviert.

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev git-all -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first \
    --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

{% endstep %}

{% step %}

#### **Modelle lokal herunterladen und verwenden**

Lade das Modell über die `hf` -CLI herunter (`pip install huggingface_hub hf_transfer`). Wir verwenden die **UD-Q4\_K\_XL** -Quantisierung für das beste Verhältnis aus Größe und Genauigkeit. Du findest alle Unsloth-GGUF-Uploads in unserer [Sammlung hier](file:///1382377/get-started/unsloth-model-catalog.md). Wenn Downloads hängen bleiben, siehe [https://hugging-face-hub-xet-debugging.md](https://hugging-face-hub-xet-debugging.md "mention").

```bash
hf download unsloth/gemma-4-26B-A4B-it-GGUF \
    --local-dir unsloth/gemma-4-26B-A4B-it-GGUF \
    --include "*UD-Q4_K_XL*"
```

{% hint style="info" %}
**Möchten Sie Vision-Unterstützung?** Füge `--include "*mmproj-BF16*"` um auch den Vision-Projektor zu laden, dann übergeben Sie `--mmproj unsloth/gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf` zu `llama-server`. Codex selbst ist nur für Text, daher ist dies optional.
{% endhint %}

{% hint style="success" %}
Wir haben `unsloth/gemma-4-26B-A4B-it-GGUF`verwendet, aber Sie können alles verwenden wie `unsloth/Qwen3.6-35B-A3B-GGUF` - siehe [Qwen3.6-35B-A3B](/docs/de/modelle/qwen3.6.md).
{% endhint %}
{% endstep %}

{% step %}

#### **Starten Sie den Llama-Server**

Um Gemma-4-26B-A4B für agentische Workloads bereitzustellen, verwenden wir `llama-server`. Wir wenden Googles empfohlene Sampling-Parameter an (`temp 1.0`, `top_p 0.95`, `top_k 64`) und aktivieren `--jinja` für ordentliche Unterstützung beim Aufrufen von Tools.

Führen Sie diesen Befehl in einem neuen Terminal aus (verwenden Sie `tmux` oder öffnen Sie ein neues Terminal). Das Folgende sollte **problemlos in eine 24-GB-GPU (RTX 4090) passen** bei etwa 18 GB. `--fit auf` wird ebenfalls automatisch auslagern, aber wenn Sie eine schlechte Leistung sehen, verringern Sie `--ctx-size`.

```bash
./llama.cpp/llama-server \
    --model unsloth/gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \
    --alias "unsloth/gemma-4-26B-A4B" \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64 \
    --port 8001 \
    --kv-unified \
    --cache-type-k q8_0 --cache-type-v q8_0 \
    --batch-size 4096 --ubatch-size 1024
```

{% hint style="info" %}
Wir haben `--cache-type-k q8_0 --cache-type-v q8_0` für die Quantisierung des KV-Caches, um den VRAM-Verbrauch zu reduzieren. Wenn Sie eine geringere Qualität sehen, verwenden Sie `bf16` stattdessen (`--cache-type-k bf16 --cache-type-v bf16`), aber der VRAM verdoppelt sich.
{% endhint %}

{% hint style="success" %}
**Das Deaktivieren des Denkens** kann die Leistung für agentische Coding-Aufgaben verbessern. Gemma 4 aktiviert das Denken standardmäßig über die Chat-Vorlage – um es zu deaktivieren, fügen Sie dem llama-server-Befehl das folgende Flag hinzu:

**MacOS / Linux / WSL:**

`--chat-template-kwargs '{"enable_thinking":false}'`

**Windows PowerShell:**

`--chat-template-kwargs "{\"enable_thinking\":false}"`
{% endhint %}
{% endstep %}

{% step %}

#### **Richten Sie Codex auf Port 8001 aus**

Bearbeiten Sie Ihre `~/.codex/config.toml` um den Port des llama-server zu verwenden:

{% code title="\~/.codex/config.toml" %}

```toml
[model_providers.llama_cpp]
name      = "llama.cpp"
base_url  = "http://localhost:8001/v1"
env_key   = "LLAMA_CPP_API_KEY"
wire_api  = "responses"

[profiles.llama_cpp]
model_provider = "llama_cpp"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

Starten Sie dann mit dem neuen Profil:

```bash
codex -p llama_cpp
```

Da llama-server keinen echten Schlüssel benötigt, können Sie das Auth-Token auf alles setzen:

{% code title="MacOS / Linux / WSL" %}

```bash
export LLAMA_CPP_API_KEY=sk-no-key-required
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:LLAMA_CPP_API_KEY = "sk-no-key-required"
```

{% endcode %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/de/grundlagen/codex.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
