> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/de/grundlagen/codex.md).

# 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**, inklusive Screenshots. Codex benötigt nur einen lokalen Endpunkt, der die OpenAI Responses API spricht. Ausführung mit jedem offenen Modell 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 einem 24-GB-RAM-/Unified-Memory-Gerät). 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 es dir, LLMs auf macOS, Linux und Windows auszuführen/bereitzustellen. Du kannst jedes andere Modell verwenden; aktualisiere einfach die Modellnamen in deinen Skripten und 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 eines lokalen Modells</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 möglichst viel Genauigkeit beibehältst.

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

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

[Codex](https://github.com/openai/codex) ist OpenAIs offizieller Coding-Agent, der lokal ausgeführt wird. Obwohl er für ChatGPT entwickelt wurde, unterstützt er **benutzerdefinierte API-Endpunkte**, wodurch er mit lokalen LLMs funktioniert. Wir werden ihn später auf den `/v1/responses` Endpunkt von Unsloth Studio verweisen, sobald Unsloth 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" %}
Ausführen in Windows PowerShell:

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

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

```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`, sodass die Provider-Konfiguration, die wir später einrichten, in beiden Fällen gilt.
{% endhint %}

{% hint style="info" %}
**Bevorzugst du WSL?** Öffne PowerShell als Administrator und führe aus `wsl --install`, neu starten, dann im Ubuntu den Linux-Tab oben befolgen. Du brauchst einen kleinen Netzwerk-Trick, um Unsloth auf dem Windows-Host zu erreichen – siehe den WSL-Hinweis unter Codex mit Unsloth 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 mit der Installation – **nicht ausführen `codex` noch**. Wenn du es ohne Optionen startest, landest du im OpenAI-Auswahlfenster „Mit ChatGPT anmelden“ (modal – es gibt keinen Ausweg). Sobald wir ein lokales Profil einrichten,\
`codex --oss --profile unsloth_api` oder `codex --oss --profile llama_cpp` überspringt diesen Bildschirm komplett, weil benutzerdefinierte Anbieter standardmäßig `requires_openai_auth = false`. Starte zuerst den lokalen Modellserver und starte dann Codex dagegen.

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

Bevor wir beginnen, müssen wir zuerst das Setup für das konkrete Modell abschließen, das du verwenden wirst. Wir nutzen [Unsloth](https://unsloth.ai/docs/new/studio) (eine Web-UI) und llama.cpp, die Open-Source-Frameworks sind, um LLMs auf deinen Mac-, Linux- und Windows-Geräten auszuführen und bereitzustellen.

{% columns %}
{% column %}
Bevor wir beginnen, müssen wir zuerst das Setup für das konkrete Modell abschließen, das du verwenden wirst. Wir nutzen [Unsloth](/docs/de/neu/studio.md) (eine Web-UI) und llama.cpp, die Open-Source-Frameworks sind, um LLMs auf deinen Mac-, Linux- und Windows-Geräten auszuführen und bereitzustellen.

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, verbunden mit Unsloth:
{% 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

In diesem Tutorial werden wir lokale Modelle über eine UI mit Claude Code verbinden/bereitstellen, indem wir [Unsloth](https://github.com/unslothai/unsloth). Unsloth funktioniert unter Windows, WSL, Linux und macOS.

{% 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 mit 2-Bit, ausgeführt in Unsloth.</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

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

#### Schritt 1: Unsloth einrichten

Starten Sie das `Terminal` auf dem Mac und installieren Sie dann Unsloth, indem Sie den folgenden Befehl eingeben.

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

Unsloth beginnt nun mit der Einrichtung der Umgebung und der Installation der erforderlichen Pakete, wie unten gezeigt. Geben Sie **Y** ein und drücken Sie `Enter` wenn Sie gefragt werden, ob Sie Unsloth jetzt starten möchten. Dadurch wird Unsloth auf Ihrem lokalen **8888** Port gestartet.

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

{% hint style="info" %}
Wenn Sie sich dafür entschieden haben, Unsloth während der Installation nicht zu starten, können Sie die Unsloth-App jederzeit mit `unsloth studio -p 8888` starten. Wenn Sie möchten, dass Ihre Unsloth-Instanz für Clients außerhalb Ihres PCs/Computers erreichbar ist, fügen Sie `-H 0.0.0.0` zum `unsloth studio` Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffnen Sie Ihren bevorzugten Browser und geben Sie `http://127.0.0.1:8888` in das URL-Feld ein. Wenn Sie Unsloth zum ersten Mal installieren, werden Sie zur Passwort-Seite weitergeleitet, wo Sie ein neues Passwort erstellen müssen. Danach sollte Unsloth nun 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

Öffnen Sie das Startmenü, suchen Sie nach `PowerShell`und starten Sie es. Kopieren Sie den Installationsbefehl und geben Sie ihn ein:

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

die Installation wird automatisch beginnen. Nachdem die Installation abgeschlossen ist, fragt PowerShell, ob Sie Unsloth Studio starten möchte&#x6E;**.**

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

Sie können es auch mit dem folgenden Befehl starten:

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

{% hint style="info" %}
Wenn Sie möchten, dass Ihre Instanz für Clients außerhalb Ihres PCs/Computers erreichbar ist.\
Fügen Sie `-H 0.0.0.0` zum `unsloth studio` Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffnen Sie `http://127.0.0.1:8888` in Ihrem Browser. Beim ersten Start erstellen Sie ein neues Passwort, um zur Chat-Seite fortzufahren. **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" %}
Öffnen Sie Ihre Terminal-Anwendung. Sie können sie starten, indem Sie `Strg + Alt + T`drücken oder nach `Terminal` im Anwendungsmenü Ihres Systems suchen.
{% endtab %}

{% tab title="WSL" %}
Klicken Sie im Windows-Startmenü und geben Sie den Namen Ihrer installierten Distribution ein (z. B. `Ubuntu`), und öffnen Sie sie dann.

{% hint style="warning" %}
Unter **WSL**, stellen Sie sicher, dass Ihre **NVIDIA-Treiber** sind installiert auf **Windows** (nicht innerhalb von WSL) und dass das **CUDA Toolkit** in Ihrer WSL-Distribution installiert ist. Weitere Details finden Sie unten unter Systemanforderungen.
{% endhint %}
{% endtab %}
{% endtabs %}

Um zu installieren, kopieren Sie den Installationsbefehl und führen Sie ihn aus:

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

Dann:

1. Klicken Sie in das Terminalfenster
2. Fügen Sie den Befehl mit ein `Strg + Umschalt + V`
3. Drücken Sie `Enter`

Unsloth beginnt nun mit der Einrichtung der Umgebung und der Installation der erforderlichen Pakete, wie unten gezeigt. Geben Sie **Y** ein und drücken Sie `Enter` wenn Sie gefragt werden, ob Sie Unsloth jetzt starten möchten. Dadurch wird Unsloth auf Ihrem lokalen **8888** Port gestartet.

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

{% hint style="info" %}
Wenn Sie sich dafür entschieden haben, Unsloth während der Installation nicht zu starten, können Sie die Unsloth-App jederzeit mit `unsloth studio -p 8888` starten. Wenn Sie möchten, dass Ihre Unsloth-Instanz für Clients außerhalb Ihres PCs/Computers erreichbar ist, fügen Sie `-H 0.0.0.0` zum `unsloth studio` Befehl hinzu.
{% endhint %}

#### Schritt 2: Unsloth starten

Öffnen Sie Ihren bevorzugten Browser und geben Sie `http://127.0.0.1:8888` in das URL-Feld ein. Wenn Sie Unsloth zum ersten Mal installieren, werden Sie zur Passwort-Seite weitergeleitet, wo Sie ein neues Passwort erstellen müssen. Danach sollte Unsloth nun 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 **Modell auswählen** Dropdown oben links auf 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 %}

#### Das 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" %}
Das bestätigt, dass das Modell korrekt geladen wurde und bereit ist zu antworten.
{% endhint %}
{% endstep %}

{% step %}

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

Öffne in Unsloth **Einstellungen → API** um deinen API-Schlüssel anzuzeigen oder zu erstellen. Wenn du Unsloth headless mit `unsloth run`, wird der Schlüssel auch in der Konsole ausgegeben als `sk-unsloth-...`.

<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 %}

### Optional: Laufzeiteinstellungen anpassen

Du kannst beim Starten eines Modells mit zusätzliche Laufzeitoptionen übergeben `unsloth run`.

```bash
# Reasoning aktivieren und ein größeres Kontextfenster verwenden
unsloth run \\
  --model unsloth/gemma-4-26B-A4B-it-GGUF \\
  --reasoning on \\
  -c 131072
```

Reasoning-fähige Modelle können gestartet werden mit `--reasoning on` oder `--reasoning off`. Der `-c` Schalter steuert das verfügbare Kontextfenster.

```bash
# Für einen Coding-Agenten auf einem benutzerdefinierten Port bereitstellen
unsloth run \\
  --model unsloth/gemma-4-26B-A4B-it-GGUF \\
  --disable-tools \\
  -p 8888
```

Verwende `-p` wenn die API auf einem anderen Port laufen soll.

{% hint style="info" %}
Wenn du einen externen Coding-Agenten steuerst, füge `--disable-tools`. Dadurch wechselt Unsloth Studio in den Passthrough-Modus, sodass die eigenen Tools des Agenten weitergeleitet und als Tool-Aufrufe an den Agenten zurückgegeben werden, damit dieser sie ausführt, statt dass Unsloth seine eingebauten Tools serverseitig ausführt.
{% endhint %}

Für eine erweiterte Laufzeitkonfiguration siehe den Hauptabschnitt [API-Optimierung](https://unsloth.ai/docs/basics/api#unsloth-run-command) .

## ⚙️ Codex verbinden

Jetzt, da wir das lokale LLM für Codex eingerichtet haben, konfigurieren wir Codex so, dass es mit deinem Tool funktioniert. Du kannst dich entweder einfach verbinden mit `unsloth start` unten oder es [manuell](#connect-manually).

### ⚡ OpenAI Codex ausführen mit `unsloth start`

Um Codex direkt mit einem Modell zu starten, führe aus:

```bash
unsloth start codex \\
  --model unsloth/gemma-4-E2B-it-GGUF:UD-Q4_K_XL \\
  --context-length 32768
```

Wenn ein GGUF-Modell in Unsloth Studio geladen ist, öffne deinen Projektordner und führe aus:

```bash
unsloth start codex
```

Unsloth erstellt für den Start ein isoliertes Codex-Home und einen von Unsloth unterstützten Responses-Provider. Deine normale `~/.codex` Konfiguration bleibt unverändert.

Der Codex-Zustand ist standardmäßig temporär. Verwende `--persist` wenn du seine von Unsloth verwaltete Konfiguration und Sessions behalten möchtest:

```bash
unsloth start codex --persist
unsloth start codex --persist resume --last
```

<figure><img src="/files/e119ef3efba476507c1c871c3421be42550848c8" alt="OpenAI Codex running with a local GGUF model through Unsloth Studio"><figcaption><p>Codex, verbunden mit einem lokalen GGUF-Modell über den Unsloth-Studio-Responses-Endpunkt.</p></figcaption></figure>

> Codex benötigt derzeit ein GGUF-Modell, das über das `llama-server` Backend bereitgestellt wird.

Siehe die vollständige `unsloth start` Referenz für Modellladen, Persistenz und alle Wrapper-Optionen.

Der Rest dieses Leitfadens behandelt die vollständig manuelle Einrichtung des Codex-Providers.

#### 🔌 Manuell verbinden

Dieser Abschnitt ist für die manuelle Einrichtung; er ist derselbe, egal ob du Unsloth Studio, llama.cpp oder einen anderen OpenAI-kompatiblen lokalen Server verwendest. 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 es oder bearbeite es:

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

```toml
# Standard-Lokalprovider, der mit `codex --oss` verwendet wird
oss_provider = "unsloth_api"

[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
```

{% endcode %}

Erstelle als Nächstes ein Codex-Profil für Unsloth:

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

```toml
model_provider = "unsloth_api"
model = "unsloth/gemma-4-26B-A4B-it-GGUF"
```

{% endcode %}

{% hint style="info" %}
`Modell` muss mit der ID übereinstimmen, die dein Server meldet unter `GET http://localhost:8888/v1/models`. Unsloth Studio zeigt die vollständige Repo-ID an (zum Beispiel `unsloth/gemma-4-26B-A4B-it-GGUF`). Der untenstehende llama.cpp-Abschnitt verwendet `--alias "unsloth/gemma-4-26B-A4B"`, also verwende diese kürzere ID, wenn du Codex stattdessen auf llama-server ausrichtest.
{% endhint %}

{% hint style="info" %}
Diese Konfiguration registriert einen `unsloth_api` Codex-Modellanbieter, leitet ihn auf Unsloth Studio und setzt `unsloth_api` als Standard-Lokalprovider für `codex --oss`. Das separate `unsloth_api` -Profil wählt den Unsloth-Provider und das Modell nur aus, wenn du Codex mit `--profile unsloth_api`startest, sodass dein normales Codex-Setup unverändert bleibt. Codex liest den API-Schlüssel aus einer Umgebungsvariable namens `UNSLOTH_STUDIO_AUTH_TOKEN`. 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` bewirkt, dass Codex für diesen Provider den Bildschirm „Mit ChatGPT anmelden“ überspringt. Standardmäßig ist das bereits `false`, aber gib es ausdrücklich an. |
| `Modell`               | Die Modell-ID, die dein Server bereitstellt. Rufe auf `GET <base_url>/models` um die genaue Zeichenkette zu bestätigen.                                                |
| `oss_provider`         | <p>Setzt <code>unsloth\_api</code> als Standard-Lokalprovider beim Starten von Codex mit<br><code>--oss</code>.</p>                                                    |
| `requires_openai_auth` | `false` bewirkt, dass Codex für diesen Provider den Bildschirm „Mit ChatGPT anmelden“ überspringt.                                                                     |

{% hint style="warning" %}
OpenAI hat `wire_api = "chat"` Unterstützung 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 es: Setze `wire_api = "responses"` in deiner Provider-Konfiguration. ``
{% endhint %}

{% hint style="info" %}
Du kannst mehrere Profildateien erstellen, eine für jedes Unsloth-Modell, zwischen dem du wechselst. Starte das gewünschte mit `codex --profile <profile-name>`.
{% endhint %}
{% endstep %}

{% step %}

#### Setze die Umgebungsvariable für den API-Schlüssel

Verwende denselben Namen der Umgebungsvariable, den du in `env_key`. Im obigen Unsloth-Studio-Beispiel, `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`, also setze `UNSLOTH_STUDIO_AUTH_TOKEN` in demselben Terminal, von dem aus du Codex ausführen 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 in den Befehlen ebenfalls um. Zum Beispiel verwendet ein llama.cpp-Profil `env_key = "LLAMA_CPP_API_KEY"` benötigt `LLAMA_CPP_API_KEY`, nicht `UNSLOTH_STUDIO_AUTH_TOKEN`.

**Sitzung vs. dauerhaft:** gelten die obigen Befehle 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 deiner PowerShell `$PROFILE`.

{% hint style="warning" %}
**Codex in WSL mit Unsloth unter Windows ausführen?** WSL ist ein separates Netzwerk-Namespace, daher `localhost` von innerhalb von WSL Unsloth nicht erreicht. Bearbeite deine `config.toml` und verwende stattdessen die Windows-Host-IP:

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

Dann setze `base_url = "http://<that-ip>:8888/v1"`. Wenn du das gespiegelte Networking von WSL2 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 --oss --profile unsloth_api
```

{% hint style="info" %}
**Erster Start in einem neuen Verzeichnis** Codex fragt *"Do you trust the contents of this directory?"* - wähle *Ja, fortfahren.* Dies ist die Vertrauensabfrage pro aktuellem Arbeitsverzeichnis, nicht der ChatGPT-Login (der wird wegen \`requires\_openai\_auth = false\` übersprungen). Weitere Starts im selben Verzeichnis überspringen diese Abfrage.
{% endhint %}

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

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

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

Der `--profile unsloth_api` -Schalter weist Codex an, zu laden `~/.codex/unsloth_api.config.toml`, wodurch der Unsloth-Studio-Provider und das Modell ausgewählt werden. Füge `--oss` hinzu, um den lokalen OSS-Provider-Flow von Codex zu verwenden. 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 --oss --profile unsloth_api --search
```

Um alle Bestätigungsaufforderungen zu umgehen **(ACHTUNG: Dadurch wird Codex ohne jede Genehmigung Code schreiben und ausführen, wie es ihm gefällt!)**:

{% code overflow="wrap" %}

```bash
codex --oss --profile unsloth_api --search --dangerously-bypass-approvals-and-sandbox
```

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

### Probier eine echte Aufgabe aus

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

{% code overflow="wrap" %}

```
Du darfst nur im aktuellen Arbeitsverzeichnis `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 für die Anleitung (hol sie dir und lies sie).
Führe dann einen einfachen Unsloth-Finetuning-Lauf aus, beschrieben in
https://github.com/unslothai/unsloth. Du hast Zugriff auf 1 GPU.
```

{% endcode %}

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

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

### 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 laufen lassen oder herunterfahren. Im gestoppten Zustand fängt es nichts ab.

### Fehlerbehebung

| Symptom                                                  | Wahrscheinliche Ursache                                                                 | Beheben                                                                                                                                    |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `Modell-Metadaten für ... nicht gefunden`                | Nicht-OpenAI-Slug, keine eingebauten Metadaten                                          | Unschädliche Warnung. Um die Nebeneffekte zu unterdrücken, setze `model_context_window = 131072` in `~/.codex/config.toml`, oder verweise  |
| Codex sagt, es sei GPT                                   | Codex fügt einen auf OpenAI verweisenden System-Prompt ein; lokale Modelle spiegeln ihn | Kein Routing-Fehler. Überprüfe es über das Aktivitätsfeld von Unsloth. Überschreibe den System-Prompt, um die Eigenbeschreibung zu ändern. |
| `Verbindung verweigert`                                  | Unsloth läuft nicht oder der Port ist falsch                                            | Bestätige, dass Unsloth läuft unter `http://localhost:8888`; prüfe `base_url` in `config.toml`                                             |
| `wire_api = "chat" wird nicht mehr unterstützt`          | Veraltet `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 den VRAM                                                            | Reduziere den Kontext in Unsloth **Einstellungen → Inferenz**, oder verwende eine kleinere Quantisierung                                   |
| Codex zeigt den Auswahlbildschirm „Mit ChatGPT anmelden“ | <p>Ohne Optionen gestartet <code>codex</code> (kein<br><code>--oss</code>)</p>          | Beenden (Ctrl+C), dann neu starten mit `codex --oss --profile unsloth_api`. Benutzerdefinierte Provider überspringen das                   |
| Tool-Aufrufe unzuverlässig                               | Benötigt selbstheilendes Fallback                                                       | Unsloths [selbstheilende Tool-Aufrufe](file:///1382377/new/studio/#execute-code--heal-tool-calling) sind standardmäßig aktiviert           |
| WSL: `Verbindung verweigert` zu `localhost`              | WSL-Netzwerk-Namensraum                                                                 | Verwende die Windows-Host-IP in `base_url`, oder aktiviere das gespiegelte WSL2-Netzwerk                                                   |

## 🦙 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 bereitgestellt auf **Port 8001** mit allen Agent-Tool-Aufrufen, die über diesen einzigen OpenAI-kompatiblen Endpunkt geleitet werden.

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

{% stepper %}
{% step %}

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

Wir müssen `llama.cpp` installieren, um lokale LLMs bereitzustellen/zu servieren, die in Codex verwendet werden. Wir folgen den offiziellen Build-Anweisungen für korrekte GPU-Bindings und maximale Leistung. Ändere `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn Sie keine GPU haben oder nur CPU-Inferenz wünschen. **Für Apple-Mac-/Metal-Geräte**, setzen Sie `-DGGML_CUDA=OFF` und fahren Sie 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 (`pip install huggingface_hub hf_transfer`). Wir verwenden die **UD-Q4\_K\_XL** Quantisierung für das beste Verhältnis von Größe und Genauigkeit. Alle Unsloth-GGUF-Uploads findest du 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" %}
**Visionsunterstützung gewünscht?** Füge `--include "*mmproj-BF16*"` um auch den Vision-Projektor herunterzuladen, und übergebe dann `--mmproj unsloth/gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf` zu `llama-server`. Codex selbst ist nur Text, daher ist das optional.
{% endhint %}

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

{% step %}

#### **Starte den Llama-Server**

Um Gemma-4-26B-A4B für agentische Workloads bereitzustellen, verwenden wir `llama-server`. Wir verwenden die von Google empfohlenen Sampling-Parameter (`temp 1.0`, `top_p 0.95`, `top_k 64`) und aktivieren `--jinja` für ordentliche Unterstützung bei Tool-Aufrufen.

Führe diesen Befehl in einem neuen Terminal aus (verwende `tmux` oder öffne ein neues Terminal). Das Folgende sollte **komfortabel auf eine 24GB-GPU (RTX 4090) passen** bei \~18GB. `--fit auf` wird auch automatisch auslagern, aber wenn du schlechte Leistung bemerkst, reduziere `--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 KV-Cache-Quantisierung, um den VRAM-Verbrauch zu reduzieren. Wenn du eine reduzierte Qualität siehst, verwende `bf16` anstelle dessen (`--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üge 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 %}

#### **Richte Codex auf Port 8001 aus**

Bearbeite deine `~/.codex/config.toml` um den llama-server-Port 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"
```

{% endcode %}

Dann starte mit dem neuen Profil:

```bash
codex --oss llama_cpp
```

Da llama-server keinen echten Schlüssel benötigt, kannst du das Auth-Token auf irgendetwas 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
