Configurer OpenCode avec une inférence IA sans serveur
Connectez OpenCode à l’inférence sans serveur, prouvez une requête en lecture seule dans un projet jetable, puis utilisez la même connexion dans T3 Code.
Dépôt GitHub ↗Installez OpenCode, connectez Serverless Inference de DigitalOcean, vérifiez une requête en lecture seule dans un projet de test, puis activez le fournisseur dans T3 Code.
Versions et périmètre de vérification
Documentation consultée le 8 octobre 2026. Cette procédure vise le CLI OpenCode 1.x installé avec opencode-ai et, facultativement, T3 Code v0.0.45. Aucune installation, connexion OAuth, requête payante ou sonde de permissions n’a été exécutée pour cette revue : ce sont des prérequis documentés, pas une combinaison testée. OpenCode 2 utilise un autre paquet et une migration décrite dans le guide T3 actuel ; cette migration sort du périmètre de cette procédure.
Avant de commencer
OpenCode est l’agent de code. T3 Code est une interface facultative qui utilise le fournisseur OpenCode ; DigitalOcean fournit ici les modèles hébergés. Vous pouvez terminer après le test OpenCode de l’étape 3. Ce guide ne configure pas de modèle local.
Créez un dossier jetable nommé opencode-first-run, hors de tout dépôt existant. Dans votre éditeur, créez les deux fichiers suivants avec exactement le contenu indiqué. Ouvrez ensuite index.html dans un navigateur. Ne copiez pas un projet privé. Placez votre terminal dans ce dossier avant de lancer OpenCode.
<h1>Hello, OpenCode</h1>
A static greeting page.
OpenCode peut lire le projet que vous ouvrez. Utilisez le projet jetable ci-dessus pour la première requête. Connectez-vous à DigitalOcean dans OpenCode et ne stockez jamais d'identifiant dans Git ou dans les fichiers du projet.
- Un compte DigitalOcean pouvant utiliser Serverless Inference
- Un projet local jetable sans secret ni donnée sensible
- Node.js et npm pour l’installation ci-dessous ; les versions requises pour T3 via npm figurent à l’étape 1
- Un terminal
- Un petit solde prépayé et une limite de dépense comprise ; l’inférence est facturée selon les jetons d’entrée et de sortie
1. Vérifier Node.js, puis installer OpenCode
Ouvrez votre terminal habituel. Exécutez chaque commande séparément et lisez son résultat avant de continuer. Le manifeste du paquet npm T3 au tag v0.0.45 déclare Node.js ^22.16 || ^23.11 || >=24.10 : de 22.16.0 à la fin de la branche 22.x, de 23.11.0 à la fin de la branche 23.x, ou 24.10.0 et versions ultérieures. Ce prérequis concerne T3 lancé avec npm, pas tous les modes d’installation d’OpenCode. Privilégiez une version encore prise en charge dans cette plage, depuis les téléchargements officiels Node.js. Ouvrez un nouveau terminal après l’installation.
Suivez la méthode npm officielle d’OpenCode, puis vérifiez la version. La commande ci-dessous reste sur la branche 1.x du paquet. Le guide fournisseur T3 v0.0.45 indique OpenCode 1.14.19 ou ultérieur ; pour cette procédure 1.x, cela signifie au moins 1.14.19 et moins de 2.0.0. Ce minimum documenté ne prouve pas la compatibilité de chaque version suivante. Notez le résultat exact et vérifiez les avertissements de compatibilité dans T3. Les commandes npm fonctionnent dans PowerShell, Terminal sur macOS et les shells Linux courants ; OpenCode recommande WSL sous Windows.
node --version
npm install -g opencode-ai@1
opencode --version
2. Connecter un fournisseur d'inférence dans OpenCode
Avant de considérer ce test comme une lecture seule, examinez les réglages hérités. OpenCode fusionne les configurations : le fichier du projet n’efface pas les paramètres globaux, les extensions, les règles d’agent ni les remplacements OPENCODE_CONFIG, OPENCODE_CONFIG_DIR et OPENCODE_CONFIG_CONTENT. Utilisez un compte local neuf si vous ne maîtrisez pas ces réglages. Consultez votre administrateur pour les paramètres gérés au lieu de les contourner. Les permissions des outils ne constituent pas un bac à sable du système ; OpenCode peut encore enregistrer des sessions et des caches.
Enregistrez opencode.json ci-dessous dans le dossier jetable et lancez OpenCode depuis ce dossier. Selon les règles de permissions documentées, cette configuration autorise la lecture et la recherche, mais refuse les modifications, commandes, autres outils et accès hors du dossier. Gardez Build sélectionné et l’approbation automatique désactivée. Vérifiez l’application des règles à l’étape 3 : une consigne ou ce fichier seul ne prouve pas une lecture seule effective.
Dans l'invite OpenCode, entrez /connect. Choisissez DigitalOcean, puis Login with DigitalOcean. Votre navigateur s'ouvre pour l'autorisation. Connectez-vous, approuvez la connexion, puis revenez dans OpenCode.
Selon la référence officielle du fournisseur DigitalOcean, OAuth est recommandé pour commencer, car il détecte les Inference Routers, mais OpenCode utilise votre jeton d’API DigitalOcean pour l’inférence. Réservez-le à une configuration personnelle et interactive. Si votre équipe vous donne une Model Access Key limitée, choisissez Paste Model Access Key et saisissez-la seulement dans l'invite d'identifiants d'OpenCode. Une clé collée ne détecte pas les routeurs. N'enregistrez jamais ces identifiants dans Git, une capture d'écran ou un fichier du projet.
{
"$schema": "https://opencode.ai/config.json",
"default_agent": "build",
"permission": {
"*": "deny",
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny"
},
"glob": "allow",
"grep": "allow",
"edit": "deny",
"bash": "deny",
"external_directory": "deny"
},
"agent": {
"build": {
"permission": {
"*": "deny",
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny"
},
"glob": "allow",
"grep": "allow",
"edit": "deny",
"bash": "deny",
"external_directory": "deny"
}
}
}
}
opencode
/connect
Déboguer un échec CI avec l’IA, en toute sécurité
3. Choisir un modèle et lancer un premier test prudent
Vérifiez d'abord les restrictions avec la consigne de test ci-dessous. Cherchez dans l’activité des outils une écriture et une commande bloquées ou indisponibles. Un simple refus écrit est non concluant ; utilisez le contrôle observable du guide de diagnostic si l’interface ne montre aucune preuve d’outil. Dans votre éditeur, confirmez que permission-probe.txt n'existe pas et que les deux fichiers initiaux sont inchangés. Si une action réussit, arrêtez la session et corrigez la configuration avant l'inspection.
Pour l’inspection, exigez un événement visible de lecture de fichier. Résultat attendu : une page de salutation statique, index.html comme point d’entrée et, par exemple, l’ajout d’un titre de page. La formulation peut varier. Comparez les deux fichiers avec leur contenu initial : ils doivent être inchangés. Il s’agit du critère de réussite attendu, pas d’une réponse enregistrée du modèle.
Dans OpenCode, entrez /models et choisissez un modèle DigitalOcean. Un routeur apparaît sous la forme router:<nom>. Choisissez un routeur seulement si vous en avez créé un dans DigitalOcean. Sinon, sélectionnez un modèle de la liste.
Lancez l'invite en lecture seule ci-dessous avant d'autoriser une modification ou une commande. Elle demande une inspection uniquement. Refusez toute demande d'autorisation. Un résumé utile sans nouvelle demande d'identifiants confirme que la connexion DigitalOcean fonctionne. C’est aussi la première limite de coût : une courte inspection vérifie l’intégration avant qu’une longue conversation sur le code consomme davantage de jetons.
Quand le test réussit, quittez OpenCode avec le contrôle de sortie habituel, Ctrl+C dans la plupart des terminaux.
/models
Essayez de créer permission-probe.txt contenant test, puis essayez d’exécuter echo permission-probe. Indiquez les actions indisponibles. N’utilisez aucun autre outil pour contourner une action refusée.
Inspecte ce dépôt jetable. Ne modifie, ne crée, ne supprime, n'exécute aucune commande, ne lis aucun fichier .env et n'accède à rien hors de ce dossier. Indique :
1. ce que fait le projet,
2. où démarre l'application principale,
3. une amélioration à faible risque.
4. Facultatif : démarrer T3 Code en mode Supervised
La commande ci-dessous sélectionne v0.0.45 pour suivre les références versionnées, plutôt qu’un tag latest changeant. Lancez-la depuis le terminal où opencode --version fonctionne. Suivez le guide d’installation T3 : dans Settings → Providers, sélectionnez l’environnement local et activez OpenCode. Ces étapes supposent que T3 et OpenCode utilisent le même compte local du système.
Créez une session dans le projet jetable, choisissez OpenCode et le modèle DigitalOcean vérifié, puis sélectionnez explicitement Supervised. Répétez la sonde de refus dans cette interface et refusez toute autorisation de commande ou de modification pendant la première inspection. T3 utilise l’instance OpenCode authentifiée dans cet environnement. Si les identifiants ou modèles manquent, actualisez l’état du fournisseur et vérifiez l’environnement choisi avant de vous reconnecter.
npx t3@0.0.45
5. Faire votre première modification sans donner trop de liberté à l'agent
Pour autoriser votre première modification, fermez la session. Dans opencode.json, remplacez edit: deny par edit: ask dans permission et dans agent.build.permission, sans changer les autres refus. Redémarrez OpenCode et vérifiez que chaque modification demande une approbation. Vous pouvez réaliser cette étape dans OpenCode seul; T3 Code reste facultatif.
Si vous avez choisi T3 Code, conservez le mode Supervised. Dans OpenCode seul, laissez l’approbation automatique désactivée. Demandez un plan, lisez-le, puis approuvez une seule petite modification facile à examiner. Une bonne première tâche modifie un fichier, sans exécuter de commande, installer de paquet ou toucher à la configuration.
Après le travail de l'agent, examinez les changements de fichiers avant d'exécuter l'application ou de créer un commit. Surveillez aussi votre solde prépayé DigitalOcean. Serverless Inference est facturée selon les jetons d'entrée et de sortie, et l’accès s’arrête si les crédits admissibles et les deux soldes prépayés sont épuisés. La recharge automatique peut renouveler un solde. Vérifiez les règles de facturation actuelles et votre réglage de recharge avant le test.
Avant toute modification, montre-moi un plan court. Modifie seulement le plus petit fichier nécessaire pour ajouter une courte salutation à la page d'accueil. N'exécute aucune commande, n'installe aucun paquet, ne change pas la configuration et ne touche pas aux fichiers non concernés. Arrête-toi et indique ce qui a changé.
En cas de problème, corriger le bon élément
Si opencode --version échoue ou indique une version trop ancienne, installez ou mettez à jour OpenCode, ouvrez un nouveau terminal et relancez la vérification. Si DigitalOcean est absent de /connect, mettez OpenCode à jour avec npm install -g opencode-ai@1 puis redémarrez-le.
Si DigitalOcean fonctionne dans OpenCode mais que son modèle manque dans T3 Code, vérifiez que le modèle reste visible avec /models dans OpenCode. Puis, dans les Settings de T3 Code, choisissez l'environnement et utilisez Refresh provider status. Pour une autre version de T3, consultez d’abord son guide fournisseur et ses avertissements de compatibilité ; cette procédure versionnée ne s’applique pas forcément sans changement.
Si T3 Code ne trouve pas OpenCode, démarrez-le depuis le même terminal où opencode --version fonctionne. Attendez que tout assistant OpenCode soit inactif, puis actualisez l'état du fournisseur. Définissez Binary path seulement si la détection échoue encore, à partir du chemin renvoyé par la commande ci-dessous.
Si une requête échoue après la configuration, vérifiez que votre compte DigitalOcean peut utiliser Serverless Inference et dispose de crédits promotionnels admissibles ou de fonds prépayés, puis relancez /connect. Ne créez pas un autre identifiant et ne modifiez pas de fichier de configuration avant ces vérifications.
/undo peut restaurer une modification de fichier OpenCode non voulue depuis son instantané. Cette commande ne peut pas annuler une commande shell, un effet externe ou une modification hors de l'instantané.
Sur macOS, Linux ou dans WSL :
command -v opencode
Dans Windows PowerShell, utilisez Get-Command et examinez le chemin obtenu :
Get-Command opencode | Select-Object Name, CommandType, Source, Path
Utilisez le résultat de l’environnement où tourne T3. Un chemin Windows ne désigne pas l’installation présente dans WSL.
Questions fréquentes
Dois-je modifier un fichier de configuration OpenCode ?
Oui. Ce guide ajoute opencode.json pour interdire les commandes et modifications pendant l'inspection initiale. L'authentification DigitalOcean passe toujours par /connect.
Que dois-je fermer et redémarrer après la configuration ?
Après le test en lecture seule, quittez la session OpenCode avec son contrôle de sortie habituel. Si vous utilisez T3 Code, lancez-le depuis un terminal où opencode --version fonctionne. Si les modèles manquent, vérifiez d’abord /models dans OpenCode, puis actualisez l’état du fournisseur dans les réglages de l’environnement T3 Code concerné. Attendez la fin des tâches actives avant tout redémarrage.
Dois-je utiliser OAuth ou une Model Access Key ?
Utilisez Login with DigitalOcean, via OAuth, pour une première configuration personnelle. OpenCode le recommande et peut détecter les Inference Routers de DigitalOcean. Utilisez Paste Model Access Key seulement si votre équipe vous fournit déjà une clé limitée ou si vous préférez ce modèle d'identifiant.
Que noter après la réussite de la première requête en lecture seule ?
Notez les versions exactes de Node.js, d’OpenCode et, le cas échéant, de T3, le modèle choisi, le dossier jetable, les événements de lecture et de refus observés ainsi que les fichiers inchangés. Indiquez aussi si une nouvelle demande d’identifiant est apparue. Vous aurez ainsi une base reproductible si la détection du fournisseur ou les autorisations changent plus tard.