Claude Code ist ein Konsolenagent von Anthropic, der Projektdateien lesen, Code bearbeiten, Befehle und Tests ausführen, das Repository durchsuchen und mit Git arbeiten kann. Der größte Nachteil bei der Nutzung sind die Kosten: Lange Sitzungen mit viel Kontext verschlingen schnell das Abonnementbudget.
Es gibt eine Lösung. DeepSeek bietet einen Endpunkt, der mit der Anthropic API kompatibel ist. Es reicht aus, die Basisadresse und das Token zu ändern, und Claude Code beginnt mit der Arbeit an DeepSeek-Modellen, ohne dass eine Neuinstallation oder Patches erforderlich sind. In diesem Beitrag beschreibe ich, wie man dies unter macOS, Linux und Windows einrichtet.
Warum ist das nötig?
Die Gründe können unterschiedlich sein:
– Preis. DeepSeek-Modelle sind deutlich günstiger als Claude, und für routinemäßige Agentenaufgaben – Navigieren in einem Projekt, kleinere Änderungen, Ausführen von Tests – ist nicht immer höchste Qualität erforderlich.
– Verfügbarkeit. Wenn Sie kein Abonnement haben oder die Zahlung mit einer Anthropic-Karte aus irgendeinem Grund nicht verfügbar ist, wird DeepSeek zu einer funktionierenden Option.
– Experimente. Es ist interessant zu vergleichen, wie verschiedene Modelle mit derselben Codebasis in derselben Umgebung umgehen.
Was Sie brauchen
Sie müssen Claude Code und den DeepSeek-API-Schlüssel installiert haben. Wenn Claude Code noch nicht installiert ist, ist die Reihenfolge wie folgt:
1. Installieren Sie Node.js 18 oder höher. Unter Windows benötigen Sie zusätzlich Git für Windows.
2. Installieren Sie Claude Code selbst mit dem folgenden Befehl.
3. Überprüfen Sie die Installation.
npm install -g @anthropic-ai/claude-code
claude --version
Wenn die Version angezeigt wird, war die Installation erfolgreich. Der API-Schlüssel wird in Ihrem persönlichen DeepSeek-Konto auf der Schlüsselseite erstellt.
Konfiguration über Umgebungsvariablen
Die gesamte Integration hängt von Umgebungsvariablen ab. Für macOS und Linux sieht es so aus:
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
Für Windows in PowerShell ist die Syntax anders, aber die Variablennamen sind gleich:
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="ваш_ключ_deepseek"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"
Lassen Sie uns herausfinden, was hier ist. Die Variable „ANTHROPIC_BASE_URL“ leitet Anfragen von Anthropic-Servern an DeepSeek weiter. „ANTHROPIC_AUTH_TOKEN“ ersetzt Ihren Schlüssel. Die übrigen Variablen bestimmen, welches Modell in welcher Rolle verwendet wird. Es gibt Modelle mit dem Suffix „[1m]“ – hierbei handelt es sich um eine Option mit einem Kontextfenster von etwa einer Million Token, die es dem Agenten ermöglicht, deutlich mehr Projektdateien gleichzeitig zu halten. Dementsprechend wird „CLAUDE_CODE_AUTO_COMPACT_WINDOW“ auf die Größe dieses Fensters eingestellt, damit die automatische Verlaufskomprimierung nicht zu früh funktioniert.
Es ist praktisch, Variablen nicht jedes Mal manuell zu exportieren, sondern sie in der Claude Code-Konfiguration zu registrieren. Dann werden die Einstellungen beim Start automatisch übernommen.
{
"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"
}
}
Gehen Sie danach in das Projektverzeichnis und führen Sie den Agenten aus:
cd ваш_проект
claude
Claude-Code im VS-Code
Claude Code ist nicht nur im Terminal verfügbar, sondern auch als Erweiterung für VS Code. Die Installation erfolgt wie gewohnt: Öffnen Sie das Erweiterungsfenster mit Befehl+Umschalt+X, suchen Sie nach „Claude Code“ und klicken Sie auf „Installieren“. Die Erweiterung wird von Anthropic selbst produziert.
Die Erweiterung enthält eine eigene Kopie der CLI und liest dieselbe ~/.claude/settings.json-Datei wie die Terminalversion. Auch hier gelten die Einstellungen aus dem vorherigen Abschnitt – jedoch mit einer Einschränkung, die meist für Verwirrung sorgt.
Die Eingabeüberprüfung erfolgt vor dem Start
Vor dem Start überprüft die Erweiterung die Anmeldeinformationen anhand ihrer eigenen Einstellung „claudeCode.environmentVariables“ und nicht anhand von „settings.json“. Die Werte aus der Datei „settings.json“ erreichen den laufenden Prozess – das heißt, die API-Adresse und die ausgewählten Modelle werden korrekt abgeholt –, bestehen jedoch nicht die eigene Anmeldeprüfung der Erweiterung. Wenn Sie den Anmeldebildschirm sehen, obwohl im Terminal bereits alles funktioniert, ist dies der Grund.
Dies kann mit ein paar Zeilen in den VS-Code-Einstellungen behoben werden: Duplizieren Sie die Variablen in „claudeCode.environmentVariables“ und deaktivieren Sie die Anmeldeanforderung.
{
"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
}
MacOS-Nuance
Wenn Sie VS Code über das Dock oder den Finder starten, erbt es keine Umgebungsvariablen von ~/.zshrc. Dies ist das Standardverhalten von macOS und wird speziell in der Claude Code-Dokumentation erläutert. Das heißt, „export ANTHROPIC_BASE_URL=…“ in Ihrer Shell für die Erweiterung funktioniert einfach nicht – diese Variable befindet sich nicht in ihrer Umgebung.
Daraus lassen sich zwei Schlussfolgerungen ziehen. Erstens sind die Einstellungen in „claudeCode.environmentVariables“ zuverlässiger als Shell-Variablen. Zweitens, wenn Sie immer noch eine Shell bevorzugen, starten Sie den Editor vom Terminal aus, wo die Variablen bereits exportiert sind:
code .
Was nicht funktionieren wird
Bei einem Drittanbieter sind einige Erweiterungsfunktionen nicht verfügbar, da sie ein claude.ai-Konto erfordern:
– Für Cloud-Sitzungen gibt es keine Plannutzungsleiste, keine Spracheingabe und keine Web-Registerkarte.
– Abmeldebefehle werden im Menü nicht angezeigt;
– „/usage“ zeigt den Verbrauch und die Anzahl der Token der aktuellen Sitzung anstelle der Planlimits an;
– Remote Control funktioniert nicht, wenn die Basisadresse nicht Anthropic ist.
Dies ist ein erwartetes Verhalten und kein Zeichen dafür, dass die Einrichtung fehlgeschlagen ist.
Unabhängig davon möchte ich hinzufügen, dass JetBrains über ein eigenes Plugin verfügt, das jedoch anders gestaltet ist: Es enthält keine integrierte CLI, sondern startet eine bereits im integrierten Terminal installierte. Es gibt keine Einstellungen für Umgebungsvariablen, daher sollten Sie die IDE vom Terminal aus mit bereits exportierten Variablen starten.
Wie DeepSeek Claude-Modellnamen versteht
Claude Code bezeichnet Modelle intern mit Namen wie claude-opus, claude-sonnet und claude-haiku. DeepSeek fängt diese Namen ab und ersetzt sie durch seine eigenen:
– alles, was mit claude-opus beginnt, geht an deepseek-v4-pro;
– alles, was mit claude-sonnet oder claude-haiku beginnt, geht zu deepseek-flash;
– Der unbekannte Modellname wird ebenfalls auf deepseek-flash reduziert.
Dies bedeutet, dass die Integration auch ohne explizite Angabe der Modelle funktioniert – es ist jedoch besser, explizit zu steuern, welche Modelle und zu welchem Tarif die Anfrage bedient werden. Deshalb werden in den Einstellungen oben alle Rollen manuell geschrieben.
Worauf Sie achten sollten
Die Kompatibilität ist unvollständig, und Sie sollten dies im Voraus wissen. DeepSeek ignoriert einfach einige der Funktionen der Anthropic API:
– Caching-Eingabeaufforderungen. Das Feld „cache_control“ wird nicht unterstützt. Claude Code nutzt den Cache aktiv, um nicht zu viel für das wiederholte Senden desselben Kontexts zu bezahlen. Dies wird hier nicht passieren, daher sind lange Sitzungen teurer, als man es vom Preis pro Token erwarten würde. Beginnen Sie regelmäßig einen neuen Dialog, anstatt den alten endlos fortzusetzen.
– Thinking Budget. Der Parameter „thinking“ wird unterstützt, aber die darin enthaltenen „budget_tokens“ werden ignoriert.
– Verschiedenes. Die Felder „top_k“, „service_tier“, „container“ und die Verbindung von MCP-Servern über die API werden ebenfalls ignoriert.
– MCP. Der integrierte MCP-Servermechanismus auf der DeepSeek-Seite funktioniert nicht, obwohl die üblichen Tools des Agenten – Dateien lesen, bearbeiten, Befehle ausführen, Suchen – normal funktionieren.
Unabhängig davon sind Proxys zu erwähnen. In der Community gibt es Projekte wie „ds-cc-proxy“, die zwischen Claude Code und DeepSeek angesiedelt sind und die Aufgabe übernehmen, kleinere Inkompatibilitäten auszugleichen sowie Hauptsitzung und Subagenten in verschiedene Modelle zu trennen. Wenn sich das Standard-Setup instabil verhält, kann eine solche Zwischenschicht Abhilfe schaffen.
Claude Code Router
Die oben beschriebene Methode stellt ein Modell für alle Aufgaben bereit. Aber der Agent macht ganz andere Dinge: Er versteht die Struktur des Projekts, korrigiert Kleinigkeiten und löst manchmal ein wirklich komplexes Problem. Es ist logisch, dass für unterschiedliche Arten von Arbeiten unterschiedliche Modelle verwendet werden sollten. Genau das kann der Claude-Code-Router (CCR) – ein lokales Gateway, das zwischen Claude Code und Modellanbietern steht.
Was gibt es
– Routing nach Regeln. Sie können festlegen, welches Modell die Hauptsitzung bedient, welches Hintergrundaufgaben bedient und welches den Planungsmodus bedient. Es ist sinnvoll, nur für komplexe Überlegungen ein teures Modell zu verwenden und die Routine einem billigen Modell zu überlassen.
– Sicherungsoptionen. Wenn der Anbieter einen Fehler zurückgibt, geht die Anfrage an das nächste Modell in der Kette, anstatt die Sitzung abzubrechen.
– Beobachtbarkeit. Die Schnittstelle zeigt das Anforderungsprotokoll, Verzögerungen, Token-Verbrauch und Kosten an – etwas, das Sie bei einer direkten Verbindung nur erraten können.
– Eine Adresse für mehrere Agenten. Anbieter, Schlüssel und Regeln befinden sich an einem Ort und Clients stellen eine Verbindung zu einer lokalen Adresse her.
Zuerst zu den Versionen – das ist wichtig
Hier lohnt es sich zu warnen, denn das spart Ihnen Zeit. CCR wurde im Laufe seiner Geschichte stark überarbeitet und fast alle Artikel, die Sie bei einer Suche finden, beschreiben die veraltete Version.
In älteren Versionen befand sich die Konfiguration in der Datei ~/.claude-code-router/config.json mit den Blöcken Providers und Router, und alles wurde mit dem Befehl „ccr code“ gestartet. Jetzt funktioniert es nicht mehr so. Die aktuelle Version (3.x) speichert Einstellungen in der SQLite-Datenbank und wird über eine Weboberfläche verwaltet. Die alte config.json wird genau einmal als Quelle für die Migration gelesen, wenn noch keine Datenbank vorhanden ist – danach haben Änderungen daran keine Auswirkungen mehr.
Das heißt, wenn Sie im Internet Anweisungen zum Bearbeiten von config.json und dem Befehl „ccr code“ gefunden haben und bei Ihnen nichts funktioniert hat, bearbeiten Sie eine Datei, die niemand mehr liest. Es ist nicht deine Schuld.
Installation
Sie benötigen Node.js 22 oder höher.
npm install -g @musistudio/claude-code-router
ccr ui
Der Befehl „ccr ui“ ruft den Dienst im Hintergrund auf und öffnet die Verwaltungsoberfläche im Browser. Es ist nützlich, die anderen Befehle zu kennen: „ccr start“ startet einen Dienst, „ccr stop“ stoppt ihn, „ccr servo“ arbeitet im Vordergrund und ist praktisch, wenn Sie Protokolle sehen müssen.
Standardmäßig befindet sich die Verwaltungsschnittstelle auf Port 3458 und das Gateway selbst für Modelle auf Port 3456.
Einstellungen
Alles wird über die Weboberfläche erledigt, ohne dass Dateien manuell bearbeitet werden müssen:
1. Fügen Sie im Abschnitt „Anbieter“ den DeepSeek-Anbieter hinzu und geben Sie seinen Schlüssel an. Bitte beachten Sie: Hier wird die vollständige Adresse bis zum Chat-/Abschlusspunkt benötigt, nicht nur die Domain.
2. Beschreiben Sie im Abschnitt „Modelle“, um welches Modell es sich handelt – die Beschreibung hilft beim Routing.
3. Legen Sie im Abschnitt „Agent-Konfiguration“ das Standardmodell fest.
4. Konfigurieren Sie im Abschnitt „Routing“ die Regeln: welches Modell auf welche Anfragen antwortet.
5. Erstellen Sie auf der Seite „API-Schlüssel“ einen CCR-Client-Schlüssel – diesen wird Claude Code verwenden, nicht den DeepSeek-Schlüssel.
Danach müssen Sie nur noch Claude Code an das Gateway senden: Geben Sie die in der Schnittstelle angezeigte Gateway-Adresse als Basisadresse und den CCR-Client-Schlüssel als Token an.
Eine schöne Sache: Routing-Regeln können nicht nur mit Feldern geschrieben werden, sondern auch mit einem JavaScript-Skript, wenn die Logik komplexer ist als der Vergleich eines Feldes.
Lohnt es sich, es zu verwenden?
Die Verbindung von DeepSeek mit Claude Code ist in erster Linie eine Möglichkeit, Kosten zu senken, ohne auf eine komfortable Agentenumgebung zu verzichten. Sie erhalten dieselbe Benutzeroberfläche, dieselben Tools und denselben Workflow, jedoch auf einem anderen Modell. Die Einrichtung dauert einige Minuten und ist vollständig umkehrbar: Entfernen Sie einfach die Umgebungsvariablen, um zu den Anthropic-Modellen zurückzukehren.
Auch die Einschränkungen liegen auf der Hand: Es gibt keinen Prompt-Cache, unvollständige Kompatibilität bezüglich API-Feldern und die Qualität des Modells kann bei komplexen Architekturaufgaben unterschiedlich sein. Für Routinearbeiten im Repository – Navigation, Refactoring, Ausführen von Tests – ist das mehr als ausreichend.
Links
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/
Quellen
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