Claude Code est un agent console d’Anthropic qui peut lire des fichiers de projet, éditer du code, exécuter des commandes et des tests, rechercher dans le référentiel et travailler avec git. Le principal inconvénient lors de son utilisation est le coût : de longues sessions avec beaucoup de contexte engloutissent vite le budget de l’abonnement.
Il existe une solution. DeepSeek fournit un point de terminaison compatible avec l’API Anthropic. Il suffit de changer l’adresse de base et le jeton, et Claude Code commencera à fonctionner sur les modèles DeepSeek, sans nécessiter de réinstallation ni de correctif. Dans cet article, je décrirai comment configurer cela sur macOS, Linux et Windows.
Pourquoi est-ce nécessaire
Les raisons peuvent être différentes :
– Prix. Les modèles DeepSeek sont nettement moins chers que Claude, et pour les tâches de routine des agents – navigation dans un projet, modifications mineures, exécution de tests – une qualité optimale n’est pas toujours nécessaire.
– Disponibilité. Si vous n’avez pas d’abonnement ou si le paiement avec une carte Anthropic n’est pas disponible pour une raison quelconque, DeepSeek devient une option fonctionnelle.
– Expériences. Il est intéressant de comparer la façon dont différents modèles gèrent la même base de code dans le même environnement.
Ce dont vous avez besoin
Vous devez installer Claude Code et la clé API DeepSeek. Si Claude Code n’est pas déjà installé, l’ordre est le suivant :
1. Installez Node.js 18 ou version ultérieure. Sous Windows, vous aurez également besoin de Git pour Windows.
2. Installez Claude Code lui-même à l’aide de la commande ci-dessous.
3. Vérifiez l’installation.
npm install -g @anthropic-ai/claude-code
claude --version
Si la version s’affiche, l’installation a réussi. La clé API est créée dans votre compte personnel DeepSeek sur la page des clés.
Configuration via variables d’environnement
Toute intégration se résume à des variables d’environnement. Pour macOS et Linux, cela ressemble à ceci :
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=ваш_ключ_deepseek
export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432
Pour Windows dans PowerShell, la syntaxe est différente, mais les noms de variables sont les mêmes :
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="ваш_ключ_deepseek"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"
Voyons ce qui se passe ici. La variable `ANTHROPIC_BASE_URL` redirige les requêtes des serveurs Anthropic vers DeepSeek. `ANTHROPIC_AUTH_TOKEN` remplace votre clé. Les variables restantes déterminent quel modèle est utilisé dans quel rôle. Il existe des modèles avec le suffixe « [1m] » – il s’agit d’une option avec une fenêtre contextuelle d’environ un million de jetons, qui permet à l’agent de conserver beaucoup plus de fichiers de projet à la fois. En conséquence, `CLAUDE_CODE_AUTO_COMPACT_WINDOW` est défini sur la taille de cette fenêtre afin que la compression automatique de l’historique ne fonctionne pas trop tôt.
Il est pratique de ne pas exporter manuellement les variables à chaque fois, mais de les enregistrer dans la configuration de Claude Code. Ensuite, les paramètres seront récupérés automatiquement au démarrage.
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_AUTH_TOKEN": "ваш_ключ_deepseek",
"ANTHROPIC_MODEL": "deepseek-flash[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-flash",
"CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-flash"
}
}
Après cela, allez dans le répertoire du projet et exécutez l’agent :
cd ваш_проект
claude
Claude Code dans VS Code
Claude Code est disponible non seulement dans le terminal, mais également en tant qu’extension pour VS Code. Il s’installe normalement : ouvrez le panneau des extensions en utilisant Cmd+Shift+X, recherchez “Claude Code” et cliquez sur Installer. L’extension est produite par Anthropic lui-même.
L’extension contient sa propre copie de la CLI et lit le même fichier ~/.claude/settings.json que la version du terminal. Les paramètres de la section précédente s’appliquent également ici – mais avec une mise en garde, qui prête le plus souvent à confusion.
La vérification des entrées a lieu avant le lancement
Avant de démarrer, l’extension vérifie les informations d’identification à partir de son propre paramètre « claudeCode.environmentVariables », et non à partir de settings.json. Les valeurs de settings.json atteignent le processus en cours – c’est-à-dire que l’adresse API et les modèles sélectionnés sont correctement récupérés – mais elles ne réussissent pas la propre vérification de connexion de l’extension. Si vous voyez l’écran de connexion alors que tout fonctionne déjà dans le terminal, c’est la raison.
Cela peut être guéri avec quelques lignes dans les paramètres de VS Code : dupliquez les variables dans `claudeCode.environmentVariables` et désactivez la demande de connexion.
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.deepseek.com/anthropic" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "ваш_ключ_deepseek" },
{ "name": "ANTHROPIC_MODEL", "value": "deepseek-flash[1m]" }
],
"claudeCode.disableLoginPrompt": true
}
nuance macOS
Si vous lancez VS Code depuis le Dock ou le Finder, il n’hérite pas des variables d’environnement de ~/.zshrc. Il s’agit d’un comportement standard de macOS et est spécifiquement abordé dans la documentation Claude Code. Autrement dit, `export ANTHROPIC_BASE_URL=…` dans votre shell pour l’extension ne fonctionnera tout simplement pas – cette variable ne sera pas dans son environnement.
Il y a deux conclusions à en tirer. Premièrement, les paramètres de `claudeCode.environmentVariables` sont plus fiables que les variables shell. Deuxièmement, si vous préférez toujours un shell, lancez l’éditeur depuis le terminal, où les variables sont déjà exportées :
code .
Ce qui ne fonctionnera pas
Sur un fournisseur tiers, certaines fonctionnalités d’extension ne sont pas disponibles car elles nécessitent un compte claude.ai :
– il n’y aura pas de barre d’utilisation du forfait, de saisie vocale et d’onglet Web pour les sessions cloud ;
– les commandes de déconnexion ne sont pas affichées dans le menu ;
– `/usage` affichera la consommation et le nombre de jetons de la session en cours au lieu des limites du plan ;
– La télécommande ne fonctionne pas si l’adresse de base n’est pas anthropique.
Il s’agit d’un comportement attendu et non d’un signe d’échec de l’installation.
Par ailleurs, je voudrais ajouter que JetBrains possède son propre plugin, mais il est conçu différemment : il ne contient pas de CLI intégrée, mais en lance une déjà installée dans le terminal intégré. Il n’y a pas de paramètres pour les variables d’environnement, vous devez donc lancer l’IDE depuis le terminal avec les variables déjà exportées.
Comment DeepSeek comprend les noms de modèles de Claude
Claude Code fait référence en interne aux modèles par des noms comme claude-opus, claude-sonnet et claude-haiku. DeepSeek intercepte ces noms et les remplace par les siens :
– tout ce qui commence par claude-opus va vers deepseek-v4-pro ;
– tout ce qui commence par claude-sonnet ou claude-haiku va vers deepseek-flash ;
– le nom du modèle inconnu est également réduit à deepseek-flash.
Cela signifie que même sans spécifier explicitement les modèles, l’intégration fonctionnera – mais il est préférable de contrôler explicitement quels modèles et à quel tarif répondront à la demande. C’est pourquoi, dans les paramètres, tous les rôles sont écrits manuellement.
À quoi faire attention
La compatibilité est incomplète et vous devez le savoir à l’avance. DeepSeek ignore simplement certaines des capacités de l’API Anthropic :
– Invites de mise en cache. Le champ `cache_control` n’est pas pris en charge. Claude Code utilise activement le cache afin de ne pas payer trop cher pour envoyer le même contexte à plusieurs reprises. Cela n’arrivera pas ici, donc les longues sessions sont plus chères que ce à quoi on pourrait s’attendre du prix par jeton. Commencez périodiquement un nouveau dialogue au lieu de poursuivre sans fin l’ancien.
– Thinking Budget. Le paramètre `thinking` est pris en charge, mais les `budget_tokens` qu’il contient sont ignorés.
– Divers. Les champs `top_k`, `service_tier`, `container` et la connexion des serveurs MCP depuis l’API sont également ignorés.
– MCP. Le mécanisme du serveur MCP intégré côté DeepSeek ne fonctionne pas, bien que les outils habituels de l’agent – lecture de fichiers, édition, exécution de commandes, recherche – fonctionnent normalement.
Séparément, il convient de mentionner les procurations. Il existe des projets dans la communauté comme « ds-cc-proxy », qui sont placés entre Claude Code et DeepSeek et se chargent de lisser les incompatibilités mineures, ainsi que de séparer la session principale et les sous-agents en différents modèles. Si la configuration standard se comporte de manière instable, une telle couche intermédiaire peut aider.
Claude Code Routeur
La méthode décrite ci-dessus met un modèle pour toutes les tâches. Mais l’agent fait des choses très différentes : il comprend la structure du projet, corrige de petites choses et résout parfois un problème vraiment complexe. Il est logique que différents modèles soient utilisés pour différents types de travaux. C’est exactement ce que peut faire le claude-code-router (CCR) : une passerelle locale qui se situe entre Claude Code et les fournisseurs de modèles.
Ça donne quoi
– Routage par règles. Vous pouvez définir quel modèle sert la session principale, lequel sert les tâches en arrière-plan, lequel sert le mode de planification. Il est logique d’utiliser un modèle coûteux uniquement pour des raisonnements complexes et de confier la routine à un modèle bon marché.
– Options de sauvegarde. Si le fournisseur renvoie une erreur, la requête est transmise au modèle suivant dans la chaîne, plutôt que d’abandonner la session.
– Observabilité. L’interface affiche le journal des demandes, les retards, la consommation de jetons et le coût – quelque chose que vous ne pouvez deviner qu’avec une connexion directe.
– Une adresse pour plusieurs agents. Les fournisseurs, les clés et les règles résident au même endroit, et les clients se connectent à une seule adresse locale.
Tout d’abord à propos des versions : c’est important
Cela vaut la peine d’être averti ici car cela vous fera gagner du temps. CCR a été fortement repensé au cours de son histoire, et presque tous les articles que vous trouvez dans une recherche décrivent la version obsolète.
Dans les anciennes versions, la configuration était dans le fichier ~/.claude-code-router/config.json avec les blocs Providers et Router, et tout était lancé avec la commande `ccr code`. Maintenant, cela ne fonctionne plus ainsi. La version actuelle (3.x) stocke les paramètres dans la base de données SQLite et est gérée via une interface Web. L’ancien config.json est lu exactement une fois comme source de migration s’il n’y a pas encore de base de données – après cela, les modifications qui y sont apportées n’affectent rien.
Autrement dit, si vous avez trouvé des instructions sur Internet pour éditer config.json et la commande `ccr code` et que rien n’a fonctionné pour vous, vous éditez un fichier que personne ne lit plus. Ce n’est pas ta faute.
Installation
Vous aurez besoin de Node.js 22 ou version ultérieure.
npm install -g @musistudio/claude-code-router
ccr ui
La commande `ccr ui` fait apparaître le service en arrière-plan et ouvre l’interface de gestion dans le navigateur. Il est utile de connaître les autres commandes : `ccr start` démarre un service, `ccr stop` l’arrête, `ccr serve` fonctionne au premier plan et est pratique lorsque vous avez besoin de voir les journaux.
Par défaut, l’interface de gestion réside sur le port 3458 et la passerelle elle-même pour les modèles réside sur le port 3456.
Paramètres
Tout se fait dans l’interface web, sans édition manuelle des fichiers :
1. Dans la section Fournisseurs, ajoutez le fournisseur DeepSeek et spécifiez sa clé. Remarque : l’adresse complète jusqu’au point de discussion/d’achèvement est nécessaire ici, pas seulement le domaine.
2. Dans la section Modèles, décrivez ce qu’est ce modèle – la description facilite le routage.
3. Dans la section Agent Config, définissez le modèle par défaut.
4. Dans la section Routage, configurez les règles : quel modèle répond à quelles requêtes.
5. Sur la page Clés API, créez une clé client CCR – c’est ce que Claude Code utilisera, pas la clé DeepSeek.
Après cela, il ne reste plus qu’à envoyer Claude Code à la passerelle : préciser l’adresse de la passerelle affichée dans l’interface comme adresse de base, et la clé client CCR comme token.
Une bonne chose : les règles de routage peuvent être écrites non seulement avec des champs, mais également avec un script JavaScript, si la logique est plus complexe que la comparaison d’un champ.
Est-ce que ça vaut la peine de l’utiliser
Connecter DeepSeek à Claude Code est avant tout un moyen de réduire les coûts sans renoncer à un environnement d’agent pratique. Vous obtenez la même interface, les mêmes outils et le même workflow, mais sur un modèle différent. La configuration prend quelques minutes et est totalement réversible : il suffit de supprimer les variables d’environnement pour revenir aux modèles Anthropic.
Les limites sont également claires : il n’y a pas de cache d’invite, une compatibilité incomplète en ce qui concerne les champs de l’API et la qualité du modèle peut différer pour des tâches architecturales complexes. Pour le travail de routine dans le référentiel – navigation, refactoring, exécution de tests – c’est plus que suffisant.
Liens
https://platform.deepseek.com/api_keys
https://api-docs.deepseek.com
https://docs.anthropic.com/en/docs/claude-code
https://github.com/anthropics/claude-code
https://github.com/musistudio/claude-code-router
https://ccrdesk.top/en/guides/cli/
Sources
https://api-docs.deepseek.com/guides/anthropic_api
https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code
https://ccrdesk.top/en/routing/
https://code.claude.com/docs/en/vs-code
Leave a Reply