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.
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. Dans votre éditeur, créez index.html avec exactement <h1>Hello, OpenCode</h1>, puis README.md avec exactement : A static greeting page. Open index.html in a browser. Ces deux fichiers suffisent ; ne copiez pas un projet privé. Dans les commandes suivantes, remplacez le chemin d’exemple par celui de ce dossier.
OpenCode peut lire le projet que vous ouvrez. Utilisez le projet jetable indiqué ci-dessous 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 22.16 ou version ultérieure dans la branche 22.x, 23.11 ou version ultérieure dans la branche 23.x, ou Node.js 24.10 ou version ultérieure
- 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. T3 Code requiert Node.js 22.16 ou version ultérieure dans la branche 22.x, 23.11 ou version ultérieure dans la branche 23.x, ou 24.10 ou version ultérieure. Si votre version sort de ces plages, installez une version prise en charge et ouvrez un nouveau terminal.
Installez OpenCode globalement, puis vérifiez que ce terminal peut l'exécuter. T3 Code requiert OpenCode 1.14.19 ou version ultérieure. Ces commandes npm fonctionnent de la même façon dans PowerShell, Terminal sur macOS et les shells Linux courants.
node --versionnpm install -g opencode-aiopencode --version2. Connecter un fournisseur d'inférence dans OpenCode
Avant de lancer OpenCode, enregistrez le fichier opencode.json ci-dessous à la racine du dossier jetable. Il autorise la lecture et la recherche, mais interdit les modifications, les commandes, les outils supplémentaires et l'accès hors du dossier. Gardez l'agent Build sélectionné. Une consigne seule ne définit pas ces permissions.
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.
OAuth est le meilleur choix pour commencer, car il détecte les Inference Routers de DigitalOcean, 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"
}
}
}
}- Remplacez chaque valeur surlignée avant d’exécuter la commande.
Set-Location -LiteralPath "C:\path\to\your-project" opencodeOpenCode s’ouvre dans le projet jetable avant la saisie des commandes de l’application.
/connect3. Choisir un modèle et lancer un premier test prudent
Vérifiez d'abord les restrictions avec la consigne de test ci-dessous. L'agent doit refuser l'écriture et la commande, ou signaler que ces outils sont désactivés. 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.
Résultat attendu pour ces fichiers : 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.
/modelsTry to create permission-probe.txt containing test, then try to run echo permission-probe. Report which actions are unavailable. Do not use another tool to bypass a denied action.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
Démarrez T3 Code depuis un terminal où la vérification opencode --version a réussi. Il lance un serveur local et ouvre son interface web. Dans T3 Code, ouvrez Settings et activez le fournisseur OpenCode, désactivé par défaut.
Créez une session dans le projet jetable, choisissez OpenCode comme fournisseur, sélectionnez le modèle DigitalOcean vérifié et réglez la session sur Supervised, pas Full access. Refusez toute autorisation de commande ou de modification pendant la première inspection. Vous n'avez pas besoin de vous authentifier à nouveau auprès de DigitalOcean dans T3 Code.
npx t3@latestVérifiez avant de continuer : T3 Code s’ouvre et indique que le fournisseur OpenCode est disponible.
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. 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 les requêtes s'arrêtent lorsque le solde atteint zéro.
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 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. Mettez T3 Code à jour avant de modifier ses réglages, car la détection des fournisseurs peut évoluer entre versions.
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 que son solde prépayé est positif, 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é.
(Get-Command opencode).SourceVérifier le résultat
- Résultat attendu
- L’agent renvoie un court résumé d’inspection sans demander un autre identifiant, une autorisation ou une modification de fichier.
- Arrêter si
- Arrêtez si un modèle manque, si l’authentification se répète ou si la première inspection demande de lire des secrets, d'exécuter une commande ou de modifier le dépôt.
- Étape suivante
- Relisez le résumé, choisissez vous-même une petite modification et relancez la vérification originale.