# Command Code

Source: https://docs.aicentos.com/fr/clients/command-code

Language: fr

> Utiliser aicentos dans Command Code : ajout d'un fournisseur BYOK via providers.json

Command Code est un agent de codage pour le terminal qui utilise par défaut ses fournisseurs intégrés, tout en prenant en charge le BYOK : déclarez un fournisseur personnalisé dans `~/.commandcode/providers.json` et pointez le baseURL vers aicentos.

## Prérequis

Créez d'abord dans la console, page « Clés API », une clé dédiée pour Command Code (nommez-la par exemple `command-code`, pour suivre plus facilement sa consommation) :

* Console : [https://aicentos.com](https://aicentos.com)
* Créer une clé : [https://aicentos.com/keys](https://aicentos.com/keys)
* Recharger en cas de solde insuffisant : [https://aicentos.com/wallet](https://aicentos.com/wallet)

## Configuration à renseigner

| Champ                    | Valeur                                                              |
| ------------------------ | ------------------------------------------------------------------- |
| Fichier de configuration | `~/.commandcode/providers.json`                                     |
| baseURL                  | `https://aicentos.com/v1`                                           |
| apiKey                   | `$AICENTOS_API_KEY`                                                 |
| Modèle                   | nom du modèle dans la « place de marché des modèles » de la console |

## Étapes de configuration

### 1. Définir les variables d'environnement

```bash
export AICENTOS_API_KEY="sk-votre-clé-API"
```

Écrivez-la dans `~/.zshrc` ou `~/.bashrc` pour un effet permanent.

### 2. Éditer providers.json

Éditez `~/.commandcode/providers.json` et ajoutez une entrée sous l'objet `provider` :

```json
{
  "provider": {
    "aicentos": {
      "name": "aicentos",
      "api": "openai-completions",
      "baseURL": "https://aicentos.com/v1",
      "apiKey": "$AICENTOS_API_KEY",
      "models": {
        "gpt-4o": {}
      }
    }
  }
}
```

Détail des champs :

| Champ     | Description                                                                                     |
| --------- | ----------------------------------------------------------------------------------------------- |
| `name`    | Nom d'affichage, visible dans `/connect` et `/model`                                            |
| `api`     | `openai-completions` (par défaut) ou `anthropic-messages`                                       |
| `baseURL` | Obligatoire, adresse racine de l'API, avec `/v1`                                                |
| `apiKey`  | Accepte `$VAR`, `{env:VAR}`, `!command`, ou `false` pour un point d'accès sans authentification |
| `models`  | Obligatoire, `{}` suffit ; les identifiants de modèles doivent correspondre au point d'accès    |

Remplacez les identifiants de modèles dans `models` par les noms de la « place de marché des modèles » de la console, voir [Modèles pris en charge](https://docs.aicentos.com/fr/billing/models-list).

### 3. Choisir le fournisseur

Une fois dans Command Code :

* exécutez `/connect`, sélectionnez `aicentos` et confirmez la clé ;
* exécutez `/model` et choisissez le modèle à utiliser.

Remarque : **après modification de `providers.json`, il faut rouvrir `/model`** pour que la nouvelle configuration soit chargée.

## Test

Une fois le modèle choisi, envoyez un prompt simple :

```
Réponds en une phrase : combien font 1+1 ?
```

Une réponse normale signifie que la connexion fonctionne. Vous pouvez aussi, dans `/connect`, appuyer sur `u` sur le fournisseur pour qu'il interroge le `/models` du point d'accès et rafraîchisse la liste des modèles.

## Remarques

* Command Code passe par défaut par Chat Completions compatible OpenAI ; `api` à `openai-completions` suffit donc.
* Pour utiliser les modèles Claude, créez une autre entrée de fournisseur avec `api: "anthropic-messages"` — les deux protocoles ne construisent pas les chemins de la même façon (le SDK OpenAI ajoute `/chat/completions`, le SDK Anthropic `/v1/messages`), et un même baseURL ne peut pas servir les deux.
* `baseURL` doit contenir `/v1` ; Command Code ajoute lui-même les chemins suivants.
* Une clé collée en clair directement dans `apiKey` est refusée ; utilisez la forme `$VAR`.
* Ordre de dépannage : le modèle est-il visible dans `/model` → la variable d'environnement est-elle visible dans le terminal de lancement → le baseURL s'arrête-t-il bien à `/v1` → le solde est-il suffisant ?

## Liens utiles

* Documentation BYOK officielle : [https://commandcode.ai/docs/byok](https://commandcode.ai/docs/byok)