> 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 Ihnen, wie Sie offene LLMs und APIs mit OpenAI Codex verbinden **vollständig lokal**, komplett mit Screenshots. Codex benötigt nur einen lokalen Endpunkt, der die OpenAI Responses API spricht. Verwenden Sie ein beliebiges offenes 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 Gerät mit 24 GB RAM/Unified Memory). 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 Ihnen, LLMs unter macOS, Linux und Windows auszuführen/zu hosten. Sie können jedes andere Modell verwenden; aktualisieren Sie einfach die Modellnamen in Ihren 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 zur Einrichtung eines lokalen Modells</a>

Für Modell-Quants verwenden wir Unsloth [**Dynamische GGUFs**](/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs.md) damit Sie quantisierte GGUF-Modelle ausführen können, während möglichst viel Genauigkeit erhalten bleibt.

{% hint style="info" %}
Codex hat sich seit Januar 2026 ziemlich 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"` in dieser Anleitung.
{% endhint %}

### &#x20;<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. Später leiten wir ihn an den Endpunkt von Unsloth Studio weiter `/v1/responses` sobald Studio gestartet ist.

{% tabs %}
{% tab title="Linux / WSL" %}
In deinem Terminal ausführen:

```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" %}
**Bevorzugen Sie 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`daher gilt die später eingerichtete Provider-Konfiguration in beiden Fällen.
{% endhint %}

{% hint style="info" %}
**Bevorzugen Sie WSL?** Öffnen Sie PowerShell als Administrator und führen Sie aus `wsl --install`neu, starten Sie neu und folgen Sie dann im Ubuntu dem obigen Linux-Tab. Sie benötigen einen kleinen Netzwerk-Trick, um Studio auf dem Windows-Host zu erreichen – siehe den WSL-Hinweis unter Codex mit Studio verbinden.
{% endhint %}
{% endtab %}

{% tab title="macOS" %}
In deinem Terminal ausführen:

<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 - **führen Sie noch nicht `codex` aus.**. Wenn Sie es nackt ausführen, landen Sie im OpenAI-Auswahldialog „Mit ChatGPT anmelden“ (der modal ist – es gibt keinen Ausweg). Sobald wir ein lokales Profil eingerichtet haben, \
`codex --oss --profile unsloth_api` oder `codex --oss --profile llama_cpp` überspringt dieser Bildschirm vollständig, da benutzerdefinierte Anbieter standardmäßig auf `requires_openai_auth = false`gesetzt sind. Starten Sie zuerst den lokalen Modellserver und starten Sie dann Codex dagegen.

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

Bevor wir beginnen, müssen wir zunächst die Einrichtung für das spezifische Modell abschließen, das Sie verwenden werden. 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 Ihren Mac-, Linux- und Windows-Geräten sind.

{% columns %}
{% column %}
Bevor wir beginnen, müssen wir zunächst die Einrichtung für das spezifische Modell abschließen, das Sie verwenden werden. 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 Ihren Mac-, Linux- und Windows-Geräten sind.

Unsloth verfügt außerdem über 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 sehen Sie 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

