En octobre 2026, nous avons fait passer huit modèles gratuits d’OpenCode par une même chaîne : un brief de niche, un modèle de prompt, puis l’agent écrit seul un site-catalogue en Astro, corrige le build, recherche un article sur le web, peaufine le site et le publie sur Vercel. Pas de clé API, rien à payer. Résultat : 8 sites fonctionnels de 19 à 21 pages, zéro lien interne cassé et un écart net entre les modèles en vitesse, fiabilité et qualité de rédaction.
En bref
- Pour le build et le déploiement, Beam s’en sort le mieux : site en 12 minutes, article en 7, déploiement en 11, sans incident. Il n’est pas disponible dans plusieurs pays, dont la Russie. Solution de repli : DeepSeek V4.1 Flash, qui n’a jamais cassé un build mais reste lent sous charge.
- Pour les articles, MiniMax M3.1 Flash écrit les textes les plus approfondis, mais l’agent va rarement au bout seul et laisse des fautes de frappe. Un choix plus régulier : GLM-5.3-Flash.
- Mieux vaut attribuer un modèle à chaque étape qu’à chaque site. La même chaîne peut être composée de modèles différents.
- Deux modèles sur huit n’ont rien donné : le site de Flint 40B ne s’est pas construit, et LongCat 2.5 Preview n’a pas répondu à la requête de test.
Comment la chaîne est construite
Chaque site a un brief JSON : niche, public, exemples de services, champs de filtres propres à la niche, sujet de l’article, nom du projet. Un script injecte le brief dans le modèle de prompt et lance l’agent avec opencode run -m opencode/<modèle> (documentation de la CLI). Chaque étape est une session neuve, avec un délai maximal de 60 minutes et une nouvelle tentative en cas d’échec de l’agent.
brief (JSON) ─► modèle de prompt ─► opencode run -m opencode/<modèle>
1. site site Astro : données, pages, balisage SEO
2. npm run build vérification par script ; en cas d’erreur — fix-build (jusqu’à 2 fois)
3. article 10–12 k caractères, recherche web
4. deploy logos, image OG, vérification des liens, vercel deploy --prod
5. contrôle 200 sur l’accueil et l’article, métriques de qualité
Ce que couvre chaque étape :
- Site. Astro statique sans framework d’interface, 12 services réels dans
tools.json, un accueil avec filtres et tri, une page par service, un comparatif, une section d’articles avec trois textes, « À propos », une 404, du JSON-LD, un sitemap et un robots.txt. - Correction du build. L’agent reçoit le texte de l’erreur et modifie le code jusqu’à ce que
npm run buildréussisse. - Article. L’agent cherche lui-même sur le web (outils intégrés
websearchetwebfetch), choisit la structure et écrit dans un style informatif : chiffres, tableaux, pas de remplissage. - Finitions et déploiement. Logos des services, accords corrects après les nombres, image OG de 1200×630, vérification de tous les liens internes dans
dist/, puis déploiement avec la CLI Vercel et contrôle des adresses en ligne.
Modèle abrégé de l’étape « site »
Les modèles de travail étaient en russe ; voici une version abrégée et traduite :
Tu construis un site-catalogue statique dans le dossier COURANT. Travaille uniquement dedans.
## Niche
« {{NICHE}} » — catalogue et classement. {{NICHE_DESCRIPTION}}
Public : {{AUDIENCE}}. Langue du site : russe.
## Stack (strict)
- Astro, output: 'static', sans SSR ni adaptateur.
- Pas de React/Vue : uniquement des composants .astro et du CSS simple.
- Pas de générateurs interactifs : crée package.json à la main.
## Données
src/data/tools.json — {{COUNT}} services réels et existants.
Champs : slug, name, url, short, description, free_plan, price_from,
features, pros, cons, best_for, rating + {{FILTER_FIELDS}}.
## Pages
/ (filtres JS, grille de cartes), /tools/[slug]/, /compare/,
/articles/ + 3 articles, /about/, 404.
## Terminé quand
npm run build passe sans erreur, dist/ contient toutes les pages,
le sitemap et robots.txt.
Fichiers temporaires uniquement dans ./.tmp/. /tmp et les chemins hors du projet sont bloqués.
Conditions de l’expérience
- Dates : 21 et 22 octobre 2026.
- Modèles : huit modèles gratuits d’OpenCode : Beam, DeepSeek V4.1 Flash, GLM-5.3-Flash, MiniMax M3.1 Flash, MiMo-V2.6-Flash, Nemotron 3 Ultra, Flint 40B, LongCat 2.5 Preview.
- Tâches : 9 lancements, une niche par site. Ce sont des catalogues de services sur des thèmes variés ; les niches ne sont pas révélées dans cet article.
- Charge : jusqu’à 6 sessions simultanées. Les durées des tableaux sont gonflées par le travail en parallèle — voir plus bas.
- Échantillon : un ou deux sites par modèle. C’est une comparaison sur des tâches concrètes, pas un benchmark.
Synthèse par modèle
| Modèle | Sites | Site → article → déploiement, min | Arrivé en production | À retenir |
|---|---|---|---|---|
| Beam | 1 | 12 → 7 → 11 | seul, sans incident | Le plus rapide et le plus fiable. Indisponible depuis la Russie |
| DeepSeek V4.1 Flash | 2 | 60–68 → 18 → 24–37 | seul dans 1 lancement sur 2 | Constructeur fiable, aucune correction de build. Lent sous charge |
| GLM-5.3-Flash | 1 | 27 → 9 → 29 | après un redémarrage du déploiement | Résultat régulier, l’article le plus riche en tableaux (5 tableaux) |
| MiniMax M3.1 Flash | 2 | 25–28 → 5–6 → 55–145 | 0 sur 2 seul | Articles les plus approfondis et auto-vérification, mais blocages et fautes de frappe |
| MiMo-V2.6-Flash | 1 | 45 → 31 → 29 | après un redémarrage | Lent, article à la structure plus pauvre |
| Nemotron 3 Ultra | 1 | 25 → 47 → 27 | seul | Article très lent, restes de balisage dans les titres |
| Flint 40B | 0 | — | non | Le site ne s’est pas construit en 3 essais : point d’accès indisponible |
| LongCat 2.5 Preview | 0 | — | non | Erreur serveur à la requête de test |
Le temps de déploiement inclut les redémarrages de l’étape : avec MiniMax, un point d’accès indisponible et des sessions fermées ont obligé à relancer l’étape.
Métriques par lancement
| Lancement | Site, min | Article, min | Déploiement, min | Corrections de build | Pages | Article, caractères | H2 / tableaux / liens externes |
|---|---|---|---|---|---|---|---|
| Beam | 12 | 7 | 11 | 0 | 21 | 11 940 | 10 / 2 / 2 |
| GLM-5.3-Flash | 27 | 9 | 29 | 0 | 21 | 12 857 | 9 / 5 / 0 |
| DeepSeek V4.1 Flash, n° 1 | 60 (délai dépassé) | 18 | 37 | 0 | 21 | 11 921 | 9 / 2 / 0 |
| DeepSeek V4.1 Flash, n° 2 | 68 | 18 | 24 | 0 | 21 | 10 639 | 10 / 2 / 4 |
| MiniMax M3.1 Flash, n° 1 | 25 | 5 | 55 | 0 | 21 | 11 198 | 9 / 4 / 0 |
| MiniMax M3.1 Flash, n° 2 | 28 | 6 | 145 | 0 | 21 | 11 445 | 10 / 1 / 1 |
| MiMo-V2.6-Flash | 45 | 31 | 29 | 1 | 21 | 11 980 | 9 / 1 / 0 |
| Nemotron 3 Ultra | 25 | 47 | 27 | 1 | 19 | 12 540 | 8 / 3 / 7 |
| Flint 40B | 9 | — | — | 2 (sans succès) | — | — | — |
Le premier lancement de DeepSeek a atteint le délai de 60 minutes à l’étape « site », mais le build est passé. À titre de comparaison, un lancement isolé de DeepSeek a pris 14 minutes pour le site, 3 de plus pour corriger le build, 4,5 pour l’article (environ 11 k caractères et 10 recherches web) et 9 pour les finitions et le déploiement. Sous charge parallèle, l’étape « site » du même modèle a été 4 à 5 fois plus longue.
Ce que donnent les sites terminés
- 0 lien interne cassé sur les 8 sites, 0 phrase de service dans le texte public.
- 19 à 21 pages par site, 12 services avec logos, l’accueil et l’article répondent 200.
- Articles de 10,6 à 12,9 k caractères, 8 à 10 sections, de 1 à 5 tableaux. Les formules toutes faites apparaissent de 0 à 3 fois par article.
- Le design est correct partout, mais les modèles convergent vers un même style par défaut : fond crème, titres à empattements, étiquettes monospace en majuscules. Pour un réseau de sites qui ne doivent pas se ressembler, fixez le style dans le brief : palette, polices, forme des cartes.
Les modèles un par un
Beam
Le lancement le plus rapide et le seul sans aucun incident : 30 minutes entre un dossier vide et un site en ligne. Un article de 11,9 k caractères, 10 sections, texte propre. La limite est la disponibilité : Beam est bloqué dans plusieurs pays, dont la Russie (par IP).
DeepSeek V4.1 Flash
N’a jamais cassé un build et a écrit des articles soignés avec peu de formules toutes faites. Avec six sessions en parallèle, l’étape « site » a pris 60 à 68 minutes. Dans l’un des deux lancements, l’agent s’est fermé lui-même : il a utilisé un dossier temporaire hors du projet, et OpenCode a terminé la session.
GLM-5.3-Flash
L’article le plus long (12,9 k caractères) et cinq tableaux. Le brouillon contenait des mots hybrides mêlant lettres latines et cyrilliques, que le modèle a repérés et nettoyés seul pendant les finitions. L’échec du déploiement venait d’un conflit dans la base d’OpenCode, pas du modèle.
MiniMax M3.1 Flash
La meilleure matière : les articles les plus approfondis et une auto-vérification — l’agent a écrit ses propres scripts pour contrôler les liens et la mise en page avec Playwright. Points faibles : blocages, point d’accès indisponible, fautes de frappe. Aucun des deux lancements n’est arrivé en production sans redémarrage manuel.
MiMo-V2.6-Flash
Site en 45 minutes, article en 31, une correction de build. L’article compte un tableau et aucun lien externe. Cela fonctionne, mais c’est plus lent et plus pauvre que les autres.
Nemotron 3 Ultra
Le site a été prêt en 25 minutes plus une correction de build (22 minutes de plus), et l’article a pris 47 minutes. Des ancres comme {#formatting-issues} sont restées dans les titres, certains liens utilisent l’adresse comme texte, et il y a 19 pages au lieu de 21. En contrepartie, il compte le plus de liens externes : 7.
Ce qui a cassé et comment c’est réglé
| Problème | Cause | Solution |
|---|---|---|
| « Failed to execute statement » en lancements parallèles | Tous les sites étaient dans un seul dépôt git, donc un seul projet dans la base locale d’OpenCode | Un git init distinct pour chaque site |
| La session se ferme en pleine étape | L’agent utilise /tmp, et l’accès hors du projet est bloqué | Règle dans chaque modèle : fichiers temporaires uniquement dans ./.tmp/ |
| Une étape reste bloquée des heures | Blocage du modèle ou du point d’accès ; opencode run --continue se figeait aussi | Délai de 60 minutes, session neuve à chaque étape, une nouvelle tentative en cas d’échec |
| Des serveurs locaux restent actifs | L’agent vérifiait le site sans arrêter le serveur | Règle : arrêter le serveur après la vérification |
| Concurrence pour les ressources | 6 sessions à la fois | Limite raisonnable : 2 à 3 sessions en parallèle |
Conditions de l’accès gratuit
- Uniquement via OpenCode. Une requête API directe à un modèle gratuit renvoie 403
FreeTierErroren précisant que l’offre gratuite ne fonctionne qu’à l’intérieur d’OpenCode. Aucune clé n’est nécessaire. - La recherche web est gratuite. La recherche intégrée à OpenCode passe par le serveur d’OpenCode et ne demande aucun abonnement distinct.
- La liste change chaque jour. Pendant l’expérience, deux modèles gratuits ont disparu de la liste en une journée et MiniMax est apparu. La liste à jour figure sur la page OpenCode et dans la documentation.
Les politiques de données diffèrent selon les modèles :
| Modèle | Ce que l’on sait sur les données |
|---|---|
| DeepSeek, GLM, MiniMax, LongCat | Le fournisseur déclare une politique de zéro rétention : les requêtes ne sont pas conservées |
| MiMo, Flint | Les données peuvent servir à l’entraînement |
| Nemotron | Accès d’essai NVIDIA avec journalisation des requêtes |
| Beam | Indisponible dans plusieurs pays, dont la Russie |
Pour des catalogues publics, ce n’est pas critique, mais évitez d’envoyer du code privé, des clés ou des données clients à des modèles susceptibles de s’entraîner sur les requêtes.
Conclusion : un modèle par étape, pas par site
| Étape | Qui attribuer | Pourquoi |
|---|---|---|
| Construire le site et corriger le build | Beam ; solution de repli — DeepSeek V4.1 Flash | Le build le plus rapide et le plus fiable |
| Déploiement | Beam ou DeepSeek V4.1 Flash | Beam a terminé le déploiement sans redémarrage, DeepSeek dans un lancement sur deux |
| Article | MiniMax M3.1 Flash avec relecture, ou GLM-5.3-Flash | Profondeur et tableaux ; MiniMax demande de vérifier les fautes de frappe, GLM les mots hybrides |
| Pas pour les longues étapes | Nemotron 3 Ultra, MiMo-V2.6-Flash | Un article prend 30 à 47 minutes, pour un résultat plus pauvre |
Règles pratiques pour une chaîne de ce type :
- Donnez à chaque site son propre dépôt git et à chaque étape une session neuve.
- Limitez la durée d’une étape (60 minutes s’est avéré une borne raisonnable) et relancez en cas d’échec.
- Interdisez les fichiers temporaires hors du dossier du projet : c’est la cause la plus fréquente des sessions fermées.
- Lancez 2 à 3 sessions en parallèle plutôt que 6 : la durée d’une étape diminue nettement.
- Fixez le style dans le brief, sinon les sites seront identiques.
- Vérifiez le résultat par script : build, réponse 200, liens cassés, phrases de service dans le texte.
Si vous configurez OpenCode pour la première fois, commencez par le guide Utiliser des LLM gratuits dans Cursor, Cline et OpenCode, et consultez la page des modèles gratuits pour programmer pour choisir un modèle.