OpenCode + Ollama : un agent de code dans votre terminal
OpenCode et Ollama ne sont pas concurrents : OpenCode est l'agent de code dans le terminal, Ollama est le moteur qui sert le modèle en local. Pour les relier, installez OpenCode, déclarez un fournisseur pointant sur http://localhost:11434/v1 dans opencode.json, ou lancez ollama launch opencode. Réglez le contexte à 64 000 tokens au moins, exigence de la documentation d'Ollama.
Ce guide installe OpenCode sur macOS, Linux ou Windows, le branche sur Ollama avec la méthode officielle et la méthode manuelle, choisit un modèle de code qui tient sur une machine réelle, explique le réglage du contexte (le piège numéro un) et les permissions, que beaucoup supposent plus strictes qu'elles ne sont. Il compare aussi OpenCode à Cline et Aider.
#OpenCode avec Ollama : qui fait quoi
OpenCode est un agent de code open source qui s'exécute dans le terminal : il lit votre projet, modifie des fichiers et lance des commandes. Il ne fournit pas de modèle par lui-même. Ollama, lui, télécharge et exécute des modèles sur votre machine, et expose une API locale. Les deux se complètent : OpenCode envoie ses requêtes à Ollama, qui répond avec un modèle local. La question « OpenCode ou Ollama » ne se pose donc pas, on utilise les deux.
L'intérêt du local n'est pas idéologique. Un agent de code voit tout : l'arborescence, les fichiers de configuration, la logique métier. Avec un modèle local, ce contexte reste sur la machine, sans facturation au token ni dépendance au réseau. Le prix à payer est la capacité : un modèle local de quelques dizaines de milliards de paramètres n'égale pas les plus gros modèles hébergés, et les tâches longues se déroulent plus lentement.
#Prérequis : machine, terminal et Ollama
Profite de notre expérience et d’un parcours guidé pour créer ton copilote local et prendre en main ton assistant de code.
- Espace en ligne à vie
- PDF + fichiers
- Remboursé 30 j
- Ollama en service
- Vérifiez qu'un modèle répond avant de configurer quoi que ce soit : ollama list, puis ollama run avec un modèle de code. Si cela marche, il ne reste que la configuration d'OpenCode.
- Un terminal moderne
- La documentation d'OpenCode cite WezTerm, Alacritty, Ghostty et Kitty. Sous Windows, elle recommande d'utiliser WSL pour de meilleures performances et une compatibilité complète.
- De la mémoire pour le contexte
- Un agent lit des fichiers et accumule l'historique. Ollama indique qu'OpenCode exige une longueur de contexte d'au moins 64 000 tokens, ce qui augmente la mémoire nécessaire au-delà des poids du modèle.
- Un dépôt git
- Pas obligatoire, mais conseillé : un git diff ou un git restore annule proprement une session ratée.
#Installer OpenCode et le relier à Ollama
OpenCode s'installe par un script ou par les gestionnaires de paquets. La documentation liste le script officiel, npm, bun, pnpm, yarn, Homebrew, Arch, Chocolatey, Scoop, Mise et Docker. Pour macOS et Linux avec Homebrew, elle recommande le tap officiel plutôt que la formule de base, qui est mise à jour moins souvent.
#Méthode rapide : ollama launch opencode
Ollama sait lancer OpenCode avec un modèle choisi. La commande ollama launch opencode démarre OpenCode avec une configuration passée en ligne, sans écraser votre fichier ~/.config/opencode/opencode.json ; vos réglages OpenCode existants continuent de s'appliquer. Avec l'option --config, Ollama configure OpenCode sans ouvrir de session interactive. Les modèles définis seulement dans opencode.json n'apparaissent pas dans le sélecteur de ollama launch.
#Méthode manuelle : déclarer Ollama comme fournisseur
Si vous préférez garder la main, ajoutez un fournisseur à opencode.json, global (~/.config/opencode/opencode.json) ou à la racine du projet. L'endpoint compatible OpenAI d'Ollama est http://localhost:11434/v1. Chaque clé sous models doit reprendre exactement le nom du modèle tel qu'affiché par ollama list.
Relancez OpenCode : le sélecteur de modèle propose les modèles déclarés sous le fournisseur Ollama.
#Le piège numéro un : la longueur de contexte
Beaucoup de premiers essais échouent parce que le contexte est trop court : l'agent perd le début de la tâche, répète ses lectures de fichiers ou produit des modifications incohérentes. Ollama ne fixe pas un contexte unique : la documentation indique 4k tokens en dessous de 24 Go de VRAM, 32k entre 24 et 48 Go, 256k à partir de 48 Go. Elle précise que les tâches qui demandent un grand contexte, comme les agents et les outils de code, doivent être réglées à au moins 64 000 tokens.
| VRAM disponible | Contexte par défaut | Pour OpenCode |
|---|---|---|
| Moins de 24 Go | 4 000 tokens | Passer à 64 000 minimum |
| 24 à 48 Go | 32 000 tokens | Passer à 64 000 minimum |
| 48 Go ou plus | 256 000 tokens | Suffisant ; surveiller la mémoire |
Pour changer la valeur, deux voies existent. Dans l'application Ollama, un curseur des réglages fixe le contexte. En ligne de commande, la variable OLLAMA_CONTEXT_LENGTH s'applique au lancement du serveur. Un contexte plus grand consomme davantage de mémoire : contrôlez avec ollama ps que le modèle tient entièrement sur le GPU, car un modèle qui déborde sur le processeur devient très lent.
#Quel modèle local pour un agent de code
Un agent doit appeler des outils de manière fiable : lire, écrire, exécuter. Choisissez un modèle qui affiche la capacité tools dans la bibliothèque Ollama. Voici des candidats dont les tags et tailles ont été relevés sur ollama.com.
| Modèle | Tag | Taille du téléchargement | Remarque |
|---|---|---|---|
| Qwen3-Coder 30B | qwen3-coder:30b | 19 Go | Contexte natif annoncé de 256K ; capacité tools |
| Devstral Small 2 | devstral-small-2:24b | 15 Go | Contexte annoncé de 384K ; tools et images |
| Qwen3.5 | qwen3.5:9b, 27b, 35b | selon la taille | Tools, vision et réflexion selon les tailles |
| gpt-oss | gpt-oss:20b, 120b | selon la taille | Tools et réflexion |
Ces tailles sont celles des fichiers ; ajoutez le cache de contexte, qui grossit avec les 64 000 tokens demandés. Le modèle de 15 Go (Devstral Small 2) est le plus accessible sur une machine de 24 Go ; celui de 19 Go (Qwen3-Coder 30B) demande davantage de marge. Sur une machine plus modeste, un modèle plus petit exécute des tâches simples et ciblées, mais décroche plus vite sur un refactoring qui touche plusieurs fichiers.
#Un workflow réel : ajouter une route et son test
Cas concret : ajouter une route GET /health à une petite API Express et la couvrir par un test. La documentation d'OpenCode recommande de commencer par /init, qui analyse le projet et crée un fichier AGENTS.md à la racine, à committer dans git pour aider l'agent à comprendre la structure.
- 01Ouvrir le projetPlacez-vous à la racine du dépôt, lancez opencode, puis /init la première fois. Vérifiez en bas que le modèle sélectionné est bien un modèle Ollama.
- 02Passer en mode PlanLa touche Tab bascule entre les modes Plan et Build. Le mode Plan désactive les modifications : l'agent propose seulement comment il procéderait. Demandez-lui un plan avant tout changement.
- 03Décrire la tâcheDonnez le contexte comme à un développeur junior : « Ajoute une route GET /health dans src/server.js qui renvoie status ok, puis un test dans test/health.test.js. » Le caractère @ permet de chercher un fichier dans le projet.
- 04Passer en mode BuildQuand le plan vous convient, appuyez de nouveau sur Tab et demandez d'appliquer les modifications.
- 05Exécuter et itérerL'agent peut lancer npm test, lire la sortie et corriger. Cette boucle exécuter, observer, corriger est le cœur de l'agentique.
- 06Vérifier et committerRelisez git diff avant de committer. Si la session a dérapé, git restore ramène les fichiers à l'état précédent.
Avec un modèle local, chaque étape est plus lente qu'avec un modèle hébergé, et une consigne ambiguë demande parfois une reformulation. Le gain est la maîtrise : le code et le contexte restent sur votre machine, et vous choisissez le modèle, sa quantification et sa taille de contexte en fonction de votre matériel.
#Permissions : ce que l'agent peut faire sans vous demander
Une idée répandue est que l'agent ne modifie rien sans votre accord. Ce n'est pas le comportement par défaut. La documentation d'OpenCode indique que, sans configuration, la plupart des permissions valent allow, c'est-à-dire qu'elles s'exécutent sans demander ; seules quelques-unes, comme external_directory et doom_loop, valent ask. Les fichiers .env sont refusés en lecture par défaut, sauf .env.example.
Pour un agent qui pilote un modèle local moins fiable, un réglage plus strict est prudent. Le fichier opencode.json accepte une section permission où chaque action vaut allow, ask ou deny, y compris avec une règle globale * à ask.
#OpenCode, Cline ou Aider : lequel choisir
| Outil | Forme | Point fort | À choisir si |
|---|---|---|---|
| OpenCode | Interface terminal, aussi en application et extension IDE | Indépendant de l'éditeur, multi-fournisseurs, modes Plan et Build | Vous vivez dans le terminal ou travaillez sur des serveurs distants |
| Cline | Extension VS Code | Diffs affichés dans l'éditeur | Votre flux tourne autour de VS Code |
| Aider | Ligne de commande | Forte intégration à git, commits automatiques | Vous voulez un contrôle fin des fichiers ajoutés au contexte |
Les trois utilisent l'API d'Ollama ; essayer les deux plus proches de vos habitudes prend une heure et vaut mieux qu'un comparatif. Pour l'autocomplétion en ligne plutôt qu'un agent, regardez Tabby.
#Dépannage
- Le modèle n'apparaît pas
- Le nom dans opencode.json ne correspond pas à ollama list. Copiez le nom exact, tag compris. Avec ollama launch, un modèle défini seulement dans opencode.json n'apparaît pas dans son sélecteur.
- L'agent oublie ce qu'il vient de lire
- Le contexte est trop court : passez à 64 000 tokens (OLLAMA_CONTEXT_LENGTH) et vérifiez avec ollama ps.
- Connexion refusée
- Le serveur Ollama ne tourne pas ou n'écoute pas sur le port par défaut 11434. Testez ollama list, puis l'URL de baseURL.
- Appels d'outils qui échouent
- Le modèle ne gère pas bien les outils. Prenez un modèle marqué tools dans la bibliothèque Ollama.
- Réponses très lentes
- Le modèle et son contexte débordent de la VRAM et une partie s'exécute sur le processeur. Réduisez le contexte, la taille du modèle ou la quantification.
Comment utiliser OpenCode avec Ollama ?+
Quelle différence entre OpenCode et Ollama ?+
OpenCode fonctionne-t-il sous Windows avec Ollama ?+
Quel contexte régler dans Ollama pour OpenCode ?+
OpenCode modifie-t-il mes fichiers sans demander ?+
Quel modèle local choisir pour OpenCode ?+
#Pour aller plus loin
- Cline + Ollama dans VS Code
- Aider + Ollama en terminal
- Tabby : autocomplétion de code locale
- Choisir sa quantification
- Comprendre la fenêtre de contexte
- Installer Ollama en 5 minutes
- Source : Ollama, intégration OpenCode
- Source : Ollama, longueur de contexte
- Source : documentation OpenCode
- Source : permissions OpenCode
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.