Zurück zu den Leitfäden
Integration·26. Juli 2026·Aktualisiert am 3. Oktober 2026·12 Min. Lesezeit

Claude Code Router – Claude Code zu jedem Modell routen oder den Router vollständig überspringen

Die meisten, die nach claude-code-router greifen, möchten Claude Code lediglich günstiger betreiben – dafür genügt ein Wechsel der Basis-URL, keine Installation. Hier erfahren Sie, wann der Router seinen Platz verdient, wie er konfiguriert wird, nachdem config.json keine Wirkung mehr hat, und was ein Gateway nachweislich beeinträchtigt.

Zuletzt überprüft am .

Die meisten Menschen, die nach Claude Code Router suchen, möchten eines von zwei verschiedenen Dingen: Claude Code über mehrere Modellanbieter routen oder Claude Code einfach günstiger als zum Listenpreis von Anthropic ausführen. Nur für das erste benötigen Sie den Router. Claude Code liest ANTHROPIC_BASE_URL nativ, daher reichen für das zweite drei Umgebungsvariablen und überhaupt keine zusätzliche Software.

Diese Anleitung behandelt beide Wege, mit den exakten Variablennamen, der Falle bei den Zugangsdaten, die einen stillen 401 erzeugt, und einer ehrlichen Liste dessen, was hinter jedem Gateway nicht mehr funktioniert. Wenn Sie kürzlich eine andere CCR-Anleitung gelesen haben, springen Sie zuerst zu Option B: Die config.json, die diese Artikel bearbeiten lassen, ist nicht mehr die Konfiguration, die der Router liest.

Welche Variante benötigen Sie tatsächlich?

Was Sie möchtenVerwenden Sie
Claude in Claude Code günstiger ausführenAustausch der Basis-URL — keine Installation
Ein anderes Modell pro Aufgabe (Planung / Code / Hintergrund)Beides — ANTHROPIC_DEFAULT_*-Variablen oder der Router
Mehrere Anbieter hinter einem einzigen Claude Code kombinierenclaude-code-router
Claude Code mit Nicht-Claude-Modellen steuernclaude-code-router
Pro-Anfrage-Protokolle: Anbieter, Modell, Latenz, Token, Kostenclaude-code-router
Subagents an ein anderes Modell als die Hauptschleife sendenclaude-code-router — die Tarifvariablen können dies nicht aufteilen

Der Router ist ein lokaler Dienst: ein weiterer Prozess, den Sie ausführen, konfigurieren und aktuell halten müssen — und seit 2026 eine Desktop-App mit eigener Oberfläche statt einer Datei, die Sie bearbeiten. Dieser Aufwand lohnt sich, wenn Sie tatsächlich Routing über mehrere Anbieter, Abrechnung pro Anfrage oder eine Modellauswahl auf Subagent-Ebene benötigen. Er lohnt sich nicht, wenn eine Basis-URL ausgereicht hätte.

Option A — der Austausch der Basis-URL (keine Installation)

Kunavo stellt die native Anthropic Messages API unter /v1/messages bereit, dem Endpunkt, den Claude Code aufruft. Verweisen Sie darauf:

~/.zshrc
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...              # create at kunavo.com/app/keys
export ANTHROPIC_MODEL=claude-sonnet-5             # exact slug — see the table below
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5     # the opus alias and plan mode (v2.1.280+)
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5   # the sonnet alias; Sonnet 5.5 is not on Kunavo
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5   # background tasks

ANTHROPIC_BASE_URL ist nur der Ursprung – Claude Code hängt /v1/messages selbst an; geben Sie keinen Pfad an. Behalten Sie die Modellzeilen bei: Der integrierte Standard von Claude Code und sein Alias opus verweisen beide auf das neueste Opus. Wenn Kunavo dieses Modell noch nicht anbietet, liefert die erste Anfrage 404 zurück. Der Alias sonnet fordert Sonnet 5.5 an, das Kunavo nicht anbietet. Ohne die Zeile ANTHROPIC_DEFAULT_SONNET_MODEL /model sonnet, die Ausführungsphase von opusplan und jeden Subagenten mit model: sonnet liefern alle Anfragen 404 zurück. Der Alias opus ist auf Opus 5.5 (claude-opus-5-5) festgelegt; dafür ist Claude Code v2.1.280 oder höher erforderlich – führen Sie claude update aus, wenn Ihre Version älter ist. Rufen Sie den Schlüssel nach der Registrierung und dem Aufladen von 10 $ im Dashboard ab; er wird nur einmal angezeigt.

