Claude Code auf Ihren eigenen GPUs.
Behalten Sie Ihre Claude-Anmeldung und betreiben Sie die in Ihren Regeln festgelegten Modelle hier – oder alles vollständig lokal.
Eine ANTHROPIC_BASE_URL, zwei mögliche Quellen für eine Antwort.
Jede Anfrage, die Claude Code an Anthropic sendet, wird auf die Nutzungslimits Ihres Abos angerechnet oder über einen API-Schlüssel pro Token abgerechnet, und ihr Prompt, Ihr Code eingeschlossen, verlässt Ihren Rechner. Viele dieser Anfragen sind klein. Beantworten Karten, die Sie bereits besitzen, diese Anfragen, kosten sie Strom, werden nicht auf Ihre Limits angerechnet, und ihre Prompts bleiben auf Ihrem Host.
Claude selbst läuft hier nie. Eine Regel legt fest, anstelle welcher Claude-Modelle dieser Rechner antwortet, zum Beispiel claude-haiku*, und ein von Ihnen geladenes Modell antwortet an ihrer Stelle, unter dem Namen, den Claude Code angefragt hat. Alles andere, Opus eingeschlossen, wird Byte für Byte mit Ihrer eigenen Anmeldung an Anthropic weitergereicht, Streaming inklusive. Ihr Warden-Schlüssel wird in einem eigenen Header übertragen, sodass Ihre Anmeldung unverändert bleibt, und für einen Schlüssel ohne das Flag „May relay to Anthropic“ wird nichts weitergeleitet.
Reicht ein kleines Modell? Die Antwortqualität haben wir nicht gemessen; dies ist eine Einschätzung, kein Benchmark. Claude Code nutzt sein Modell der Haiku-Klasse für leichtere Hintergrundarbeit, und dort sowie für einfache, klar beschriebene Änderungen ist ein kleines lokales Modell ein vernünftiger Ersatz. Für Änderungen über viele Dateien, Debugging und lange Pläne lassen Sie Sonnet und Opus bei Anthropic – genau das tut die Auffangregel für alle übrigen Modelle, solange Sie keine Regel hinzufügen. Ein größeres Modell auf größeren Karten verschiebt diese Grenze; unsere Messungen weiter unten (Claude Code und Replikate) liefen mit einem 4B-Modell.
Bemessen Sie den Kontext für Claude Code, nicht für den Chat: Seine erste Runde in unserer Sitzung hatte 38.167 Token, das lokale Modell braucht also deutlich mehr als 40 Tsd. Token Kontext.
Kurz gesagt: Claude Code sendet die Anfrage an den Warden, mit seiner eigenen Anthropic-Anmeldung in Authorization und dem Warden-Schlüssel in X-LMWarden-Key. Der Warden prüft seine Regeln der Reihe nach. Eine Anfrage für ein Modell, das in einer Regel festgelegt ist, wird übersetzt, vom Scheduler eingereiht und vom Replikat-Router an ein vLLM-Replikat gesendet. Jede andere Anfrage, etwa an Opus, wird an api.anthropic.com weitergereicht, mit weitergeleiteter Anmeldung und entferntem Warden-Schlüssel. Scheitert der lokale Teil vor seinem ersten Byte, geht die Anfrage an Anthropic, oder die Regel lehnt sie mit Statuscode 529 ab, worauf Claude Code es erneut versucht.
export ANTHROPIC_BASE_URL=https:// warden.example export ANTHROPIC_CUSTOM_HEADERS= "X-LMWarden-Key: vw_…" claude
Claude Code 2.1.227 oder neuer. Behalten Sie Ihre normale claude-Anmeldung; der Schlüssel kommt in einen eigenen Header, nicht in ANTHROPIC_API_KEY.
Der erste Treffer gewinnt; jedes andere Modell geht an Anthropic
Anthropic wird mit der eigenen Anmeldung des Benutzers erreicht
claude-haiku* an ein lokales Modell, und die Auffangregel reicht alles andere an Anthropic durch; die Regeln sind in der Reihenfolge nummeriert, in der sie geprüft werden. Das Panel Traffic zählt 107 lokal, 2 durchgereicht, 0 zurückgefallen und 2 abgelehnt. Scrollen Sie das Bild seitlich, um die ganze Seite zu sehen.Rechnen Sie damit, dass die erste Runde am längsten dauert. In einer früheren Sitzung hatte die erste Runde von Claude Code 38.167 Token, und das lokale Modell war mit einem Kontext von 32.768 Token geladen, also lehnte die Engine sie ab (status_400), und die Anfrage ging stattdessen an Anthropic. Mit auf 65.536 Token erhöhtem Kontext und einem fp8-KV-Cache (der Attention-Cache mit 8 Bit gespeichert, halber Speicherbedarf) beantwortete das 4B-Modell auf Karten mit 16 GiB dieselbe Runde lokal in 28 s, wobei der gesamte Prompt von 38 Tsd. Token komplett neu eingelesen werden musste, weil noch nichts im Cache lag. Spätere Runden einer Unterhaltung finden den Großteil ihres Prompts schon im Cache der Engine: Die mediane Zeit bis zum ersten Byte für die Regel claude-haiku* in Abb. 4 beträgt 290 ms.
Der Circuit Breaker für dieses Modell: geschlossen
Warum eine Regel an Anthropic ging oder abgelehnt wurde, nach Grund
- Protokoll
- Anthropic Messages
- Unterstützung
- Vollständig
Die in Ihren Regeln festgelegten Claude-Modelle laufen hier; jedes andere Modell und jeder andere /v1-Pfad geht mit Ihrer eigenen Anmeldung an Anthropic. Tragen Sie den Warden-Schlüssel im Router-Modus nie in ANTHROPIC_API_KEY oder ANTHROPIC_AUTH_TOKEN ein: Das würde Ihre Anmeldung ersetzen. Der rein lokale Modus führt alles auf einem bereitgestellten Modell aus, einschließlich der kleinen Hintergrundaufgaben, und nichts geht an Anthropic.
Voraussetzungen
- Claude Code 2.1.227 oder neuer (
ANTHROPIC_CUSTOM_HEADERS). - Das Routing muss eingeschaltet sein, mit mindestens einer aktivierten Regel.
- Der Schlüssel muss an Anthropic weiterleiten dürfen (May relay).
- Braucht mindestens 49.152 Token Kontext: Allein die erste Runde umfasst etwa 38.000 Token, bevor irgendeine Datei gelesen wird.
- 131.072 Token oder mehr für echte Sitzungen; für kurze reicht weniger.
- Claude Code warnt möglicherweise, dass der Modellname nicht in seinem Katalog steht. Das ist nur ein Hinweis: Claude Code geht dann von einem Kontextfenster mit 200 Tsd. Token aus und komprimiert entsprechend automatisch. Setzen Sie
CLAUDE_CODE_MAX_CONTEXT_TOKENSauf das echte Kontextfenster des Modells.
Einrichtung
In der Konsole erzeugt Connect diese Dateien mit der Adresse Ihres Wardens, Ihrem Schlüssel und dem gewählten Modell. Hier sehen Sie sie mit Platzhaltern.
Router: Claude-Anmeldung behalten
Ihre Claude-Anmeldung geht weiterhin an Anthropic; der Warden-Schlüssel wird in einem eigenen Header übertragen, und die in Ihren Regeln festgelegten Modelle werden hier beantwortet.
export ANTHROPIC_BASE_URL=https://your-warden export ANTHROPIC_CUSTOM_HEADERS="X-LMWarden-Key: vw_YOUR_KEY" claude
settings.json (~/.claude/settings.json){
"env": {
"ANTHROPIC_BASE_URL": "https://your-warden",
"ANTHROPIC_CUSTOM_HEADERS": "X-LMWarden-Key: vw_YOUR_KEY"
}
}Nur lokal (kein Anthropic-Konto)
Jeder Modell-Slot von Claude Code wird auf das gewählte bereitgestellte Modell gesetzt, und der Warden-Schlüssel dient als Auth-Token. Nichts geht an Anthropic.
export ANTHROPIC_BASE_URL=https://your-warden export ANTHROPIC_AUTH_TOKEN=vw_YOUR_KEY export ANTHROPIC_MODEL=your-served-model-name export ANTHROPIC_DEFAULT_OPUS_MODEL=your-served-model-name export ANTHROPIC_DEFAULT_SONNET_MODEL=your-served-model-name export ANTHROPIC_DEFAULT_HAIKU_MODEL=your-served-model-name export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 export CLAUDE_CODE_MAX_CONTEXT_TOKENS=32768 # The model's context window is unknown: 32768 is a guess. Set it to the model's real window.
settings.json (~/.claude/settings.json){
"env": {
"ANTHROPIC_BASE_URL": "https://your-warden",
"ANTHROPIC_AUTH_TOKEN": "vw_YOUR_KEY",
"ANTHROPIC_MODEL": "your-served-model-name",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "your-served-model-name",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "your-served-model-name",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "your-served-model-name",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "32768"
}
}Offizielle Dokumentation: https://code.claude.com/docs/en/llm-gateway (abgerufen am 2026-10-04).