OpenCode avec APIMaster.ai
Ajoutez APIMaster en tant que fournisseur compatible OpenAI dans OpenCode Desktop, avec des niveaux de raisonnement optionnels via opencode.jsonc.
OpenCode Desktop est le client graphique d'OpenCode (actuellement en version bêta) : sessions d'agent locales, modifications de fichiers et exécution de shell. APIMaster.ai est compatible OpenAI — ajoutez-le sous Paramètres → Fournisseurs → Fournisseur personnalisé.
Obtenez votre clé API d'abord. Utilisez le placeholder
your_apimaster_keyci-dessous ; les captures d'écran masquent les vraies clés.
Prérequis
- OpenCode Desktop installé depuis opencode.ai/download.
- Windows :
opencode-desktop-win-x64.exe - macOS :
brew install --cask opencode-desktopou.dmg - Linux :
.deb/.rpm/ AppImage
- Windows :
- Clé API APIMaster depuis la console.
Étape 1 — Ouvrir les fournisseurs
- Lancez OpenCode Desktop et ouvrez un espace de travail.
- Cliquez sur l'icône d'engrenage (en bas à gauche).
- Sélectionnez Fournisseurs dans la barre latérale.
- Faites défiler jusqu'à Fournisseur personnalisé (Ajouter un fournisseur compatible OpenAI par URL de base).
- Cliquez sur + Connecter.

Étape 2 — Formulaire du fournisseur personnalisé
| Champ | Valeur |
|---|---|
| ID du fournisseur | apimaster |
| Nom d'affichage | APIMaster.ai |
| URL de base | https://apimaster.ai/v1 |
| Clé API | Votre clé APIMaster |

Laissez les en-têtes vides sauf si vous vous authentifiez uniquement via des en-têtes.
Étape 3 — Ajouter des modèles et soumettre
Sur l'écran suivant, associez les modèles (gauche = nom dans OpenCode, droite = identifiant du modèle envoyé à APIMaster — généralement identique) :
| Gauche | Droite |
|---|---|
gpt-5.4 |
gpt-5.4 |
claude-sonnet-4-6 |
claude-sonnet-4-6 |
- Cliquez sur + Ajouter un modèle pour plus de lignes.
- Cliquez sur Soumettre.

Choisissez les identifiants depuis le marketplace. Évitez les modèles réservés aux images (ex. gpt-image-2) pour les discussions d'agent.
Étape 4 — Choisir un modèle
- Démarrez ou ouvrez une session.
- Ouvrez le menu déroulant des modèles sous la zone de saisie.
- Sous APIMaster.ai, sélectionnez un modèle (ex.
claude-sonnet-4-6).

Étape 5 — Tester
Envoyez hello ou une petite tâche de codage. Une réponse normale de l'assistant (modifications de fichiers / shell) signifie qu'APIMaster est connecté.