Welche Zugangsdatenvariable — und warum sie wichtig ist

Claude Code sendet die beiden Zugangsdatenvariablen in unterschiedlichen HTTP-Headern, und ein Schlüssel in dem Header, den der Server nicht liest, schlägt mit 401 fehl:

VariableGesendeter HeaderAuf Kunavo
ANTHROPIC_AUTH_TOKENAuthorization: BearerEmpfohlen — funktioniert überall
ANTHROPIC_API_KEYx-api-keyFunktioniert für Chat und Modellerkennung nach einer einmaligen Genehmigung

Bevorzugen Sie ANTHROPIC_AUTH_TOKEN aus einem konkreten Grund: ANTHROPIC_API_KEY benötigt eine einmalige Genehmigung in einer interaktiven Sitzung, und ein Schlüssel, den Sie einmal abgelehnt haben, wird danach ohne erneute Nachfrage ignoriert — ein verwirrender Fehler, bei dem die Variable eindeutig gesetzt und ebenso eindeutig ungenutzt ist. Die Modellerkennung entscheidet dies bei Kunavo nicht. Die Gateway-Modellerkennung von Claude Code sendet nur das Bearer-Token, wenn ANTHROPIC_AUTH_TOKEN gesetzt ist, und verwendet andernfalls x-api-key; der /v1/models-Endpunkt von Kunavo liest den Schlüssel aus beiden Headern.

Dauerhaft übernehmen

Shell-Exporte gelten nur für dieses Terminal und alles, was daraus gestartet wird — ein über das Dock geöffneter Editor sieht sie nicht, ebenso wenig Hintergrund-Agents. Legen Sie die Werte in einer Einstellungsdatei ab, um alles abzudecken:

~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.kunavo.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-kn-...",
    "ANTHROPIC_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}

Verwenden Sie ~/.claude/settings.json für alle Projekte. Legen Sie niemals einen Schlüssel in die .claude/settings.json eines Projekts — diese Datei wird in das Repository übernommen.

Überprüfen Sie es, bevor Sie darauf vertrauen

Testen Sie zuerst den Endpunkt direkt, damit ein Fehler auf die Konfiguration und nicht auf Claude Code verweist:

verify.sh
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'

# A response starting with {"id":"msg_ means the URL and key both work.
# 401 -> the key is in the wrong header; see "Which credential variable" below.

Starten Sie anschließend claude aus derselben Shell und führen Sie /status aus. Eine Zeile Anthropic base URL, die api.kunavo.com anzeigt, und eine Zeile Auth token, die Ihre Variable nennt, bestätigen, dass beide Hälften aktiv sind.

Ein benutzerdefiniertes Modell festlegen — den Slug ausdrücklich auswählen

Kunavo löst Modell-Slugs durch exakte Übereinstimmung auf und verwendet keine Aliase für Namen mit Datumszusatz, daher liefert claude-sonnet-4-5-20250929 den Status 404, während claude-sonnet-5 erfolgreich ist. Setzen Sie immer ANTHROPIC_MODEL, statt sich auf den integrierten Standard zu verlassen:

RolleSlugEingabe / Ausgabe pro 1 Mio.
Alltägliche Programmierung (Standard)claude-sonnet-5$1.40 / $7.00
Vorherige Generationclaude-sonnet-4-6$2.10 / $10.50
Schwierigste Refactorings, Planmodusclaude-opus-5-5$2.80 / $14.00
Hintergrundaufgaben, schnelle Anfragenclaude-haiku-4-5$0.70 / $3.50

Die Alias-Variablen ermöglichen Routing pro Aufgabe ganz ohne Router: ANTHROPIC_DEFAULT_OPUS_MODEL unterstützt den Alias opus und den Planmodus, ANTHROPIC_DEFAULT_SONNET_MODEL unterstützt sonnet und die Ausführungsphase von opusplan, und ANTHROPIC_DEFAULT_HAIKU_MODEL unterstützt haiku sowie die Hintergrundarbeit von Claude Code – die Zusammenfassungen und Titel, die unauffällig Kosten verursachen. Diese Variable auf claude-haiku-4-5 zu setzen, ist die einzelne wertvollste Konfigurationszeile. (ANTHROPIC_SMALL_FAST_MODEL ist die veraltete Schreibweise derselben Einstellung.)

