Sommaire
Naviguer dans l'article
- #1 1. Contexte
- #2 2. Problèmes rencontrés sans correctif
- #3 3. Pourquoi WSL2 pose problème avec Ollama
- #4 4. Principe de la solution
- #5 5. Prérequis
- #6 6. Installation de la solution (WSL2)
- #7 7. Utilisation au quotidien
- #8 8. Tests de vérification
- #9 9. Bonnes pratiques
- #10 10. Limitations connues / état actuel de Codex CLI
- #11 11. FAQ — Questions fréquentes
- #12 12. A retenir
- #13 13. Références
Mise en place d’un forward TCP local (socat)
1. Contexte
Cette documentation est un complément à l’article principal :
Dans l’architecture décrite dans l’article principal, Ollama est installé sur Windows, tandis que Codex CLI est exécuté depuis WSL2.
Cette configuration fonctionne, mais peut entraîner des instabilités réseau, en particulier lors de l’utilisation du streaming (SSE).
Objectif de cette page : proposer une technique simple, reproductible et local-first pour :
- supprimer les interruptions de génération,
- stabiliser les flux de réponses,
- éviter les problèmes liés à l’IP Windows,
- rendre l’utilisation de Codex CLI fiable au quotidien.
2. Problèmes rencontrés sans correctif
Sans mécanisme supplémentaire, il est fréquent d’observer :
stream disconnected before completion- réponses interrompues en cours de génération
- latences/coupures aléatoires
- comportement variable selon les redémarrages réseau ou WSL2
Ces problèmes ne sont pas liés :
- ni aux modèles Ollama,
- ni à Codex CLI en tant qu’outil,
- ni à la puissance de la machine.
Ils proviennent principalement de la gestion réseau de WSL2 et de la sensibilité du streaming (SSE).
3. Pourquoi WSL2 pose problème avec Ollama
Quelques points clés à connaître :
- WSL2 fonctionne dans une VM avec un réseau isolé
localhostdans WSL2 n’est pas lelocalhostWindows- l’IP Windows vue depuis WSL (
172.x.x.1) peut changer après un redémarrage - Codex CLI peut tenter d’utiliser
localhostcôté client - les flux de streaming (SSE) sont sensibles aux micro-coupures réseau
Résultat : même si l’API Ollama répond, le flux peut être interrompu en cours de génération.
4. Principe de la solution
On crée un forward TCP local dans WSL2 pour exposer Ollama via :
http://localhost:11434côté WSL2- redirigé automatiquement vers Ollama sur Windows (IP passerelle WSL)
Schéma logique :
Codex CLI (WSL2)
|
| http://localhost:11434
v
Forward TCP (socat)
|
| http://<IP Windows vue par WSL>:11434
v
Ollama (Windows)
Ainsi, Codex parle toujours à localhost (stable), et le forward s’occupe du reste.
5. Prérequis
Avant de continuer :
- Ollama est installé et fonctionnel sur Windows
- Codex CLI est installé et configuré selon la documentation principale
- WSL2 est opérationnel
- vous disposez de
sudodans WSL2 - le port
11434est disponible dans WSL2 (aucun serveur local ne doit l’occuper)
6. Installation de la solution (WSL2)
6.1 Installation de socat
Dans WSL2 :
sudo apt update
sudo apt install -y socat
6.2 Vérifier que le port 11434 est libre côté WSL2
sudo ss -ltnp | grep ':11434' || echo "OK: 11434 libre côté WSL2"
Si quelque chose écoute déjà sur 11434, il faut stopper ce processus avant d’aller plus loin.
6.3 Création du script de forward
Créer un script dédié (une seule fois) :
mkdir -p ~/.local/bin
cat > ~/.local/bin/ollama-forward <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
WIN_IP=$(ip route | awk '/default/ {print $3; exit}')
echo "[ollama-forward] localhost:11434 -> $WIN_IP:11434"
exec socat TCP-LISTEN:11434,fork,reuseaddr TCP:$WIN_IP:11434
EOF
chmod +x ~/.local/bin/ollama-forward
Ce script :
- détecte automatiquement l’IP Windows vue par WSL2,
- écoute sur
localhost:11434côté WSL2, - redirige le trafic vers Ollama sur Windows.
7. Utilisation au quotidien
À chaque session de travail :
Terminal 1 — Lancer le forward
ollama-forward
Laisser ce terminal ouvert (le forward doit rester actif).
Terminal 2 — Lancer Codex CLI
codex
Si vous utilisez un alias, vous pouvez continuer à l’utiliser, mais l’essentiel est : forward d’abord, Codex ensuite.
8. Tests de vérification
Ces tests valident que le forward fonctionne correctement.
8.1 Test API native Ollama via localhost
curl http://localhost:11434/api/tags | head
Résultat attendu : JSON valide + liste des modèles.
8.2 Test API OpenAI-compatible (pour Codex)
curl http://localhost:11434/v1/models | head
Résultat attendu : JSON valide + modèles accessibles.
8.3 Test Codex minimal
codex "Réponds uniquement: OK"
Résultat attendu : réponse complète, sans interruption.
8.4 Test de génération simple (SSE)
codex "Explique en 5 phrases ce que fait cette fonction PHP : function divide(\$a, \$b) { return \$a / \$b; }"
Résultat attendu : génération fluide (pas de stream disconnected).
9. Bonnes pratiques
- Toujours lancer le forward avant Codex CLI.
- Utiliser un modèle léger (ex. 3B) pour les tests rapides.
- Réserver les modèles lourds (ex. 30B) aux tâches complexes.
- Arrêter le forward en fin de session avec
Ctrl+C. - Si WSL2 ou Windows redémarre, relancer le forward.
10. Limitations connues / état actuel de Codex CLI
Cette section décrit des limitations observées avec Codex CLI v0.98.x utilisé avec un provider local comme Ollama.
10.1 Lecture automatique des fichiers
À ce jour, Codex CLI ne lit pas automatiquement les fichiers du projet dans ce contexte.
Conséquences :
- un prompt du type « lis calc.php » peut échouer ou produire une réponse inventée
- il faut souvent fournir le contenu manuellement ou via un script qui injecte le texte
10.2 Mode agent et outils
Codex CLI est conçu pour un mode “outils/agent”. Avec Ollama :
- les appels d’outils (
exec_command,read_mcp_resource, etc.) peuvent ne pas être exécutés - Codex peut afficher du JSON d’outils sans résultat réel
Ce n’est pas un problème de réseau : c’est une limitation de compatibilité/outillage dans ce mode.
10.3 Providers non-OpenAI
L’usage de providers non-OpenAI est possible, mais certaines fonctionnalités avancées sont absentes ou incomplètes :
- exécution d’outils
- lecture/écriture de fichiers pilotée
- workflows “agent autonome”
Dans ce contexte, il est recommandé d’utiliser Codex CLI comme :
- un LLM de raisonnement et génération
- plutôt qu’un agent filesystem autonome complet
10.4 Évolutions possibles
Les évolutions à surveiller :
- ajout d’un mode “chat-only”
- support des outils côté client
- meilleure intégration filesystem avec providers locaux
11. FAQ — Questions fréquentes
Pourquoi ai-je des erreurs stream disconnected before completion sans le forward ?
Parce que WSL2 a un réseau isolé, localhost diffère de Windows, et le streaming (SSE) est sensible aux micro-coupures.
Pourquoi ne pas utiliser directement l’IP Windows (172.x.x.1) ?
Ça peut fonctionner, mais :
- l’IP peut changer après un redémarrage
- certaines sessions longues deviennent instables
Le forward supprime la dépendance à cette IP et stabilise le flux.
Pourquoi utiliser socat ?
socat est :
- léger
- présent sur Debian/Ubuntu
- très fiable pour un forwarding TCP simple
- adapté aux flux longs (streaming)
Puis-je automatiser le lancement du forward ?
Oui (tmux, script de session, systemd user), mais il est conseillé de commencer en manuel :
- plus simple à diagnostiquer
- plus simple à arrêter (
Ctrl+C) - évite les ports bloqués en arrière-plan
Dois-je lancer le forward à chaque session ?
Oui. Le forward est un processus temporaire qui doit être actif pendant l’utilisation de Codex.
Cette solution fonctionne-t-elle avec tous les modèles Ollama ?
Oui. Le forward est purement réseau. Il fonctionne avec 3B, 30B, etc.
Le forward a-t-il un impact sur les performances ?
En pratique, l’impact est négligeable. La stabilité gagnée compense largement.
Cette solution règle-t-elle les limites de Codex CLI (outils, fichiers) ?
Non. Elle règle uniquement la partie réseau/streaming, pas les limitations d’agent/outils.
12. A retenir
Le forward TCP via socat :
- supprime les interruptions de streaming,
- stabilise l’accès à Ollama depuis WSL2,
- évite les problèmes d’IP changeante,
- rend l’usage quotidien de Codex CLI plus fiable.
C’est une technique pragmatique, simple à maintenir, alignée avec une approche local-first.
13. Références
-
Article principal — Codex CLI + Ollama + WSL2 :
Utiliser Codex CLI avec Ollama en local (Windows 11 + WSL2) -
Codex CLI — dépôt officiel GitHub :
https://github.com/openai/codex -
Documentation officielle Codex CLI (OpenAI Developers) :
https://developers.openai.com/codex/cli
Commentaires