Date : 29 juillet 2026
Auteur : La Revue Editoriale
Lecture : 12-15 min
OpenCode est un agent de codage IA open source qui vit dans votre terminal. Il lit votre codebase, planifie des changements, écrit et modifie du code, exécute des commandes et des tests, et itère jusqu'à ce que la tâche soit terminée — avec votre approbation à chaque étape.
Les chiffres qui parlent :
| Alternative | Modèle économique | Ouverture |
|---|---|---|
| Claude Code | Abonnement / API Anthropic | ❌ Propriétaire |
| Codex CLI | Abonnement OpenAI | ❌ Propriétaire |
| OpenCode | Gratuit (MIT) — vos clés API | ✅ Open source |
| Aider | Gratuit | ✅ Open source |
| Goose | Gratuit | ✅ Open source |
Le point clé : OpenCode est agnostique au modèle. Vous connectez n'importe quel fournisseur — Claude, GPT, Gemini, GLM-5.2 (Zhipu), ou vos modèles locaux via Ollama / LM Studio / vLLM / llama.cpp. Zéro enfermement.
npm install -g opencode-ai
# ou avec bun
bun install -g opencode-ai
curl -fsSL https://opencode.ai/install | bash
Disponible pour macOS, Windows et Linux — la même puissance avec une interface graphique.
opencode --version
opencode # lance le TUI (interface terminal)
💡 Premier lancement : OpenCode détecte vos clés API existantes (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) ou vous invite à en ajouter. Le catalogue de modèles vient de models.dev.
C'est LA fonctionnalité signature d'OpenCode. Deux agents intégrés, permutables avec la touche Tab :
| Agent | Mode | Accès | Usage |
|---|---|---|---|
| Build (défaut) | Exécution | Système de fichiers complet, commandes, modifications de code | Faire le travail |
| Plan | Lecture seule | Analyse, exploration, planification — aucune modification | Réfléchir avant d'agir |
💡 Astuce : vous pouvez aussi appeler un agent spécifique avec la mention
@:@plan analyse ce fichierou@build implémente la TODO.
C'est là qu'OpenCode devient intéressant pour un usage souverain : vous pouvez brancher vos propres modèles locaux.
# 1. Ollama installé et lancé
ollama pull qwen3-coder:30b # ou votre modèle de codage préféré
ollama serve # écoute sur localhost:11434
# 2. Configurer OpenCode
opencode
Configuration dans opencode.jsonc (à la racine du projet ou global) :
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@openai/opencode-ollama",
"models": {
"qwen3-coder:30b": { "name": "Qwen3 Coder 30B" }
}
}
},
"model": "ollama/qwen3-coder:30b"
}
# 1. LM Studio installé, modèle téléchargé
# 2. Activer le serveur local (onglet Developer → Start Server)
# http://localhost:1234/v1 (compatible OpenAI)
{
"provider": {
"lmstudio": {
"npm": "opencode-lmstudio",
"options": { "baseURL": "http://localhost:1234/v1" }
}
},
"model": "lmstudio/qwen3-coder-14b"
}
Tout serveur compatible OpenAI fonctionne : il suffit de pointer baseURL vers votre endpoint local.
Le plugin opencode-local-setup synchronise automatiquement les modèles disponibles : au démarrage, il interroge vos serveurs locaux et met à jour opencode.json avec les modèles réellement présents.
| Modèle | Taille | VRAM requise | Niveau |
|---|---|---|---|
| Qwen3-Coder | 30B | 20-24 Go | ⭐⭐⭐⭐ |
| GLM-4.5-Coder | 32B | 20-24 Go | ⭐⭐⭐⭐ |
| Qwen3-Coder | 14B | 10-12 Go | ⭐⭐⭐ |
| DeepSeek-Coder-V3 | 16B (quantisé) | 10-12 Go | ⭐⭐⭐ |
| Granite-Coder (IBM) | 8B | 6-8 Go | ⭐⭐ |
⚠️ Vérité 2026 : les LLM locaux restent en dessous des modèles cloud pour les tâches complexes (refactoring multi-fichiers, debug subtil). Utilisation locale recommandée pour : autocomplétion, génération de tests, petits scripts, exploration — et confidentialité totale.
opencode --continue ou opencode --session <id>Le fichier AGENTS.md (comme README mais pour l'agent) :
# Règles du projet
- Utiliser TypeScript strict
- Pas de `any` implicite
- Tests obligatoires pour chaque nouvelle fonction
- Style : 2 espaces, pas de point-virgule
~/.config/opencode/AGENTS.md — vos règles personnellesAGENTS.md à la racine — les règles du dépôt/init — OpenCode analyse le projet et génère le fichierContrôle granulaire de ce que l'agent peut faire :
{
"permission": {
"edit": "allow", // modification de fichiers
"bash": "ask", // demander avant chaque commande
"webbrowser": "deny" // jamais de navigateur
}
}
Les 3 niveaux : allow (automatique), ask (demander), deny (interdire).
Dans opencode.jsonc :
{
"command": {
"test": {
"description": "Lancer les tests",
"prompt": "Exécutez les tests du projet et corrigez les échecs"
},
"review": {
"description": "Revue de code",
"prompt": "Faites une revue de code des derniers changements, listez les problèmes"
}
}
}
Puis : /test ou /review directement dans le TUI.
OpenCode gère nativement les serveurs MCP (voir notre guide MCP) :
{
"mcp": {
"context7": {
"type": "local",
"command": ["npx", "-y", "@upstash/context7-mcp"]
},
"playwright": {
"type": "local",
"command": ["npx", "@playwright/mcp"]
}
}
}
Commandes TUI : /mcp pour lister/connecter/déconnecter.
OpenCode intègre les serveurs LSP (Language Server Protocol) : il comprend la structure du code (symboles, références, diagnostics) plutôt que de simplement lire du texte. Go to definition, trouver les références, erreurs de compilation — l'agent a le même niveau de compréhension que votre IDE.
Créez vos propres agents dans .opencode/agent/ :
---
description: Expert frontend
model: claude-sonnet-4
mode: build
tools: { edit: true, bash: true }
---
Vous êtes un expert frontend React/Next.js. Répondez en français.
opencode share — publie une session (lisible par les non-utilisateurs). Idéal pour demander de l'aide ou montrer un problème à un collègue.
/model pour changer de modèle en vol — modèle rapide pour explorer, modèle fort pour exécuter/init pour générer AGENTS.md — donnez vos conventions une fois, l'agent les respecte partoutopencode --continue — reprendre une session de la veille sans perdre le contexte@plan / @build en mention — forcer un agent précis sans changer le mode globalask sur bash — gardez le contrôle des commandes critiques (rm, git push)/review systématique avant chaque commit> La fonction de connexion renvoie une erreur 500 quand le mot de passe contient un @
> @plan Je veux extraire la logique de paiement dans un module séparé
> /test — génère des tests unitaires pour le module utils/date.js
> @plan Analyse ce dossier de briefs et classe les sujets par thème
Avec un modèle local + Filesystem MCP, OpenCode devient un outil d'organisation documentaire — zéro donnée sortie de la machine.
> /review
Pour ceux qui ne veulent pas gérer leurs clés API :
opencode auth login et c'est toutLe calcul économique :
| Approche | Coût |
|---|---|
| Claude Code (abonnement) | ~20 $/mois + quota |
| API directe (Claude/GPT) | Pay-as-you-go (facturation à l'usage) |
| OpenCode + vos clés API | Pay-as-you-go, zéro abonnement |
| OpenCode + Ollama local | 0 € — électrique |
bash: allow global = un agent qui fait rm -rf sans demanderOpenCode est devenu l'agent de codage open source de référence — pas parce qu'il est gratuit, mais parce qu'il est libre : libre de choisir vos modèles, libre de tout héberger en local, libre de lire le code source.
| Critère | Note |
|---|---|
| Puissance | ⭐⭐⭐⭐⭐ (avec modèles cloud) |
| Souveraineté (local) | ⭐⭐⭐⭐ (limité par les modèles locaux) |
| Prix | ⭐⭐⭐⭐⭐ (MIT, BYO API keys) |
| Ergonomie | ⭐⭐⭐⭐ (TUI riche, desktop beta) |
| Écosystème | ⭐⭐⭐⭐⭐ (MCP, LSP, plugins, 180K ⭐) |
En une phrase : OpenCode est à Claude Code ce que Linux est à Windows — le même pouvoir, sans le propriétaire. Pour un usage 100% local, c'est le meilleur choix du marché : Ollama ou LM Studio en backend, et votre code ne quitte jamais votre machine.
opencode # lancer le TUI
opencode --continue # reprendre la dernière session
opencode --session <id> # reprendre une session précise
opencode --model <model> # lancer avec un modèle précis
opencode run "tâche" # mode non-interactif (scripts, CI)
opencode share # partager une session
opencode auth login # connexion (Zen ou providers)
opencode mcp # gestion des serveurs MCP
opencode doctor # diagnostic de configuration
| Touche | Action |
|---|---|
| Tab | Basculer Build ↔ Plan |
| Ctrl+K | Menu des commandes |
| Ctrl+R | Sessions récentes |
| Ctrl+D | Nouvelle session |
| Esc | Annuler / interrompre |