Optional: jedes Modell in der Auswahl anzeigen

Setzen Sie CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 (Claude Code v2.1.129+), und Claude Code fragt beim Start GET /v1/models ab und fügt die gefundenen Modelle der /model-Auswahl mit der Kennzeichnung From gateway hinzu. Kunavo stellt diesen Endpunkt bereit, sodass jedes aktivierte Claude-Modell angezeigt wird und /model zu einem Live-Menü statt zu einer von Hand gepflegten Liste wird. Dafür funktioniert jede der beiden Zugangsdatenvariablen — siehe oben.

Option B — claude-code-router, wie es jetzt tatsächlich funktioniert

Beginnen Sie hier, denn fast alles, was über CCR geschrieben wurde, beschreibt eine Version, die es nicht mehr gibt. Der Router bestand früher aus einer JSON-Datei und dem Befehl ccr code. Heute ist er eine lokale Steuerungsebene mit Desktop-App, Verwaltungsoberfläche, Anfrageprotokollen und einem Modell-Gateway — und die config.json, die jede Anleitung zeigt, konfiguriert ihn nicht mehr.

CCR speichert seine Laufzeitkonfiguration in ~/.claude-code-router/config.sqlite (%APPDATA%\claude-code-router\config.sqlite unter Windows). Eine veraltete config.json wird einmal als Migrationsquelle gelesen, wenn noch keine SQLite-Konfiguration vorhanden ist. Nach diesem ersten Lauf wirkt sich das Bearbeiten nicht auf die laufende Konfiguration aus — ohne Fehler und ohne Warnung. Ihr sorgfältig eingefügter Providers-Block ist schlicht nicht die Konfiguration.

Das umfasst diese Seite vor dem 06.09.2026: Das JSON-Snippet, das hier früher stand, war falsch – und zwar auf eine Art, die einen ganzen Nachmittag kostet, weil nichts darauf hinweist, dass es ignoriert wurde. Die Konfiguration erfolgt jetzt in der Benutzeroberfläche (oder als Sicherung unter Einstellungen → Daten exportieren – kopieren Sie keine Live-SQLite-Dateien, während CCR läuft).

Installieren und starten

CCR wird auf zwei Wegen bereitgestellt: als Desktop-App aus den GitHub-Releases (Tray, automatische Updates, Desktop-Integrationen) und als npm-CLI für Headless- oder überwachte Bereitstellungen. Beide verwenden dasselbe Konfigurationsverzeichnis.

installieren und starten
# CCR ships as a desktop app (GitHub Releases) or an npm CLI. Both read the
# same ~/.claude-code-router directory. The CLI needs Node.js 22+.
npm install -g @musistudio/claude-code-router
ccr ui        # management UI on :3458, model gateway on :3456

# Configure the provider and an Agent Config profile in that UI, then launch
# Claude Code through the profile by name:
ccr "Claude Code - Kunavo"        # npm CLI
ccr-app "Claude Code - Kunavo"    # the desktop app's own launcher

# There is no 'ccr code' in the current command reference. The service commands
# are start / ui / stop / serve / web; everything else is a profile name.

Kunavo hinzuzufügen bedeutet einen Provider-Eintrag – Providers → Add provider, Voreinstellung Other / custom API endpoint, Endpunkt https://api.kunavo.com, Ihren sk-kn--Schlüssel – und ein Agent Config → Add profile → Claude Code-Profil. Die Version mit allen einzelnen Feldern, einschließlich Check Connection und der Modellerkennung, finden Sie auf der Claude Code Router-Integrationsseite. Der Rest dieses Abschnitts behandelt, was diese Seite nicht abdeckt: Zugangsdaten, Kosten und Fehlerbilder.

Drei Zugangsdaten – und welche davon für einen 401-Fehler verantwortlich ist

So wirkt eine funktionierende Einrichtung am häufigsten fehlerhaft. CCR verfügt über drei separate Geheimnisse, die jeweils einen anderen Hop authentifizieren:

ZugangsdatenAuthentifiziertWohin es geht
Ihr Kunavo-Schlüssel (sk-kn-…)CCR → KunavoProviders → das API-Schlüsselfeld des Providers
Ein CCR-ClientschlüsselBeliebiger Client → das CCR-GatewayAuf der Seite API Keys erstellt; ohne ihn weist das Gateway Modellanfragen zurück
Das Verwaltungstoken (ccr_web_token)Sie → die CCR-Benutzeroberfläche und RPCWird in der URL von ccr ui ausgegeben – behandeln Sie es wie ein Passwort