Für dieses Tutorial werden wir lokale Modelle über eine UI mit Claude Code bereitstellen/verbinden, indem wir [Unsloth](https://github.com/unslothai/unsloth)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) Parametertuning (Temp, Top-P usw.)
* Schnelle CPU- und GPU-Inferenz über llama.cpp
* [LLMs trainieren](/docs/de/neu/studio.md#no-code-training) 2x schneller mit 70 % weniger VRAM

Installationsanweisungen siehe unten:
{% 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 wie unten gezeigt mit der Einrichtung der Umgebung und der Installation der erforderlichen Pakete. Geben Sie **Y** und drücken Sie `Enter` ein, wenn Sie gefragt werden, ob Sie Studio 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 entschieden haben, Unsloth während der Installation nicht zu starten, können Sie die Unsloth-App jederzeit mit `unsloth studio -p 8888` . 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 Kennwortseite 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 beginnt automatisch. Nach Abschluss der Installation 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. Erstellen Sie beim ersten Start 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 `Ctrl + Alt + T`oder indem Sie nach `Terminal` im Anwendungsmenü Ihres Systems suchen.
{% endtab %}

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

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

Zum Installieren kopieren und führen Sie den Installationsbefehl aus:

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

Dann:

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

Unsloth beginnt wie unten gezeigt mit der Einrichtung der Umgebung und der Installation der erforderlichen Pakete. Geben Sie **Y** und drücken Sie `Enter` wenn Sie gefragt werden, ob Sie Studio 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 entschieden haben, Unsloth während der Installation nicht zu starten, können Sie die Unsloth-App jederzeit mit `unsloth studio -p 8888` . 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 Kennwortseite 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 %}

### Leitfaden zum Laden von Modellen + API

{% stepper %}
{% step %}

#### Modell auswählen

Bevor Sie die API verwenden, laden Sie ein Modell aus dem **Modell auswählen** Dropdown-Menü 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 Sie den Client verwenden, senden Sie 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**

Öffnen Sie in Studio **Einstellungen → API** um Ihren API-Schlüssel anzuzeigen oder zu erstellen. Wenn Sie Studio headless mit `unsloth run`wird der Schlüssel auch in der Konsole als `sk-unsloth-...`.

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

Behandeln Sie Ihren API-Schlüssel wie ein Passwort und vermeiden Sie, ihn in Screenshots oder Repositories offenzulegen.
{% endstep %}
{% endstepper %}

### Optional: Laufzeiteinstellungen anpassen

Sie können beim Starten eines Modells zusätzliche Laufzeitoptionen mit `unsloth run`.

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

  --reasoning on \\
  -c 131072
```

Schlussfolgerungsfähige Modelle können 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 Sie einen externen Coding-Agenten steuern, fügen Sie `--disable-tools`hinzu. Dadurch schaltet Unsloth Studio auf Passthrough um, sodass die eigenen Tools des Agents weitergeleitet und als Tool-Aufrufe zurückgegeben werden, damit der Agent sie ausführt, anstatt dass Studio seine integrierten Tools serverseitig ausführt.
{% endhint %}

Weitere erweiterte Laufzeitkonfigurationen findest du im Hauptabschnitt [API-Anpassung](https://unsloth.ai/docs/basics/api#unsloth-run-command) .

## ⚙️ Codex verbinden

Dieser Abschnitt ist derselbe, egal ob Sie Unsloth Studio, llama.cpp oder einen anderen OpenAI-kompatiblen lokalen Server verwendet haben. 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 verwenden Sie dieselbe Struktur mit dem `llama_cpp` Profil im Abschnitt zu llama.cpp.

{% stepper %}
{% step %}

#### **Unsloth-Anbieter konfigurieren**

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

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

```toml
# Standardmäßiger lokaler Provider, verwendet mit `codex --oss`
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 %}

Erstellen Sie 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 Ihr Server unter `GET http://localhost:8888/v1/models`. Unsloth Studio stellt die vollständige Repo-ID bereit (zum Beispiel `unsloth/gemma-4-26B-A4B-it-GGUF`). Der untenstehende Abschnitt zu llama.cpp verwendet `--alias "unsloth/gemma-4-26B-A4B"`verwenden Sie also diese kürzere ID, wenn Sie Codex stattdessen auf llama-server verweisen.
{% endhint %}

{% hint style="info" %}
Diese Konfiguration registriert einen `unsloth_api` Codex-Modellanbieter, verweist ihn auf Unsloth Studio und setzt `unsloth_api` als standardmäßigen lokalen Anbieter für `codex --oss`. Das separate `unsloth_api` Profil wählt den Unsloth-Anbieter und das Modell nur aus, wenn Sie Codex mit `--profile unsloth_api`starten, sodass Ihre normale Codex-Einrichtung unverändert bleibt. Codex liest den API-Schlüssel aus einer Umgebungsvariable namens `UNSLOTH_STUDIO_AUTH_TOKEN`. Den echten Schlüssel setzen Sie im nächsten Schritt.
{% endhint %}

| Feld                     | Was es bewirkt                                                                                                                                                    |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Basis-URL`              | Ihr lokaler Server-Endpunkt + `/v1`                                                                                                                               |
| `Umgebungsvariablenname` | **Name** der Umgebungsvariable, aus der Codex Ihren API-Schlüssel liest. Das ist nicht der Schlüssel selbst.                                                      |
| `wire_api`               | `responses`. Codex verwendet jetzt ausschließlich die Responses API von OpenAI.                                                                                   |
| `requires_openai_auth`   | `false` bewirkt, dass Codex den Bildschirm „Mit ChatGPT anmelden“ für diesen Anbieter überspringt. Der Standard ist bereits `false`aber geben Sie es explizit an. |
| `Modell`                 | Die Modell-ID, die Ihr Server bereitstellt. Rufen Sie `GET <base_url>/models` auf, um die genaue Zeichenfolge zu bestätigen.                                      |
| `oss_provider`           | <p>Setzt <code>unsloth\_api</code> als standardmäßigen lokalen Anbieter beim Start von Codex mit<br> <code>--oss</code>.</p>                                      |
| `requires_openai_auth`   | `false` bewirkt, dass Codex den Bildschirm „Mit ChatGPT anmelden“ für diesen Anbieter überspringt.                                                                |

{% hint style="warning" %}
OpenAI hat `wire_api = "chat"` Unterstützung. Verwenden Sie immer `wire_api = "responses"`. Wenn Sie `wire_api = "chat"`, verweigert Codex den Start mit `` `wire_api = "chat"` wird nicht mehr unterstützt. So beheben Sie das Problem: Setzen Sie `wire_api = "responses"` in Ihrer Anbieterkonfiguration. ``
{% endhint %}

{% hint style="info" %}
Sie können mehrere Profildateien erstellen, eine für jedes Unsloth-Modell, zwischen dem Sie wechseln. Starten Sie das gewünschte mit `codex --profile <profile-name>`.
{% endhint %}
{% endstep %}

{% step %}

#### Setzen Sie die Umgebungsvariable für den API-Schlüssel

Verwenden Sie denselben Namen der Umgebungsvariable, den Sie in `Umgebungsvariablenname`verwendet haben. Im obigen Unsloth-Studio-Beispiel `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`gesetzt, also setzen Sie `UNSLOTH_STUDIO_AUTH_TOKEN` im selben Terminal, von dem aus Sie Codex ausführen:

{% 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 Sie `Umgebungsvariablenname`den Namen geändert haben, benennen Sie die Variable auch in den Befehlen um. Zum Beispiel benötigt ein llama.cpp-Profil, das `env_key = "LLAMA_CPP_API_KEY"` benötigt `LLAMA_CPP_API_KEY`, nicht `UNSLOTH_STUDIO_AUTH_TOKEN`.

**Sitzungsbasiert vs. dauerhaft:** Die obigen Befehle gelten nur für das aktuelle Terminal. Um sie dauerhaft zu übernehmen:

* **macOS / Linux / WSL:** fügen Sie die `export` Zeile zu `~/.bashrc` (bash) oder `~/.zshrc` (zsh).
* **Windows:** führen Sie `setx UNSLOTH_STUDIO_AUTH_TOKEN "YOUR_TOKEN"` einmal aus, oder fügen Sie die `$env:` Zeile zu Ihrem PowerShell- `$PROFILE`.

{% hint style="warning" %}
**Führen Sie Codex in WSL mit Unsloth unter Windows aus?** WSL ist ein separates Netzwerk-Namensraum, daher `localhost` von innerhalb von WSL aus Unsloth nicht erreicht. Bearbeiten Sie Ihre `config.toml` stattdessen die Windows-Host-IP verwenden:

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

Setzen Sie dann `base_url = "http://<that-ip>:8888/v1"`. Wenn Sie das gespiegeltete WSL2-Netzwerk aktiviert haben (`.wslconfig` → `networkingMode=mirrored`), `localhost` funktioniert wie unter nativen 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 *"Vertrauen Sie dem Inhalt dieses Verzeichnisses?"* - wählen Sie *Ja, fortfahren.* Dies ist die vertrauensbezogene Abfrage pro 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" %}
**Sie sehen `Modellmetadaten für`  unsloth/gemma-4-26B-A4B  `nicht gefunden. Es werden standardmäßig die Fallback-Metadaten verwendet`?** Codex wird mit einer eingebauten Tabelle von Kontextfenstern, Tool-Unterstützung und Eingabemodalitäten für die eigenen Modelle von OpenAI ausgeliefert. Für alles andere greift es auf sichere Standardwerte zurück. Die Warnung wird pro Sitzung einmal für jeden Nicht-OpenAI-Slug ausgelöst. Alles funktioniert weiterhin, Sie können sie ignorieren.

**So beheben Sie das Problem:** fügen Sie `model_context_window = 131072` oben in `~/.codex/config.toml` sodass Codex den echten 128K-Kontext von Gemma 4 anstelle seiner Fallback-Schätzung verwendet. Für die volle Kontrolle über Tool-Unterstützung und Eingabemodalitäten verweisen Sie außerdem `model_catalog_json` innerhalb von `[profiles.unsloth_api]` auf eine JSON-Datei mit einem benutzerdefinierten `ModelInfo` Eintrag für Ihren Slug.
{% endhint %}

Das `--profile unsloth_api` Das Flag weist Codex an, zu laden `~/.codex/unsloth_api.config.toml`, wodurch der Unsloth-Studio-Anbieter und das Modell ausgewählt werden. Füge `--oss` um den lokalen OSS-Provider-Flow von Codex auszuführen. Der Modellname erscheint in Codex' Statusleiste.

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

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

```bash
codex --oss --profile unsloth_api --search
```

Um alle Genehmigungsaufforderungen zu umgehen **(VORSICHT: Dadurch kann Codex Code nach Belieben ausführen, ohne jegliche Genehmigungen!)**:

{% code overflow="wrap" %}

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

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

### Probiere eine echte Aufgabe

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 (hole es und lies es).
Führe dann einen einfachen Unsloth-Finetuning-Lauf durch, der beschrieben ist in
https://github.com/unslothai/unsloth. Du hast Zugriff auf 1 GPU.
```

{% endcode %}

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

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

### Trennen oder zurücksetzen

Starte Codex ohne `-p unsloth_api` und es verwendet seinen Standardanbieter. 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 herunterfahren. Wenn es gestoppt ist, 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 fügt einen OpenAI-bezogenen System-Prompt ein; lokale Modelle spiegeln ihn wider | Kein Routing-Bug. Überprüfe es über das Aktivitätsfeld von Studio. Überschreibe den System-Prompt, um die Selbstmeldung zu ändern.         |
| `Verbindung abgelehnt`                                   | Studio läuft nicht oder falscher Port                                                  | Bestätige, dass Studio erreichbar ist unter `http://localhost:8888`; prüfe `Basis-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 bei der Generierung                           | Kontext zu groß für den VRAM                                                           | Reduziere den Kontext in Studio **Einstellungen → Inferenz**, oder verwende eine kleinere Quantisierung                                    |
| Codex zeigt den Auswahlbildschirm „Mit ChatGPT anmelden“ | <p>Ohne Parameter gestartet <code>codex</code> (kein<br> <code>--oss</code>)</p>       | Beenden (Strg+C), dann neu starten mit `codex --oss --profile unsloth_api`. Benutzerdefinierte Anbieter überspringen das                   |
| Werkzeugaufrufe unzuverlässig                            | Benötigt selbstheilenden Fallback                                                      | Studios [selbstheilende Werkzeugaufrufe](file:///1382377/new/studio/#execute-code--heal-tool-calling) sind standardmäßig aktiviert         |
| WSL: `Verbindung abgelehnt` zu `localhost`               | WSL-Netzwerk-Namensraum                                                                | Verwende die Windows-Host-IP in `Basis-URL`, oder aktiviere das gespiegelte WSL2-Netzwerk                                                  |

## 🦙 Llama.cpp-Tutorial

Wir können auch `llama.cpp` direkt verwenden. Wir müssen bereitstellen `llama-server` das ein Open-Source-Framework ist, um LLMs effizient auf Mac-, Linux- und Windows-Geräten auszuführen und bereitzustellen. Das Modell wird bereitgestellt auf **Port 8001** wobei alle Agenten-Werkzeugaufrufe über diesen einzelnen OpenAI-kompatiblen Endpunkt geleitet werden.

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

{% stepper %}
{% step %}

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

Wir müssen installieren `llama.cpp` um lokale LLMs bereitzustellen/zu bedienen, die in Codex verwendet werden sollen. 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 (`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" %}
**Du willst Vision-Unterstützung?** Füge `--include "*mmproj-BF16*"` um auch den Vision-Projektor herunterzuladen, und übergib 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 auch 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 wenden die von Google empfohlenen Sampling-Parameter an (`temp 1.0`, `top_p 0.95`, `top_k 64`) und aktivieren `--jinja` für die korrekte Unterstützung von Werkzeugaufrufen.

Führe diesen Befehl in einem neuen Terminal aus (verwende `tmux` oder öffne ein neues Terminal). Das Folgende sollte **bequem auf eine 24-GB-GPU (RTX 4090) passen** bei etwa 18 GB. `--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 die VRAM-Nutzung zu reduzieren. Wenn du eine verringerte Qualität bemerkst, verwende `bf16` stattdessen (`--cache-type-k bf16 --cache-type-v bf16`), aber der VRAM verdoppelt sich.
{% endhint %}

{% hint style="success" %}
**Den Denkmodus deaktivieren** kann die Leistung bei agentischen Coding-Aufgaben verbessern. Gemma 4 aktiviert das Denken standardmäßig über das Chat-Template – 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 den 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.
