Skip to content

Connecter OpenCode

Difficulté ⌨️ Intermédiaire (fichier de configuration JSON) | Format d'interface Compatible OpenAI | base_url https://byesu.com/v1

Infos de connexion
Adresse APIhttps://byesu.com/v1
Clé APIsk-xxxxxxxxCréer dans la console →
Modèleclaude-opus-4-8
Format API Compatible OpenAI · noms de modèles selon la console

OpenCode est l'un des agents de programmation IA open source les plus étoilés sur GitHub — un assistant pensé d'abord pour le terminal (avec aussi une application de bureau et une extension IDE), délibérément agnostique vis-à-vis des fournisseurs : il ne vous enferme jamais chez un seul éditeur de modèles. Cette philosophie s'accorde naturellement avec byesu, une passerelle API pour l'IA dotée d'endpoints compatibles OpenAI et natifs Anthropic. Déclarez byesu une seule fois comme fournisseur personnalisé dans opencode.json, et une seule clé fait apparaître Claude Opus 4.8, Claude Sonnet 5, GPT-5.6 et Grok 4.5 dans le sélecteur de modèles d'OpenCode — facturés à l'usage, sans abonnement.

Avant de commencer

Rendez-vous sur Console → Jetons et créez un jeton dans le groupe qui couvre les modèles que vous comptez utiliser (voir Choisir un groupe). Remplacez les sk-xxxx ci-dessous par votre propre clé.

Prérequis

① OpenCode installé — n'importe laquelle des méthodes officielles convient :

bash
curl -fsSL https://opencode.ai/install | bash
bash
npm install -g opencode-ai
bash
brew install anomalyco/tap/opencode

Une fois installé, vérifiez :

bash
opencode --version

② Un jeton byesu — créé dans la console, dans le groupe qui correspond aux modèles voulus (c'est précisément l'objet de l'erreur « no available channel » abordée plus bas).

Étape 1 : Ajouter byesu comme fournisseur personnalisé

OpenCode lit opencode.json à deux endroits :

  • Global : ~/.config/opencode/opencode.json — s'applique à tous les projets. Emplacement recommandé pour le bloc du fournisseur.
  • Projet : opencode.json à la racine du projet — remplace le fichier global pour ce projet.

Créez (ou complétez) l'un de ces fichiers avec le contenu suivant :

json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "byesu/claude-opus-4-8",
  "small_model": "byesu/claude-sonnet-5",
  "provider": {
    "byesu": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "byesu",
      "options": {
        "baseURL": "https://byesu.com/v1",
        "apiKey": "sk-votre-jeton"
      },
      "models": {
        "claude-opus-4-8": { "name": "Claude Opus 4.8" },
        "claude-sonnet-5": { "name": "Claude Sonnet 5" },
        "gpt-5.6-terra": { "name": "GPT-5.6 Terra" },
        "grok-4.5": { "name": "Grok 4.5" }
      }
    }
  }
}

Rôle de chaque partie :

ChampSignification
provider.byesuLa clé choisie ici devient l'identifiant du fournisseur — chaque référence de modèle s'écrit byesu/<model-id>
npmL'adaptateur AI SDK qu'OpenCode charge pour ce fournisseur. L'endpoint de byesu parle /v1/chat/completions, donc c'est @ai-sdk/openai-compatible
options.baseURLhttps://byesu.com/v1 — se termine par /v1, n'ajoutez pas /chat/completions
options.apiKeyVotre jeton sk- ; OpenCode l'envoie pour vous dans un en-tête Bearer
modelsChaque clé est un identifiant de modèle exactement tel qu'affiché dans la console ; name n'est que le libellé affiché dans le sélecteur
model / small_modelModèle par défaut, plus un modèle auxiliaire léger (titres de session, résumés) — tous deux au format provider_id/model_id

Les trois erreurs les plus faciles à commettre

  1. npm doit être @ai-sdk/openai-compatible. Le package @ai-sdk/openai cible l'API /v1/responses d'OpenAI et ne correspondra pas à cet endpoint.
  2. Les clés de modèles sous models doivent correspondre exactement aux noms de la console (claude-opus-4-8, pas claude-opus-4.8).
  3. Partout ailleurs dans la configuration, les modèles portent le préfixe du fournisseur : byesu/claude-opus-4-8, jamais le nom seul.

En option, chaque entrée de modèle accepte aussi un objet limit ({ "context": ..., "output": ... }) pour que la jauge de contexte d'OpenCode soit exacte. Tout fonctionne sans.

Étape 2 (optionnelle) : Garder la clé hors du fichier

Deux méthodes propres pour éviter une clé en clair dans opencode.json :