Auch die Zuordnung der Ports führt häufig zu Verwirrung: Die Verwaltung verwendet standardmäßig 127.0.0.1:3458 und das Modell-Gateway 127.0.0.1:3456. Eine auf 3458 gerichtete Basis-URL erreicht die Benutzeroberfläche, nicht das Gateway. (Docker führt beide absichtlich hinter einem einzigen Nginx-Endpunkt zusammen, weshalb die Docker-Anweisungen anders aussehen.) Eine erreichbare Benutzeroberfläche bedeutet nicht, dass das Gateway funktioniert: Prüfen Sie /health unter der Gateway-Adresse und bestätigen Sie, dass Server Running anzeigt.

Auf die Zuordnung pro Tier kommt es an

Claude Code fragt nicht nach einem Modell, sondern nach einem Stufe – die Hauptschleife benötigt Sonnet oder Opus, während Hintergrundaufgaben (Subagenten, Suche, Zusammenfassungen, Unterhaltungstitel) das kleine, schnelle Modell verwenden. Ein Claude-Code-Profil in Agent Config stellt dafür separate Felder bereit: ein standardmäßiges Model sowie optionale Überschreibungen für Fable, Opus, Sonnet und Haiku, die jeweils einen Provider/model-Wert akzeptieren. Lassen Sie ein Tier leer, wählt Claude Code es selbst aus.

StufeOrdnen Sie es zuEingabe / Ausgabe pro 1 Mio.Was dort tatsächlich ausgeführt wird
OpusKunavo/claude-opus-5-5/ $14.00Planmodus, umfangreiche Refactorings
Sonnet (Standard)Kunavo/claude-sonnet-5$1.40 / $7.00Die Haupt-Agentenschleife – der größte Teil Ihrer Tokens
Sonnet, vorherige GenerationKunavo/claude-sonnet-4-6$2.10 / $10.50Dieselbe Schleife, 50% teurer als Sonnet 5
HaikuKunavo/claude-haiku-4-5$0.70 / $3.50Subagenten, Dateisichtung, Titel, Zusammenfassungen

Lesen Sie diese Tabelle, bevor Sie die Modellzuordnung einer anderen Person kopieren, denn die naheliegende Aufteilung ist der erste Hebel: claude-sonnet-5 kostet auf Kunavo 50 % weniger als claude-opus-5-5 ($1.40 / $7.00 gegenüber $2.80 / ). Der zweite Hebel ist die Haiku-Stufe: Mit $0.70 / $3.50 ist sie 2× günstiger als Sonnet 5 und verarbeitet ein Volumen, das Sie nie sehen – jeder Subagent, jeder Durchlauf zur Dateisortierung, jeder generierte Titel. claude-sonnet-4-6 ist nicht mehr das günstige Sonnet: Mit $2.10 / $10.50 kostet es 50 % mehr als Sonnet 5. Deshalb setzen die obigen Snippets ANTHROPIC_MODEL=claude-sonnet-5.

Subagenten-Routing – was die Tier-Zuordnung nicht leisten kann

Tier-Überschreibungen legen alle Subagenten auf ein Modell fest. CCR kann feiner unterscheiden: Wenn eine Claude-Code-Anfrage der integrierten Route entspricht, fügt es die Liste der verfügbaren Modelle in die Agent-/Task-Toolbeschreibung ein, und Claude Code stellt dem Prompt jedes gestarteten Agenten ein Tag voran, das das gewünschte Modell benennt:

<CCR-SUBAGENT-MODEL>provider/model</CCR-SUBAGENT-MODEL>

CCR entfernt das Tag und leitet diese eine Anfrage entsprechend weiter. So kann ein Such-Subagent auf Haiku laufen, während ein Review-Subagent Opus verwendet – je nach Aufgabe ausgewählt statt fest zugeordnet. Die Umschaltung wird leicht übersehen: Der Mechanismus ist deaktiviert, bis mindestens ein Modell auf der Models-Seite eine Description besitzt. Ohne Beschreibungen fügt CCR nichts ein, und jeder Subagent fällt still auf den Profilstandard zurück. Formulieren Sie die Beschreibungen nach der Eignung für die Aufgabe – „Codesuche, Dateisichtung, günstige parallele Subagenten“ für Haiku, „Architekturanalyse, Überprüfung mit hohem Risiko“ für Opus. Wenn es funktioniert, zeigen die Anfrageprotokolle builtin:claude-code-subagent als Routenbegründung.

