Cline CLI avec Carpe Diem : clé cdm_ et OpenAI Compatible

Cline est un agent de code : il lit un dépôt, écrit des fichiers et lance des commandes. Dans le terminal, c'est la CLI ; dans VS Code, une extension. Les deux peuvent parler à une API compatible OpenAI, donc à Carpe Diem. Avec deepseek-v4-1-flash, il a répondu pong du premier coup, puis écrit add.mjs et imprimé 5.

Illustration générée avec seedream-v5-lite sur Carpe Diem.
Ce qu'il vous faut
- Un compte Carpe Diem avec des crédits ou un solde prepaid, et une clé
cdm_(Credits & keys). - Node.js 20 ou plus (nous avons tourné sous Node v22.23.1).
- Cline CLI 3.0.74, installé à l'étape 2.
Si vous voulez seulement un script Python sans agent, le tutoriel SDK OpenAI Python suffit. Ici, on lance l'agent.
Étape 1 : créer une clé cdm_
Ouvrez Credits & keys, puis l'onglet API Keys. Choisissez Credits ou Prepaid, donnez-lui un nom si vous voulez, puis cliquez sur Create a key. La clé commence par cdm_ et ne s'affiche qu'une fois : copiez-la avant de fermer la page. Les deux modes débitent le même catalogue ; le détail des paiements est dans le guide, §4.1.

Étape 2 : installer Cline CLI
La documentation Cline installe la CLI avec npm :
npm install -g cline
cline --version a affiché 3.0.74, la version de cet essai.
Étape 3 : pointer Cline sur Carpe Diem
Cline range le fournisseur dans le répertoire --config (~/.cline d'après la référence CLI). Trois champs suffisent, les mêmes que dans le panneau ⚙️ de l'extension VS Code (OpenAI Compatible) : Base URL, clé et identifiant de modèle.
export OPENAI_API_KEY=cdm_your_key_here
cline auth -p openai-compatible \
-k "$OPENAI_API_KEY" \
-m deepseek-v4-1-flash \
-b https://carpe-diem.xyz/api/operator/v1
Sortie obtenue :
Provider configured: openai-compatible (deepseek-v4-1-flash)
L'URL doit se terminer par /v1 : c'est la base URL de Carpe Diem, et Cline y ajoute lui-même /chat/completions. Copiez l'identifiant du modèle depuis /models. Au moment de notre essai, deepseek-v4-1-flash y était classé private, optimisé pour le code et capable d'appeler des outils, ce qu'un agent exige. Il coûtait 0,1647 $ par million de jetons d'entrée et 0,6586 $ en sortie (prix dynamique).

Étape 4 : le premier appel
L'option --json écrit un événement par ligne, pratique pour vérifier sans ouvrir l'interface interactive. --auto-approve false n'approuve pas les outils tout seul ; notre consigne demandait de n'en utiliser aucun.
cline --json --auto-approve false --timeout 90 \
"Reply with the exact word: pong. Do not use tools."
Le dernier objet de la sortie :
{
"type": "run_result",
"finishReason": "completed",
"iterations": 1,
"text": "pong",
"durationMs": 987,
"model": {
"id": "deepseek-v4-1-flash",
"provider": "openai-compatible"
}
}
La réponse est arrivée en à peine une seconde, sans appel d'outil. Cline affiche totalCost: 0 : nous n'avions pas renseigné les prix d'entrée et de sortie dans sa configuration de modèle, et la CLI n'imprime pas l'en-tête X-Carpe-Cost-Usdc-Micro. Pour connaître le coût réel, ouvrez Usage ou lisez les en-têtes depuis un script, comme dans le tuto SDK.
Étape 5 : une tâche réelle dans un dossier
Placez-vous dans un dossier vide, pas dans un dépôt déjà chargé. --auto-approve true laisse Cline écrire le fichier et lancer Node sans vous demander confirmation.
cline --auto-approve true --timeout 180 --json \
"Create add.mjs that exports function add(a, b) { return a + b }. Then run: node --input-type=module -e \"import { add } from './add.mjs'; console.log(add(2, 3))\" and stop after the command prints. Do not git init or commit. Do not install packages."
Cline a créé le fichier, exécuté la commande, et Node a imprimé 5. Le fichier obtenu :
export function add(a, b) {
return a + b;
}
Le run_result donnait finishReason: completed en trois itérations, avec le même modèle et le même fournisseur qu'à l'étape précédente. Sans --json, cline "votre tâche" ouvre l'interface interactive (aperçu de la CLI).
Si ça ne marche pas
Unauthorized. Avec une fausse clé (cdm_invalid_key_for_test), Cline a renvoyé Unauthorized (errorClass: auth, finishReason: error). La clé est incomplète, mal collée, ou l'option -k n'a pas été passée.
Modèle introuvable. Avec -m this-model-does-not-exist, le message était : This model is no longer available upstream. Try a newer version of the same model. Une faute de frappe suffit : comparez l'identifiant avec /models.
Base URL sans /v1. L'adaptateur Anthropic vit sur https://carpe-diem.xyz/api/operator, sans /v1. Pour Cline en OpenAI Compatible, gardez /v1.
Node trop ancien. Cline demande Node 20 ou plus ; node -v vous dit où vous en êtes.
Aller plus loin
Dans VS Code, installez l'extension Cline, ouvrez le ⚙️, choisissez OpenAI Compatible et remplissez les trois mêmes champs : Base URL https://carpe-diem.xyz/api/operator/v1, clé cdm_, modèle deepseek-v4-1-flash. Nous n'avons pas lancé l'extension ici ; la CLI et elle partagent ce type de fournisseur.
Pour un autre agent dans le terminal, voyez Hermes Agent. Pour un chat web en streaming, le tuto Vercel AI SDK. Pour essayer un modèle sans rien installer, le Create Hub.
Méthode : essai du 5 novembre 2026 avec Cline 3.0.74 et Node v22.23.1, une exécution par étape. Le pong a tourné sans outils ; la tâche add.mjs a écrit le fichier et imprimé 5. Le coût côté Carpe Diem n'a pas été relevé depuis Cline, et l'extension VS Code n'a pas été testée.
Créez votre clé sur Credits & keys, lancez cline auth, puis le pong.