> 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/fr/notions-de-base/codex.md).

# Comment exécuter des LLM locaux avec OpenAI Codex

Utilisez des modèles ouverts avec OpenAI Codex sur votre appareil, en local.

Ce guide étape par étape vous montre comment connecter des LLMs ouverts et des API à OpenAI Codex **entièrement en local**, avec captures d’écran à l’appui. Codex a seulement besoin d’un point de terminaison local qui parle l’API OpenAI Responses. Exécutez-le avec n’importe quel modèle ouvert comme Qwen, DeepSeek, Gemma, et plus encore.

Pour ce tutoriel, nous utiliserons les modèles ouverts : [Gemma 4](/docs/fr/modeles/gemma-4.md) et [Qwen3.5](/docs/fr/modeles/qwen3.5.md) qui sont de puissants modèles agentiques et de codage (fonctionnent sur un appareil avec 24 Go de RAM/mémoire unifiée). Pour l’inférence, nous utiliserons [Unsloth Studio](https://github.com/unslothai/unsloth) et [`llama.cpp`](https://github.com/ggml-org/llama.cpp) vous permet d’exécuter/de servir des LLMs sur macOS, Linux et Windows. Vous pouvez le remplacer par n’importe quel autre modèle, il suffit de mettre à jour les noms des modèles dans vos scripts et dans la configuration de Codex.

<a href="/docs/fr/notions-de-base/codex.md#setup-codex" class="button primary" data-icon="openai">Configurer Codex</a><a href="/docs/fr/notions-de-base/codex.md#quickstart-tutorials" class="button primary">📖 Tutoriel de configuration du modèle local</a>

Pour les quantifications du modèle, nous utiliserons Unsloth [**Dynamic GGUFs**](/docs/fr/notions-de-base/dynamic-3.0-ggufs.md) afin que vous puissiez exécuter des modèles GGUF quantifiés tout en conservant autant de précision que possible.

{% hint style="info" %}
Codex a pas mal changé depuis janvier 2026. Il utilise désormais [**OpenAI Responses API**](https://platform.openai.com/docs/api-reference/responses) **exclusivement**, et la prise en charge des Chat Completions a été dépréciée. [Unsloth Studio](#unsloth-tutorial) prend en charge les deux, donc nous utiliserons `wire_api = "responses"` tout au long de ce guide.
{% endhint %}

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

[Codex](https://github.com/openai/codex) est l’agent de codage officiel d’OpenAI qui s’exécute en local. Bien qu’il soit conçu pour ChatGPT, il prend en charge **des points de terminaison API personnalisés**, ce qui le rend compatible avec des LLMs locaux. Nous le pointerons plus tard vers le `/v1/responses` d’Unsloth Studio une fois Unsloth démarré.

{% tabs %}
{% tab title="Linux / WSL" %}
Exécutez dans votre terminal :

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

{% endtab %}

{% tab title="Windows" %}
Exécutez dans PowerShell Windows :

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

{% hint style="info" %}
**Vous préférez l’application de bureau Codex ?** Installez-la depuis le Microsoft Store :

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

Ou via le [Microsoft app Store](https://apps.microsoft.com/detail/9plm9xgg6vks). L’application lit le même `%USERPROFILE%\.codex\config.toml`, donc la configuration du fournisseur que nous mettrons en place plus tard s’applique dans les deux cas.
{% endhint %}

{% hint style="info" %}
**Vous préférez WSL ?** Ouvrez PowerShell en tant qu’administrateur, exécutez `wsl --install`, redémarrez, puis suivez l’onglet Linux ci-dessus dans Ubuntu. Vous aurez besoin d’une petite astuce réseau pour atteindre Unsloth sur l’hôte Windows - voir l’astuce WSL dans Connect Codex à Unsloth.
{% endhint %}
{% endtab %}

{% tab title="MacOS" %}
Exécutez dans votre terminal :

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

{% endtab %}
{% endtabs %}

C’est tout pour l’installation - **n’exécutez pas `codex` encore**. Le lancer seul vous fait basculer dans le sélecteur "Se connecter avec ChatGPT" d’OpenAI (qui est modal - il n’y a pas d’issue). Une fois que nous aurons branché un profil local,\
`codex --oss --profile unsloth_api` ou `codex --oss --profile llama_cpp` ignore complètement cet écran car les fournisseurs personnalisés utilisent par défaut `requires_openai_auth = false`. Démarrez d’abord le serveur du modèle local, puis lancez Codex dessus.

## 📖 Tutoriels de démarrage rapide <a href="#quickstart-tutorials" id="quickstart-tutorials"></a>

Avant de commencer, nous devons d’abord terminer la configuration du modèle spécifique que vous allez utiliser. Nous utilisons [Unsloth](https://unsloth.ai/docs/new/studio) (une interface web) et llama.cpp, qui sont des frameworks open source pour exécuter et servir des LLMs sur vos appareils Mac, Linux et Windows.

{% columns %}
{% column %}
Avant de commencer, nous devons d’abord terminer la configuration du modèle spécifique que vous allez utiliser. Nous utilisons [Unsloth](/docs/fr/nouveau/studio.md) (une interface web) et llama.cpp, qui sont des frameworks open source pour exécuter et servir des LLMs sur vos appareils Mac, Linux et Windows.

Unsloth dispose également d’un système unique d’auto-réparation [d’appel d’outils](/docs/fr/nouveau/studio/chat.md#auto-healing-tool-calling) et [recherche Web](/docs/fr/nouveau/studio/chat.md#code-execution) capabilités. Voir à droite Claude Code connecté à Unsloth :
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FEGEKo6oPthjtSf0shavs%2F127.0.0.1_8889_chat%20(2).png?alt=media&amp;token=c59c7110-402c-4d21-96c5-cd96c921a184" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

<a href="/docs/fr/notions-de-base/codex.md#unsloth-tutorial" class="button primary">🦥 Tutoriel Unsloth</a><a href="/pages/0bb2f0a13e244fd2f0ea640c96c4e297bf83db93#llama.cpp-tutorial" class="button primary">🦙 Tutoriel llama.cpp</a>

## 🦥 Tutoriel Unsloth

Pour ce tutoriel, nous servirons/relierons des modèles locaux à Claude Code via une interface utilisateur en utilisant [Unsloth](https://github.com/unslothai/unsloth). Unsloth fonctionne sur Windows, WSL, Linux et MacOS.

{% columns %}
{% column %}

* Rechercher, télécharger, [exécuter des GGUF](/docs/fr/nouveau/studio.md#run-models-locally) et des modèles safetensor
* [**Auto-réparation** appel d’outils](/docs/fr/nouveau/studio.md#execute-code--heal-tool-calling) + **recherche Web**
* [**Exécution de code**](/docs/fr/nouveau/studio.md#run-models-locally) (Python, Bash)
* [Inférence automatique](https://unsloth.ai/docs/desktop#feature-deep-dive) réglage des paramètres (temp, top-p, etc.)
* Inférence rapide CPU + GPU via llama.cpp
* [Entraîner des LLMs](/docs/fr/nouveau/studio.md#no-code-training) 2x plus rapide avec 70 % de VRAM en moins

Voir ci-dessous pour les instructions d’installation :
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FY3nfB43TEk7k11zcE4wm%2Fthe%20big%20one.gif?alt=media&amp;token=335be087-7375-4f89-9039-71195ee44ab8" alt=""><figcaption><p>Exemple de Qwen3.6 2 bits exécuté dans Unsloth.</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

#### Télécharger Unsloth

La façon la plus simple de commencer est d’installer l’ [Unsloth Desktop](/docs/fr/desktop.md) application. Elle prend en charge [MacOS](/docs/fr/commencer/install/mac.md), Linux, [Windows](/docs/fr/commencer/install/windows-installation.md), [NVIDIA](/docs/fr/commencer/install/pip-install.md), [AMD](/docs/fr/commencer/install/amd.md), Intel et les configurations CPU.

<a href="https://unsloth.ai/download" class="button primary" data-icon="down-to-bracket">Télécharger Unsloth</a>

* <i class="fa-apple">:apple:</i> [Télécharger pour macOS](https://unsloth.ai/download/mac)
* <i class="fa-windows">:windows:</i> [Télécharger pour Windows](https://unsloth.ai/download/windows)
* <i class="fa-linux">:linux:</i> [Télécharger pour Linux](https://unsloth.ai/download/linux)

Ou, si vous préférez une installation manuelle :

**MacOS, Linux, WSL :**

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

**Windows PowerShell :**

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

{% endstep %}

{% step %}

#### Installer

1. Ouvrez l’installateur Unsloth (`.dmg`, `.exe` fichiers)
2. Glissez Unsloth dans Applications sur Mac ou terminez l’installation sur Windows.
3. Lancez l’application et attendez la fin de l’installation
   {% endstep %}

{% step %}

#### Choisir un modèle

Ouvrez le menu déroulant « Select model » en haut ou l’onglet « Model hub », choisissez un modèle et une quantification adaptés à votre appareil, puis téléchargez-les. Une fois terminé, commencez à discuter - aucune configuration requise.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FNCEVgKLJI0goPqjgcg9B%2Fmodel%20hub%20models.png?alt=media&amp;token=533b5e3c-a901-4b33-963e-4a703cc9d5a6" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Unsloth est maintenant prêt

Pour commencer à discuter, tapez un message puis appuyez sur Entrée.

* **Connecter les outils :** [Claude Code](/docs/fr/notions-de-base/claude-code.md), [Codex](/docs/fr/notions-de-base/codex.md), recherche web, [MCP](/docs/fr/notions-de-base/mcp.md) et plus encore
* **Entraîner des modèles :** Affiner du texte, de la diffusion, des embeddings, et plus encore
* **Générer des médias :** Créer et entraîner localement des images, des vidéos, du TTS

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FpAGvwjGD0iVMZKBoyu7m%2Fgreeennn.png?alt=media&amp;token=d17a5528-8375-444c-9aff-f9e9f7903bcd" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Guide de chargement du modèle + API

{% stepper %}
{% step %}

#### Sélectionner un modèle

Avant d’utiliser l’API, chargez un modèle depuis le **Select model** menu déroulant dans le coin supérieur gauche de la page Chat.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FuZqd6tcZ5LgMSh4ZND5x%2Fexport-1778505117710-24fps.gif?alt=media&amp;token=9defec95-5404-4654-9c33-67be967c9820" alt=""><figcaption></figcaption></figure>

Dans ce guide, nous utiliserons : `unsloth/gemma-4-26B-A4B-it-GGUF` avec la quantification `UD-Q4_K_XL` recommandée.
{% endstep %}

{% step %}

#### Tester le modèle

Avant d’utiliser le client, envoyez un bref message :

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F2Ivilke0aJX8AHWDwSmr%2Fimage.png?alt=media&amp;token=9f9380b9-f963-4861-a17b-fd0fe16684d4" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Cela confirme que le modèle a été chargé correctement et qu’il est prêt à répondre.
{% endhint %}
{% endstep %}

{% step %}

#### **clé API Unsloth**

Dans Unsloth, ouvrez **Paramètres → API** pour afficher ou créer votre clé API. Si vous démarrez Unsloth en mode headless avec `la commande unsloth run`, la clé est également affichée dans la console sous la forme `sk-unsloth-...`.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FAZwaRmBVPpXA2SFhMGW9%2Fexport-1778506924396-30fps.gif?alt=media&amp;token=96f3f1a7-fce4-4508-b1b0-e8b6294dc423" alt=""><figcaption></figcaption></figure>

Traitez votre clé API comme un mot de passe et évitez de l’exposer dans des captures d’écran ou des dépôts.
{% endstep %}
{% endstepper %}

### Optionnel : ajuster les paramètres d’exécution

Vous pouvez passer des options d’exécution supplémentaires lors du démarrage d’un modèle avec `la commande unsloth run`.

```bash
# Activer le raisonnement et utiliser une plus grande fenêtre de contexte
unsloth run \
  --model unsloth/gemma-4-26B-A4B-it-GGUF \
  --reasoning on \
  -c 131072
```

Les modèles capables de raisonnement peuvent être démarrés avec `--reasoning on` ou `--reasoning off`. Le `-c` indicateur contrôle la fenêtre de contexte disponible.

```bash
# Servir pour un agent de codage sur un port personnalisé
unsloth run \
  --model unsloth/gemma-4-26B-A4B-it-GGUF \
  --disable-tools \
  -p 8888
```

Utilisez `-p` si vous avez besoin que l’API s’exécute sur un port différent.

{% hint style="info" %}
Lorsque vous pilotez un agent de codage externe, ajoutez `--disable-tools`. Cela fait passer Unsloth Studio en mode passthrough, de sorte que les propres outils de l’agent sont transmis et renvoyés comme appels d’outils pour que l’agent les exécute, au lieu qu’Unsloth exécute ses outils intégrés côté serveur.
{% endhint %}

Pour une configuration d’exécution plus avancée, consultez la [configuration de l’API](https://unsloth.ai/docs/basics/api#unsloth-run-command) .

## ⚙️ Connecter Codex

Maintenant que nous avons configuré le LLM local pour Codex, nous configurons Codex pour fonctionner avec votre outil. Vous pouvez soit vous connecter facilement avec `unsloth start` ci-dessous, soit le faire [manuellement](#connect-manually).

### ⚡ Exécuter OpenAI Codex avec `unsloth start`

Pour lancer Codex directement avec un modèle, exécutez :

```bash
unsloth start Code \
    --model unsloth/Qwen3.8-27B-GGUF-GGUF:UD-Q4_K_XL
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 20 \
    --min-p 0.0 \
    --reasoning-effort medium
```

{% hint style="success" %}
S’il n’y a pas de paramètres/indicateurs d’échantillonnage définis, Unsloth sélectionne automatiquement les meilleurs paramètres/recommandations pour le modèle, y compris la longueur de contexte, la température, etc.
{% endhint %}

Avec un modèle GGUF chargé dans Unsloth Studio, ouvrez le dossier de votre projet et exécutez :

```bash
unsloth start codex
```

Unsloth crée un répertoire personnel Codex isolé et un fournisseur Responses adossé à Unsloth pour le lancement. Votre configuration normale `~/.codex` n’est pas modifiée.

L’état de Codex est temporaire par défaut. Utilisez `--persist` lorsque vous voulez conserver sa configuration et ses sessions gérées par Unsloth :

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

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FzXhTRRhKnT7tc5A4su0w%2FScreenshot_20260714_150727.png?alt=media&amp;token=1ad76079-1127-443e-8e2b-96545269003e" alt="OpenAI Codex running with a local GGUF model through Unsloth Studio"><figcaption><p>Codex connecté à un modèle GGUF local via le point de terminaison Unsloth Studio Responses.</p></figcaption></figure>

> Codex nécessite actuellement un modèle GGUF servi via le `llama-server` backend.

Voir la `unsloth start` référence complète pour le chargement des modèles, la persistance et toutes les options du wrapper.

Le reste de ce guide couvre une configuration de fournisseur Codex entièrement manuelle.

#### 🔌 Connecter manuellement

Cette section concerne la configuration manuelle ; c’est la même chose que vous ayez utilisé Unsloth Studio, llama.cpp ou un autre serveur local compatible OpenAI. Codex a besoin de trois valeurs : la **clé API**, l’ **URL de base**, et le **nom du modèle**. L’exemple ci-dessous utilise Unsloth Studio ; pour llama.cpp, utilisez la même structure avec le `llama_cpp` profil dans la section llama.cpp.

{% stepper %}
{% step %}

#### **Configurer le fournisseur Unsloth**

Codex recherche `~/.codex/config.toml` sur macOS/Linux/WSL ou `%USERPROFILE%\.codex\config.toml` sur Windows. Créez-le ou modifiez-le :

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

```toml
# Fournisseur local par défaut utilisé avec `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 %}

Ensuite, créez un profil Codex pour 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" %}
`Le` doit correspondre à l’identifiant que votre serveur indique à `GET http://localhost:8888/v1/models`. Unsloth Studio expose l’identifiant complet du dépôt (par exemple `unsloth/gemma-4-26B-A4B-it-GGUF`). La section llama.cpp ci-dessous utilise `--alias "unsloth/gemma-4-26B-A4B"`, utilisez donc cet identifiant plus court lorsque vous pointez Codex vers llama-server à la place.
{% endhint %}

{% hint style="info" %}
Cette configuration enregistre un fournisseur de modèle Codex `unsloth_api` et le pointe vers Unsloth Studio, puis définit `unsloth_api` comme fournisseur local par défaut pour `codex --oss`. Le `unsloth_api` profil séparé sélectionne le fournisseur et le modèle Unsloth uniquement lorsque vous lancez Codex avec `--profile unsloth_api`, donc votre configuration Codex habituelle n’est pas modifiée. Codex lit la clé API à partir d’une variable d’environnement nommée `UNSLOTH_STUDIO_AUTH_TOKEN`. Vous définirez la vraie clé à l’étape suivante.
{% endhint %}

| Champ                  | Ce qu’il fait                                                                                                                                        |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `base_url`             | Le point de terminaison de votre serveur local + `/v1`                                                                                               |
| `env_key`              | **Nom** de la variable d’environnement à partir de laquelle Codex lit votre clé API. Ce n’est pas la clé elle-même.                                  |
| `wire_api`             | `responses`. Codex utilise désormais exclusivement l’API Responses d’OpenAI.                                                                         |
| `requires_openai_auth` | `false` fait ignorer à Codex l’écran « Se connecter avec ChatGPT » pour ce fournisseur. La valeur par défaut est déjà `false`, mais soyez explicite. |
| `Le`                   | L’identifiant du modèle exposé par votre serveur. Interrogez `GET <base_url>/models` pour confirmer la chaîne exacte.                                |
| `oss_provider`         | <p>Définit <code>unsloth\_api</code> comme fournisseur local par défaut lors du lancement de Codex avec<br><code>--oss</code>.</p>                   |
| `requires_openai_auth` | `false` fait ignorer à Codex l’écran « Se connecter avec ChatGPT » pour ce fournisseur.                                                              |

{% hint style="warning" %}
OpenAI a supprimé `wire_api = "chat"` la prise en charge. Utilisez toujours `wire_api = "responses"`. Si vous définissez `wire_api = "chat"`, Codex refuse de démarrer avec `` `wire_api = "chat"` n’est plus pris en charge. Comment corriger : définissez `wire_api = "responses"` dans la configuration de votre fournisseur. ``
{% endhint %}

{% hint style="info" %}
Vous pouvez créer plusieurs fichiers de profil, un pour chaque modèle Unsloth entre lesquels vous basculez. Lancez celui que vous voulez avec `codex --profile <nom-du-profil>`.
{% endhint %}
{% endstep %}

{% step %}

#### Définir la variable d’environnement de la clé API

Utilisez le même nom de variable d’environnement que celui écrit dans `env_key`. Dans l’exemple Unsloth Studio ci-dessus, `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`, donc définissez `UNSLOTH_STUDIO_AUTH_TOKEN` dans le même terminal depuis lequel vous exécuterez Codex :

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

Si vous avez renommé `env_key`, renommez aussi la variable dans les commandes. Par exemple, un profil llama.cpp qui utilise `env_key = "LLAMA_CPP_API_KEY"` a besoin de `LLAMA_CPP_API_KEY`, et non `UNSLOTH_STUDIO_AUTH_TOKEN`.

**Session vs Persistance :** les commandes ci-dessus s’appliquent uniquement au terminal actuel. Pour conserver :

* **MacOS / Linux / WSL :** ajoutez la `ligne export` à `~/.bashrc` (bash) ou `~/.zshrc` (zsh).
* **Windows :** exécutez `setx UNSLOTH_STUDIO_AUTH_TOKEN "YOUR_TOKEN"` une fois, ou ajoutez la `$env:` ligne à votre PowerShell `$PROFILE`.

{% hint style="warning" %}
**Vous exécutez Codex dans WSL avec Unsloth sur Windows ?** WSL est un espace de noms réseau distinct, donc `localhost` depuis WSL n’atteint pas Unsloth. Modifiez votre `config.toml` pour utiliser à la place l’IP de l’hôte Windows :

```bash
# Obtenir l’IP de l’hôte Windows depuis WSL
ip route | grep default | awk '{print $3}'
```

Puis définissez `base_url = "http://<that-ip>:8888/v1"`. Si vous avez activé la mise en réseau miroir de WSL2 (`.wslconfig` → `networkingMode=mirrored`), `localhost` fonctionne comme sous Windows natif.
{% endhint %}
{% endstep %}

{% step %}

#### **Lancer Codex**

```bash
mkdir my-project && cd my-project
codex --oss --profile unsloth_api
```

{% hint style="info" %}
**Premier lancement dans un nouveau répertoire** Codex demande *"Faites-vous confiance au contenu de ce répertoire ?"* - choisissez *Oui, continuer.* Il s'agit de l'invite de confiance par répertoire courant, pas de la connexion ChatGPT (celle-ci est ignorée car \`requires\_openai\_auth = false\`). Les lancements suivants dans le même répertoire ignorent cette invite.
{% endhint %}

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FWLWGwxYFup5JCptPghfx%2Fimage.png?alt=media&amp;token=e47961e9-20b6-4ec7-adec-919c819dc740" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**En voyant `Métadonnées du modèle pour` unsloth/gemma-4-26B-A4B `introuvables. Utilisation des métadonnées de secours par défaut`?** Codex est fourni avec une table intégrée des fenêtres de contexte, de la prise en charge des outils et des modalités d'entrée pour les modèles OpenAI eux-mêmes. Pour tout autre modèle, il revient à des valeurs par défaut sûres. L'avertissement se déclenche une fois par session pour chaque identifiant non-OpenAI. Tout fonctionne quand même, vous pouvez l'ignorer.

**Pour corriger cela :** ajoutez `model_context_window = 131072` en haut de `~/.codex/config.toml` afin que Codex utilise le véritable contexte 128K de Gemma 4 au lieu de son estimation de secours. Pour contrôler aussi entièrement la prise en charge des outils et les modalités d'entrée, indiquez `model_catalog_json` dans `[profiles.unsloth_api]` vers un fichier JSON contenant une entrée personnalisée `ModelInfo` pour votre identifiant.
{% endhint %}

Le `--profile unsloth_api` l'option demande à Codex de charger `~/.codex/unsloth_api.config.toml`, ce qui sélectionne le fournisseur et le modèle Unsloth Studio. Ajoutez `--oss` pour exécuter le flux du fournisseur OSS local de Codex. Le nom du modèle apparaît dans la barre d’état de Codex.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F0EDBeLBbGfnBbW2Osnh9%2Fimage.png?alt=media&amp;token=e96a4905-5816-4c12-bd4d-a3a41500ef29" alt=""><figcaption></figcaption></figure>

Ajoutez `--search` pour activer la recherche sur le web :

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

Pour contourner toutes les invites d’approbation **(ATTENTION, cela fera exécuter à Codex le code comme bon lui semble, sans aucune approbation !)**:

{% code overflow="wrap" %}

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

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

### Essayez une vraie tâche

Essayez cette invite pour installer et exécuter un simple fine-tuning Unsloth :

{% code overflow="wrap" %}

```
Vous ne pouvez travailler que dans le répertoire courant project/. Ne cherchez pas AGENTS.md - c’est ici.
Installez Unsloth via un environnement virtuel avec uv. Voir
https://unsloth.ai/docs/get-started/install/pip-install pour savoir comment (récupérez-le et lisez-le).
Puis effectuez un simple entraînement de fine-tuning Unsloth décrit dans
https://github.com/unslothai/unsloth. Vous avez accès à 1 GPU.
```

{% endcode %}

et si nous attendons un peu plus longtemps, vous verrez un modèle fine-tuné avec succès avec Unsloth !

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FFPuzCCHWIIXwuvTloNDh%2Fexport-1778571001272-30fps.gif?alt=media&amp;token=2bcaeaf1-a906-4169-b4ac-f17388ebaebb" alt=""><figcaption></figcaption></figure>

### Se déconnecter ou revenir en arrière

Lancer Codex sans `-p unsloth_api` et il utilisera son fournisseur par défaut. Ou supprimez les `[profiles.unsloth_api]` et `[model_providers.unsloth_api]` blocs de `~/.codex/config.toml`.

```bash
unset UNSLOTH_STUDIO_AUTH_TOKEN
```

Vous pouvez laisser Unsloth Studio en cours d’exécution ou l’arrêter. Il n’intercepte rien lorsqu’il est arrêté.

### Dépannage

| Symptôme                                               | Cause probable                                                                                   | Correction                                                                                                                                           |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Métadonnées du modèle pour ... introuvables`          | Identifiant non-OpenAI, aucune métadonnée intégrée                                               | Avertissement sans danger. Pour supprimer les effets secondaires, définissez `model_context_window = 131072` dans `~/.codex/config.toml`, ou pointez |
| Codex dit que c’est GPT                                | Codex injecte une invite système faisant référence à OpenAI ; les modèles locaux la reproduisent | Ce n’est pas un bug de routage. Vérifiez via le panneau d’activité d’Unsloth. Remplacez l’invite système pour modifier l’auto-déclaration.           |
| `Connexion refusée`                                    | Unsloth n’est pas en cours d’exécution ou utilise le mauvais port                                | Confirmez qu’Unsloth est actif sur `http://localhost:8888`; vérifiez `base_url` dans `config.toml`                                                   |
| `wire_api = "chat" n’est plus pris en charge`          | Ancien `wire_api = "chat"` dans la configuration                                                 | Passez à `wire_api = "responses"`                                                                                                                    |
| `modèle introuvable`                                   | Erreur de frappe dans l’ID du modèle                                                             | `GET http://localhost:8888/v1/models` et copiez l’ID exact                                                                                           |
| OOM en cours de génération                             | Contexte trop grand pour la VRAM                                                                 | Réduisez le contexte dans Unsloth **Paramètres → Inférence**, ou utilisez une quantification plus petite                                             |
| Codex affiche le sélecteur "Se connecter avec ChatGPT" | <p>Lancé sans configuration <code>codex</code> (aucun<br><code>--oss</code>)</p>                 | Quittez (Ctrl+C), puis relancez avec `codex --oss --profile unsloth_api`. Les fournisseurs personnalisés contournent cela                            |
| Appels d’outils peu fiables                            | Besoin d’un repli auto-réparateur                                                                | d’Unsloth [les appels d’outils auto-réparateurs](file:///1382377/new/studio/#execute-code--heal-tool-calling) sont activés par défaut                |
| WSL : `Connexion refusée` à `localhost`                | espace de noms réseau WSL                                                                        | Utilisez l’adresse IP de l’hôte Windows dans `base_url`, ou activez la mise en réseau miroir de WSL2                                                 |

## 🦙 Tutoriel Llama.cpp

Nous pouvons aussi utiliser `llama.cpp` directement. Nous devons déployer `llama-server` qui est un framework open source permettant d’exécuter et de servir efficacement des LLM sur des appareils Mac, Linux et Windows. Le modèle sera servi sur **le port 8001** avec tous les appels d’outils de l’agent acheminés via ce seul point de terminaison compatible OpenAI.

{% hint style="info" %}
Le point de terminaison llama.cpp sera sur **le port 8001** au lieu de `8888` (valeur par défaut d’Unsloth Studio). Ajustez votre Codex `base_url` en conséquence dans `~/.codex/config.toml`.
{% endhint %}

{% stepper %}
{% step %}

#### **Installer llama.cpp**

Nous devons installer `llama.cpp` pour déployer/servir des LLM locaux à utiliser dans Codex. Nous suivons les instructions de build officielles pour des liaisons GPU correctes et des performances maximales. Modifiez `-DGGML_CUDA=ON` à `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous voulez simplement une inférence CPU. **Pour les appareils Apple Mac / Metal**, définissez `-DGGML_CUDA=OFF` puis continuez normalement - la prise en charge de Metal est activée par défaut.

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

#### **Télécharger et utiliser les modèles localement**

Téléchargez le modèle via `hf` l’interface CLI (`pip install huggingface_hub hf_transfer`). Nous utilisons la **UD-Q4\_K\_XL** quantification pour le meilleur compromis taille/précision. Vous pouvez trouver tous les téléversements GGUF d’Unsloth dans notre [Collection ici](file:///1382377/get-started/unsloth-model-catalog.md). Si les téléchargements se bloquent, voir [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" %}
**Vous voulez la prise en charge de la vision ?** Ajoutez `--include "*mmproj-BF16*"` pour récupérer également le projecteur visuel, puis passez `--mmproj unsloth/gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf` à `llama-server`. Codex est lui-même en texte uniquement, donc c’est facultatif.
{% endhint %}

{% hint style="success" %}
Nous avons utilisé `unsloth/gemma-4-26B-A4B-it-GGUF`, mais vous pouvez utiliser n’importe quoi comme `unsloth/Qwen3.6-35B-A3B-GGUF` - voir [Qwen3.6-35B-A3B](/docs/fr/modeles/qwen3.6.md).
{% endhint %}
{% endstep %}

{% step %}

#### **Démarrer le serveur Llama**

Pour déployer Gemma-4-26B-A4B pour des charges de travail agentiques, nous utilisons `llama-server`. Nous appliquons les paramètres d’échantillonnage recommandés par Google (`temp 1.0`, `top_p 0.95`, `top_k 64`) et activons `--jinja` pour une prise en charge correcte des appels d’outils.

Exécutez cette commande dans un nouveau terminal (utilisez `tmux` ou ouvrez un nouveau terminal). Ce qui suit devrait **tenir confortablement sur un GPU de 24 Go (RTX 4090)** à \~18 Go. `tient sur` procédera également au déchargement automatique, mais si vous constatez de mauvaises performances, réduisez `--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" %}
Nous avons utilisé `--cache-type-k q8_0 --cache-type-v q8_0` pour la quantification du cache KV afin de réduire l’utilisation de la VRAM. Si vous constatez une qualité réduite, utilisez `bf16` à la place (`--cache-type-k bf16 --cache-type-v bf16`), mais la VRAM double.
{% endhint %}

{% hint style="success" %}
**Désactiver le raisonnement** peut améliorer les performances pour les tâches de codage agentiques. Gemma 4 active le raisonnement par défaut via le modèle de chat - pour le désactiver, ajoutez l’indicateur suivant à la commande llama-server :

**MacOS / Linux / WSL :**

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

**Windows PowerShell :**

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

{% step %}

#### **Pointez Codex vers le port 8001**

Modifiez votre `~/.codex/config.toml` pour utiliser le port de llama-server :

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

Lancez ensuite avec le nouveau profil :

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

Comme llama-server n’a pas besoin d’une vraie clé, vous pouvez définir le jeton d’authentification sur n’importe quelle valeur :

{% 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/fr/notions-de-base/codex.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