Protokollauswahl und ihre Cache-Kosten

CCR prüft den Endpunkt und wählt ein Wire-Protokoll. Geben Sie den reinen Ursprung https://api.kunavo.com an, verwendet es Anthropic Messages; geben Sie https://api.kunavo.com/v1 an, verwendet es das OpenAI-kompatible Format. Beide Oberflächen sind mit demselben Schlüssel aktiv, und Sie können die automatische Erkennung in den erweiterten Einstellungen überschreiben.

Bevorzugen Sie die Anthropic-Messages-Form. Sie behält cache_control im Wire-Format bei, sodass Prompt-Caching das Modell erreicht und gecachter Input mit 10 % des Input-Tarifs berechnet wird (so funktioniert es) – bei einer Agentenschleife, die in jedem Schritt ein stabiles Präfix erneut sendet, ist dies die größte einzelne verfügbare Einsparung. Der ehrliche Vorbehalt: Ein Router im Pfad bearbeitet weiterhin Anfragen. CCR entfernt die Billing-Header-Systemnachricht, die Claude Code einfügt, und fügt bei aktiviertem Subagenten-Routing die Modellliste in Toolbeschreibungen ein. Beides liegt vor Ihren Cache-Grenzen, sodass jede Änderung an diesen Inhalten einen Cache-Miss verursacht, während das neue Präfix aufgewärmt wird. Danach bleibt es stabil – dennoch ist dies ein echter Grund dafür, dass Option A geringfügig besser cached als Option B, zusätzlich dazu, dass sie weniger Betriebsaufwand verursacht.

Fallback: Wiederholung oder Ausweichmodell

Die Option Default on failure auf der Routing-Seite sollten Sie festlegen, bevor Sie sie benötigen. Retry sendet die Anfrage bei 408, 409, 429 und 5xx erneut an dasselbe Modell, berücksichtigt Retry-After und verwendet ansonsten ein exponentielles Backoff von 1 s bis zu einem Limit von 30 s. Fallback targets durchläuft eine geordnete Liste von Ersatzmodellen und wird bei jedem 4xx oder 5xx ausgelöst – unter der Annahme, dass „Modell nicht gefunden“ oder eine Provider-Zurückweisung nur das aktuelle Ziel betreffen kann. Einzelne Regeln können die globale Einstellung überschreiben. Bei einem Fallback enthält die Antwort x-ccr-fallback-attempts und x-ccr-fallback-model, sodass Sie nachträglich erkennen können, was passiert ist.

Überprüfen, ob es tatsächlich im Pfad liegt

Starten Sie Claude Code über das Profil, senden Sie eine Nachricht und öffnen Sie anschließend Request logs in CCR. Die Zeile zeigt request model (wonach Claude Code gefragt hat), resolved provider und resolved model (wohin die Anfrage ging) – dieses Dreifache ist der Beweis. In der CLI listet /model die Modelle auf, die CCR bereitstellt. Wenn Claude Code antwortet, aber keine Protokollzeile erscheint, haben Sie Claude Code selbst statt über CCR gestartet, und der Geltungsbereich des Profils ist Only opened from CCR.

Was eine Coding-Sitzung kostet

Claude Code sendet System-Prompt, Unterhaltung und neuen Dateikontext bei jedem Schritt erneut, sodass sich der Preis pro Token schnell summiert. Zu den Kunavo-Tarifen für claude-sonnet-5:

EinheitTokens (Ein- / Ausgabe)KunavoAnthropic-Listenpreis
Ein agentischer Schritt25,000 / 1,200$0.043$0.062
Eine Aufgabe mit 20 Schritten~500k / ~24k~$0.87~$1.24
Ein intensiver Tag (5 Aufgaben)—~$4.34~$6.20

Das sind vor Prompt-Caching ungefähr 30% Rabatt auf das Hauptmodell. Die vollständigen Tarife finden Sie im Claude-API-Preisleitfaden, und der Kostenrechner verwendet Ihre eigenen Tokenzahlen.

Was weiterhin funktioniert – und was nicht

Wenn Sie Claude Code auf ein beliebiges Gateway richten, ändert sich einiges. Die Liste ist kurz und Sie sollten sie kennen, bevor Sie sich festlegen:

FunktionHinter einem Gateway
Coding, Tools, Subagenten, MCP, HooksNicht betroffen
Prompt-CachingFunktioniert – native Messages-API-Route
Ihr claude.ai-AbonnementWird nicht verwendet; stattdessen erfolgt die Abrechnung pro Token über den Schlüssel
Remote ControlNicht verfügbar – benötigt eine claude.ai-Identität
SpracheingabeNicht verfügbar – aus demselben Grund
/context-TokenzahlenLokal geschätzt (siehe unten)

Bei der letzten Zeile: Die Tokenzählung ist der einzige Endpunkt, den Anthropics eigene Gateway-Spezifikation als optional kennzeichnet, und Claude Code schätzt die Kontextnutzung lokal, wenn er fehlt. Kunavo stellt /v1/messages/count_tokens derzeit nicht bereit, daher ist Ihr /context-Wert eine Schätzung und keine exakte Zählung. Über diesen Wert hinaus wird nichts beeinträchtigt – automatische Kompaktierung und die Sitzung selbst bleiben unverändert.

Fehlerbehebung

Der Pfad der Basis-URL

SymptomUrsache und Lösung
401 bei jeder AnfrageDer Schlüssel steht im Header, den der Server nicht liest. Wechseln Sie zwischen ANTHROPIC_AUTH_TOKEN und ANTHROPIC_API_KEY und wiederholen Sie den obigen curl-Aufruf.
Claude Code fordert Sie auf, sich anzumelden, aber curl funktioniertEine erreichbare Basis-URL ist keine Zugangsdaten. Setzen Sie ANTHROPIC_AUTH_TOKEN an einer Stelle, die vor der Ersteinrichtung gelesen wird: als Shell-Export oder in ~/.claude/settings.json.
ANTHROPIC_API_KEY gesetzt, aber ignoriert, keine AbfrageDie einmalige Genehmigung wurde zuvor abgelehnt. Aktivieren Sie sie unter /config → Use custom API key oder wechseln Sie zu ANTHROPIC_AUTH_TOKEN.
404 benennt das ModellExakte Slug-Zuordnung – entfernen Sie jeden Datumssuffix und verwenden Sie einen Slug aus der obigen Tabelle.
400 benennt thinking oder adaptiveClaude Code fordert bei Modellen ab 4.6 adaptives Reasoning an. Bei Opus 4.6 und Sonnet 4.6 umgeht CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 dieses Verhalten.
/fast meldet, dass der Schnellmodus deaktiviert istDie Verfügbarkeitsprüfung ruft api.anthropic.com direkt auf und folgt Ihrer Basis-URL nicht. Setzen Sie CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1.
Modelle fehlen in der AuswahllisteAktivieren Sie CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 oder benennen Sie sie über die Variablen ANTHROPIC_DEFAULT_*_MODEL.

…und wenn der Router im Pfad liegt

SymptomUrsache und Lösung
Änderungen an config.json bewirken nichtsDas können sie nicht. Die Laufzeitkonfiguration befindet sich in config.sqlite; die JSON-Datei dient als einmalige Migrationsquelle. Nehmen Sie die Änderung in der Benutzeroberfläche vor.
ccr code nicht gefundenNicht im aktuellen Befehlssatz. Starten Sie ein Profil nach Namen: ccr "My Profile" oder ccr-app "My Profile" über die Desktop-App.
ccr nach der Installation nicht gefundenDas globale Bin-Verzeichnis von npm ist nicht in PATH enthalten oder Node ist älter als 22. Prüfen Sie npm prefix -g und node --version.
Die Benutzeroberfläche wird geladen, aber Modellanfragen schlagen fehlVerwaltung und Gateway sind unterschiedliche Dienste auf unterschiedlichen Ports. Bestätigen Sie, dass Server Running anzeigt, und richten Sie Clients auf :3456 statt auf :3458.
Das Gateway gibt 401 zurück, obwohl der Provider funktioniertKein CCR-Clientschlüssel vorhanden. Erstellen Sie einen auf der Seite API Keys – er ist eine separate Zugangsdaten von Ihrem sk-kn--Schlüssel.
Claude Code läuft, aber in den Request logs erscheint nichtsSie haben Claude Code direkt gestartet, während der Profilbereich Only opened from CCR lautet. Starten Sie es über CCR oder ändern Sie den Bereich zu System default.
Jeder Subagent verwendet das StandardmodellDas Subagenten-Routing hängt vom Feld Description auf der Models-Seite ab. Ohne Beschreibungen fügt CCR keine Routing-Anweisung ein, und das Tag wird nie geschrieben.
/model listet keine CCR-Modelle aufEs sind weder Provider noch Modell konfiguriert oder das Profil ist deaktiviert. Führen Sie zuerst Check Connection für den Provider aus.