Interpolation de variables d'environnement. OpenCode développe les espaces réservés {env:VAR} à l'intérieur de la configuration :

json
"options": {
  "baseURL": "https://byesu.com/v1",
  "apiKey": "{env:BYESU_API_KEY}"
}
bash
# Ajoutez ceci à ~/.zshrc ou ~/.bashrc, puis rouvrez votre terminal
export BYESU_API_KEY="sk-votre-jeton"

La commande /connect. Lancez opencode, tapez /connect, choisissez Other, saisissez byesu comme identifiant de fournisseur et collez votre clé. OpenCode enregistre l'identifiant dans son propre magasin de secrets, et vous pouvez supprimer entièrement apiKey de la configuration.

WARNING

L'identifiant de fournisseur saisi dans /connect doit correspondre à la clé sous provider dans opencode.json (ici : byesu), sinon la clé enregistrée n'est jamais utilisée.

Étape 3 : Lancer et vérifier

Placez-vous dans n'importe quel répertoire de projet et lancez :

bash
opencode

Tapez /models — les quatre entrées byesu doivent apparaître dans le sélecteur. Choisissez-en une et posez une petite question (par exemple : « liste les fichiers du répertoire courant »). Si la réponse arrive normalement, vous êtes connecté ✅

Changer de modèle, Plan et Build

/models permet de changer de modèle à tout moment en cours de session. Tab bascule entre l'agent Build (accès complet aux outils) et l'agent Plan (mode analyse qui demande confirmation avant de modifier des fichiers), et chaque agent peut épingler son propre modèle byesu :

json
{
  "agent": {
    "plan": { "model": "byesu/claude-sonnet-5" }
  }
}

Une répartition classique : Opus 4.8 par défaut pour Build, Sonnet 5 pour l'agent Plan et le rôle de small_model.

Bloqué ?

  • 401 / jeton invalide → la clé est erronée, ou l'identifiant de fournisseur saisi dans /connect ne correspond pas à votre clé provider dans la configuration (détails)
  • Aucun canal disponible → le groupe du jeton ne couvre pas le modèle choisi ; créez un jeton dans le bon groupe (Choisir un groupe, détails)
  • Modèle inexistant → une clé sous models ne correspond pas exactement au nom du modèle dans la console, ou une référence n'a pas le préfixe byesu/ (détails)
  • Solde insuffisant → rechargez dans la console en USDT, via Alipay ou WeChat Pay (détails)
  • Pour tout le reste, consultez Erreurs courantes & solutions

FAQ

Comment ajouter un fournisseur personnalisé compatible OpenAI à OpenCode ?

Déclarez-le sous la clé provider dans opencode.json : définissez npm sur @ai-sdk/openai-compatible, options.baseURL sur https://byesu.com/v1, options.apiKey sur votre jeton sk-, et listez les identifiants de modèles sous models. À partir de là, référencez chaque modèle sous la forme byesu/<model-id>.

Quel package npm un fournisseur personnalisé OpenCode doit-il utiliser ?

@ai-sdk/openai-compatible — c'est l'adaptateur pour les fournisseurs qui parlent /v1/chat/completions, ce qui est le cas de l'endpoint compatible OpenAI de byesu. @ai-sdk/openai cible au contraire l'API /v1/responses d'OpenAI et ne correspondra pas.

Puis-je garder ma clé API en dehors de opencode.json ?

Oui, de deux façons : utilisez l'interpolation de variables d'environnement ("apiKey": "{env:BYESU_API_KEY}" plus un export dans votre profil shell), ou exécutez /connect dans OpenCode et enregistrez la clé sous un identifiant de fournisseur identique à la clé de votre configuration.

Pourquoi OpenCode renvoie-t-il une erreur « no available channel » ?

Le jeton a été créé dans un groupe qui ne couvre pas le modèle sélectionné. Créez un jeton dans le groupe correspondant depuis la console byesu (voir Choisir un groupe), remplacez la clé par la nouvelle, puis réessayez.

Les agents Plan et Build d'OpenCode peuvent-ils utiliser des modèles différents ?

Oui. Tab bascule entre Build et Plan en cours de session, et chaque agent accepte sa propre surcharge model dans opencode.json — par exemple agent.plan.model défini sur byesu/claude-sonnet-5 pendant que Build reste sur byesu/claude-opus-4-8.

Comment l'utilisation d'OpenCode est-elle facturée via byesu ?

À l'usage, au token, avec des multiplicateurs transparents par rapport aux prix officiels et sans abonnement. La console affiche le prix facturé en temps réel à côté de chaque modèle, et vous pouvez recharger en USDT, via Alipay ou WeChat Pay.

Un problème ? Contactez le support ou rejoignez notre groupe.