Avancé : opencode.jsonc et le raisonnement
Le flux d'interface ci-dessus suffit pour un démarrage rapide. Pour configurer les niveaux de Raisonnement / effort de réflexion (low, high, max, …) pour le même identifiant de modèle, modifiez opencode.jsonc.
Emplacement du fichier de configuration
| Système d'exploitation | Chemin |
|---|---|
| macOS / Linux | ~/.config/opencode/opencode.jsonc |
| Windows | C:\Users\<utilisateur>\.config\opencode\opencode.jsonc |
Créez le fichier s'il est manquant. Redémarrez OpenCode Desktop ou démarrez une nouvelle session après avoir enregistré.
Clé API (ne pas mettre dans jsonc)
Ne stockez pas votre clé API dans opencode.jsonc.
Utilisez :
/connectdans le terminal, ou- Paramètres → Fournisseurs → Connecter un fournisseur (identique aux étapes 1–2 ci-dessus).
Gardez les secrets dans le magasin d'authentification d'OpenCode ; jsonc définit uniquement le fournisseur, les modèles et les variantes de raisonnement.
Fournisseur APIMaster dans jsonc
Identifiant du fournisseur : apimaster. Paquet npm : @ai-sdk/openai-compatible.
baseURL doit être :
https://apimaster.ai/v1
Pas https://apimaster.ai/ — OpenCode ajoute /chat/completions. Sans /v1, vous obtenez https://apimaster.ai/chat/completions → 404 Non trouvé.
Exemple complet avec variantes de raisonnement — téléchargez et remplacez la configuration d'OpenCode :
- Téléchargez opencode.jsonc
- Remplacez (ou enregistrez sous) :
- macOS / Linux :
~/.config/opencode/opencode.jsonc - Windows :
C:\Users\<utilisateur>\.config\opencode\opencode.jsonc
- macOS / Linux :
- Configurez la clé API via
/connectou l'interface (jamais dans jsonc). - Redémarrez OpenCode Desktop ou démarrez une nouvelle session.
Sauvegardez votre fichier existant avant de le remplacer, ou fusionnez uniquement le bloc
provider.apimaster.
Structure minimale :
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://apimaster.ai/v1" },
"models": {
"gpt-5.4": {
"name": "gpt-5.4",
"variants": {
"low": { "reasoningEffort": "low" },
"high": { "reasoningEffort": "high" }
}
}
}
}
}
}
Principes de raisonnement
variants= plusieurs niveaux de raisonnement pour un seul identifiant de modèle dans l'interface.- Pour les API compatibles OpenAI, OpenCode mappe
reasoningEffort→reasoning_effortdans le corps de la requête. - Les noms de variantes doivent correspondre au paramètre réel (
high→"reasoningEffort": "high"). - Chaque modèle prend en charge différents niveaux — configurez selon la documentation officielle ; aucun remappage caché.
Niveaux de raisonnement par modèle
| Modèle | Variantes de raisonnement | Remarques |
|---|---|---|
gpt-5.4 |
low, medium, high, xhigh |
Raisonnement GPT |
gpt-5.5 |
low, medium, high, xhigh |
Raisonnement GPT |
deepseek-v4-flash |
high, max |
Réflexion DeepSeek (recommandé) |
deepseek-v4-pro |
high, max |
Réflexion DeepSeek (recommandé) |
claude-sonnet-4-6 |
low, medium, high, max |
Effort Claude Sonnet |
claude-opus-4-7 |
low, medium, high, xhigh, max |
Effort Claude Opus |
claude-opus-4-8 |
low, medium, high, xhigh, max |
Effort Claude Opus |
claude-haiku-4-5 |
aucun | Aucun niveau d'effort non confirmé |
minimax-m3 |
aucun | Aucun niveau d'effort non confirmé |
Voir opencode.jsonc pour le fichier complet.
Changer le raisonnement dans OpenCode
- Enregistrez
opencode.jsonc, puis redémarrez ou nouvelle session. - Utilisez le menu déroulant du modèle / raisonnement (ex.
gpt-5.4 / high). - Si pris en charge dans votre build :
Ctrl + Shift + Dparcourt les niveaux de raisonnement.
Dépannage
Configuration via l'interface
| Problème | Solution |
|---|---|
| 401 | Vérifiez la clé ; faites-la pivoter si elle a été exposée |
| Modèle introuvable | L'URL de base doit être https://apimaster.ai/v1 ; l'identifiant du modèle doit correspondre au marketplace |
| Aucun modèle APIMaster | Modifiez le fournisseur dans Paramètres → ajoutez des correspondances → Soumettre |
| Lent / délai d'attente | Essayez un autre modèle ; utilisez Testeur de clé API |
Raisonnement / jsonc
Pourquoi seulement high et max pour DeepSeek ?
L'effort de réflexion officiel compatible OpenAI pour DeepSeek est high et max. Évitez low / medium / xhigh qui seraient remappés de manière imprévisible.
Pourquoi max pour Claude Sonnet et pas xhigh ?
Le niveau le plus élevé de Sonnet est max ; xhigh est pour Opus (claude-opus-4-7 / claude-opus-4-8).
Pourquoi aucune variante pour Haiku ou MiniMax M3 ?
Sans valeurs documentées de reasoningEffort, ignorez les variantes — le modèle fonctionne toujours ; l'interface n'affichera simplement pas les sous-niveaux de raisonnement.
Toujours une erreur 400 ?
baseURL=https://apimaster.ai/v1(pas la racine du site).- L'orthographe de l'identifiant du modèle correspond au marketplace.
- Clé configurée via
/connectou l'interface. - Supprimez temporairement les
variants— si les requêtes simples fonctionnent, lereasoning_effortchoisi n'est peut-être pas pris en charge pour ce modèle.
Sécurité
- Ne partagez jamais de clés dans les discussions ou les captures d'écran non masquées.
- Faites pivoter les clés qui sont apparues dans les captures d'écran ou les journaux.
- OpenCode peut lire/écrire des fichiers et exécuter des commandes shell — utilisez uniquement des espaces de travail de confiance.
Liste de contrôle
- OpenCode Desktop installé
- Fournisseur personnalisé connecté ou
apimasterdansopencode.jsonc - URL de base /
baseURL=https://apimaster.ai/v1(pashttps://apimaster.ai/) - Clé API via
/connectou l'interface (pas dans jsonc) - Au moins un modèle de chat associé
- (Optionnel) Variantes de raisonnement correspondant aux niveaux officiels
- Un message de test réussi
Résumé
- Clés :
baseURL(https://apimaster.ai/v1), identifiant du modèle, clé API (/connectou interface), variantes de raisonnement optionnelles. - Les noms des variantes = valeurs réelles de
reasoning_effort. - Configurez les niveaux par modèle ; ignorez les variantes lorsqu'elles ne sont pas prises en charge (Haiku, MiniMax M3).