Fehlerbehebungen für einzelne Fehler der API selbst finden Sie auf den Troubleshooting-Seiten zu ungültigem API-Schlüssel und Ratenbegrenzung.

Häufig gestellte Fragen

Benötige ich claude-code-router, um Claude Code mit einer anderen API zu verwenden?

Nein. Claude Code liest ANTHROPIC_BASE_URL nativ, sodass das Verweisen auf einen beliebigen Endpunkt, der die Anthropic Messages API bereitstellt, keine zusätzliche Software erfordert — drei Umgebungsvariablen, und Sie sind fertig. CCR lohnt sich, wenn Sie Routing über mehrere Anbieter, Protokolle pro Anfrage mit Anbieter, Modell, Latenz, Token und Kosten oder ein anderes Modell pro Subagent statt eines einzigen Modells für alle benötigen. Wenn Ihr Ziel einfach darin besteht, Claude über einen günstigeren Endpunkt auszuführen, ist der Austausch der Basis-URL die kleinere und zuverlässigere Einrichtung: kein zusätzlicher Dienst, und das Prompt-Caching wird direkt weitergeleitet.

Warum bewirkt das Bearbeiten der config.json von claude-code-router nichts?

Weil es nicht mehr die Konfiguration ist, die CCR liest. Aktuelle Builds speichern die Laufzeitkonfiguration in ~/.claude-code-router/config.sqlite (%APPDATA%\claude-code-router\config.sqlite unter Windows) und lesen eine alte config.json genau einmal als Migrationsquelle, wenn noch keine SQLite-Konfiguration vorhanden ist. Nach diesem ersten Lauf wird die JSON-Datei stillschweigend und ohne Fehlermeldung ignoriert — ein manuell bearbeitetes Providers-Array oder ein Router-Block wird daher einfach nie wirksam. Nehmen Sie die Änderung stattdessen in der CCR-Desktop-Oberfläche vor und verwenden Sie Settings → Export data, wenn Sie eine dateibasierte Sicherung wünschen. Die meisten CCR-Anleitungen von Drittanbietern beschreiben weiterhin die JSON-Datei.

Wie starte ich Claude Code jetzt über claude-code-router?

Über den Profilnamen, nicht mit ccr code. Erstellen Sie unter Agent Config → Add profile → Claude Code ein Profil, wählen Sie ein Modell aus, speichern Sie es und starten Sie es anschließend: mit der npm-CLI über ccr "Claude Code - Work" oder mit der Desktop-App über ccr-app "Claude Code - Work". Letztere bietet jeder Profilkarte außerdem eine Terminal-Schaltfläche für die CLI und eine Wiedergabe-Schaltfläche für die Claude-App. Der aktuelle CLI-Befehlssatz umfasst start, ui, stop, serve und web sowie einen Profilnamen oder eine ID; es gibt kein code-Unterkommando. Hängen Sie die eigenen Flags des Agents nach einem doppelten Bindestrich an, zum Beispiel: ccr "Claude Code - Work" cli -- --model sonnet.

Kann Claude Code ein benutzerdefiniertes Modell verwenden?

Technisch ja: ANTHROPIC_MODEL akzeptiert jeden Slug, den der Endpunkt hinter ANTHROPIC_BASE_URL bereitstellt, und claude-code-router fügt darüber ein Routing pro Aufgabe über Anbieter hinweg hinzu. Die ehrliche Einschränkung ist, dass die eigene Gateway-Dokumentation von Anthropic angibt, dass es nicht unterstützt wird, Claude Code über ein Gateway zu Nicht-Claude-Modellen zu routen; daher sind Tool-Nutzung und agentisches Verhalten bei einem Nicht-Claude-Modell ungetestetes Terrain und keine unterstützte Konfiguration. Bei Kunavo ist der unterstützte Weg ein Claude-Slug auf einem günstigeren Endpunkt; andere Katalogmodelle sind über die OpenAI-kompatible API und nicht über Claude Code erreichbar. Die Regel für exakte Slugs und die Modelltabelle finden Sie oben unter ein benutzerdefiniertes Modell festlegen, den vollständigen Katalog auf der Modellseite.

Welche Basis-URL und Umgebungsvariablen benötigt Claude Code?

Setzen Sie ANTHROPIC_BASE_URL auf https://api.kunavo.com (Claude Code hängt /v1/messages selbst an), ANTHROPIC_AUTH_TOKEN auf Ihren sk-kn--Schlüssel und ANTHROPIC_MODEL auf einen exakten Modell-Slug wie claude-sonnet-5. Legen Sie auch die Aliase fest: ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5 für /model opus und den Planmodus (für Opus 5.5 ist Claude Code v2.1.280 oder höher erforderlich – führen Sie claude update aus), ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5, da der Alias sonnet andernfalls Sonnet 5.5 anfordert, das Kunavo nicht anbietet, und ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5, damit Hintergrundaufgaben zum günstigsten Tarif abgerechnet werden.

Soll ich ANTHROPIC_AUTH_TOKEN oder ANTHROPIC_API_KEY verwenden?

Verwenden Sie ANTHROPIC_AUTH_TOKEN. Es wird als Authorization: Bearer-Header gesendet und ist sofort wirksam, während ANTHROPIC_API_KEY als x-api-key gesendet wird und eine einmalige interaktive Genehmigung benötigt — ein Schlüssel, den Sie einmal abgelehnt haben, wird danach stillschweigend ignoriert. Bei Kunavo ist diese Genehmigung der gesamte Unterschied: Sowohl /v1/messages als auch der /v1/models-Endpunkt hinter der Gateway-Modellerkennung von Claude Code lesen den Schlüssel aus beiden Headern.

Warum meldet Claude Code, dass das Modell nicht verfügbar ist?

Kunavo gleicht Modell-Slugs exakt ab und verwendet keine Aliase für Namen mit Datumsanhang. Daher liefert eine Anfrage für claude-sonnet-4-5-20250929 404 zurück, während claude-sonnet-5 funktioniert. Setzen Sie ANTHROPIC_MODEL auf einen exakten Slug aus dem Katalog, statt sich auf den integrierten Standard von Claude Code zu verlassen. Eine weitere häufige Ursache ist der Alias sonnet: Ohne Festlegung fordert er Sonnet 5.5 an, das Kunavo nicht anbietet. Daher liefern /model sonnet, die Ausführungsphase von opusplan und jeder Subagent mit der Einstellung model: sonnet 404 zurück, bis ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 gesetzt ist.

Was funktioniert nicht mehr, wenn Claude Code über ein Gateway läuft?

Drei Dinge, absichtlich. Remote Control und Spracheingabe benötigen beide eine claude.ai-Identität und sind nicht verfügbar, solange ein Gateway-Zugangsschlüssel gesetzt ist. Die Verfügbarkeitsprüfung für /fast ruft api.anthropic.com direkt auf, statt Ihrer Basis-URL zu folgen; daher kann sie den schnellen Modus als nicht verfügbar melden, während normale Anfragen funktionieren. CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1 stellt ihn wieder her. Programmierung, Tools, Subagents, MCP und Prompt-Caching bleiben unverändert.

Kann ich stattdessen mein Claude Pro- oder Max-Abonnement verwenden?

Nein. Chat-Abonnements beinhalten keinen API-Zugriff, und das Setzen eines Gateway-Zugangsschlüssels setzt Ihre claude.ai-Anmeldung absichtlich außer Kraft — die Limits des Abonnements gelten nicht mehr, und die Nutzung wird stattdessen pro Token über den Schlüssel abgerechnet. Siehe ist Claude Code kostenlos für die vollständige Aufschlüsselung.

Funktioniert dies mit der VS-Code-Erweiterung?

Ja, aber die Erweiterung prüft die Zugangsdaten vor dem Start. Legen Sie sie daher in der eigenen Einstellung claudeCode.environmentVariables von VS Code fest und nicht nur in ~/.claude/settings.json.

Wie sieht es mit Cursor, Kilo Code oder Cline aus?

Diese verwenden statt Umgebungsvariablen ein OpenAI-kompatibles Anbieterfeld — die Basis-URL https://api.kunavo.com/v1, denselben Schlüssel. Einrichtung und Routing von Modellen pro Tool werden in den Anleitungen zu Cline, Roo Code und Kilo Code behandelt.