In einem Satz: Viele fragen, ob Claude Code an OpenRouter gehen kann. Kaum jemand rechnet vorher aus, welche Modellklasse die Rechnung danach trägt. Zuerst der Weg nach dem Verlassen des Rechners und die Variablen aus der offiziellen Anleitung, dann die vier Klassen auf derselben angenommenen Tokenmenge, dann Abo neben Verbrauch, und erst am Ende die Stellschrauben, die eine einzelne Entwicklerin oder ein einzelner Entwickler wirklich drehen kann.
Wohin die Anfrage geht, nachdem sie den Rechner verlässt
Claude Code spricht upstream die Anthropic Messages API. OpenRouter stellt dafür einen kompatiblen Eingang bereit, in der Dokumentation Anthropic skin genannt: Denkblöcke und Tool-Aufrufe gehen durch, die Kosten landen auf den OpenRouter-Credits. Ein lokaler Weiterleitungsprozess ist nicht nötig.
Die Basis-URL ist https://openrouter.ai/api, ohne /v1 am Ende. Den Rest hängt Claude Code selbst an. Eine URL mit /v1 ist einer der häufigsten Wege, alle Variablen zu setzen und trotzdem den falschen Host zu treffen.
Der Kompatibilitätsrahmen ist eng. Der Claude-Code-Leitfaden von OpenRouter garantiert die Anbindung nur mit dem First-Party-Anbieter von Anthropic. Andere IDs können im Modellwähler auftauchen. Dieselbe Seite sagt, Claude Code sei auf Anthropic-Modelle ausgelegt und könne bei anderen Anbietern falsch arbeiten. OpenRouter anzuschließen ist nicht derselbe Schritt wie die stillschweigende Wahl der billigsten Katalog-ID. Ein niedriger Listenpreis und eine Tool-Schleife, die zu Ende läuft, sind zwei getrennte Prüfungen.
Kreditkauf und Tokenpreis sind ebenfalls zwei Rechnungen. Der eigene Claude-Code-Text von OpenRouter sagt: keine Aufschläge auf die Inferenz, gezahlt wird der Katalogpreis. Beim Kauf von Credits kommen 5,5 % Gebühr dazu, mindestens $0.80. Gegen einen Klassenwechsel ist das die kleine Zahl. Die Tabellen setzen das Verhältnis auf eine Seite.
Vier Umgebungsvariablen, und die leere Zeile muss bleiben
Der Schnellstart legt den Schlüssel in ANTHROPIC_AUTH_TOKEN und setzt ANTHROPIC_API_KEY auf einen ausdrücklich leeren String. Der Token geht als Authorization: Bearer hinaus, das erwartet das Gateway. Der API-Schlüssel geht als x-api-key hinaus, und Claude Code behandelt ihn als direktes Anthropic-Credential. Der leere String verhindert den Rückfall. Den alten Schlüssel nur zu löschen, ohne ="", kann eine gespeicherte Anmeldung in der interaktiven Sitzung stehen lassen.
export OPENROUTER_API_KEY="<your-openrouter-api-key>"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY=""
Die Reihenfolge ist eine Falle. ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" wird expandiert, wenn die Shell diese Zeile liest. Steht der Schlüssel dahinter, oder setzt ihn ein Secrets-Manager erst nach dem Profil, wird der Token zum leeren String und jede Anfrage scheitert an der Authentifizierung. In ~/.zshrc zuerst OPENROUTER_API_KEY definieren.
Wer sich schon einmal mit einem Anthropic-Konto bei Claude Code angemeldet hat, führt einmal /logout aus, beendet und startet neu. Die Dokumentation warnt vor einem Auth-Konflikt beim Start, wenn eine zwischengespeicherte Anmeldung neben dem Gateway-Credential liegt. Sichtbar wird das oft als fehlendes Modell, auch bei IDs, die nur OpenRouter kennt, etwa openrouter/auto. Unter macOS liegt dieser Cache im Schlüsselbund unter dem Namen Claude Code-credentials. Eine native Installation schreibt nicht zwingend ~/.claude/.credentials.json.
Prüfung mit /status in der Sitzung. Die Auth-Zeile soll ANTHROPIC_AUTH_TOKEN nennen, die Basis-URL https://openrouter.ai/api. Steht dort noch ANTHROPIC_API_KEY, oder ist die Anmeldemethode noch ein Claude-Konto, hat dieser Prozess die Variablen nicht bekommen. Dieselbe Anfrage sollte auf der Activity-Seite von OpenRouter erscheinen.
Pro Projekt gehen die Variablen in .claude/settings.local.json im Repository. Nicht in eine .env, die der native Installer nicht liest, und den Schlüssel nicht committen. Eine eingecheckte Datei gibt den Credit-Schlüssel an jeden Klon weiter. Für einen einzelnen Rechner bevorzugt die Dokumentation das Shell-Profil und das Lesen aus dem System-Schlüsselbund statt eines sk-or--Strings in einer Dotfile.
Leerer Schlüssel und Abmeldung sind zwei Schritte
/logout löscht nur die zwischengespeicherte OAuth-Sitzung. Ein echter ANTHROPIC_API_KEY in der Shell bleibt stehen, und Anfragen können weiter als direkte Anthropic-Nutzung abgerechnet werden.
Ein Prozess, der nicht startet, oder ein Rechner ohne Speicher, ist ein anderer Fehler als dieser Abrechnungsweg. Installation und Startfehler stehen im Leitfaden zu Claude-Code-Deploy-Fehlern.
Die vier Klassen sind der Stückpreis
Claude Code teilt die Arbeit auf Fable, Opus, Sonnet und Haiku, jede Klasse mit eigener Variable. Sub-Agents nutzen CLAUDE_CODE_SUBAGENT_MODEL. Das Beispiel von OpenRouter zeigt auf ~anthropic/claude-…-latest, das Sub-Agent-Beispiel auf Opus. Das wählt einen wandernden Alias. Es ist kein persönliches Budget. Aliase folgen dem Katalog. Heute kostet ~anthropic/claude-opus-latest wie anthropic/claude-opus-5.5. Morgen muss es nicht dieselbe ID sein.
Die Tabelle ist der öffentliche OpenRouter-Katalog am 2026-10-20, in US-Dollar pro Million Tokens. Cache-Lesen ist der Cache-Read-Preis im Katalog. Er gilt nur, wenn der Anbieter den Präfix-Cache wirklich trifft, nicht als Rabatt auf jedes Input-Token.
| Klasse | In diesem Text festgelegte ID | Input | Output | Cache-Lesen | 1 Mio. rein + 1 Mio. raus |
|---|---|---|---|---|---|
| Fable | anthropic/claude-fable-5.1 |
$10 | $50 | $0.25 | $60 |
| Opus | anthropic/claude-opus-5.5 |
$4 | $20 | $0.20 | $24 |
| Sonnet | anthropic/claude-sonnet-5.5 |
$2 | $10 | $0.10 | $12 |
| Haiku | anthropic/claude-haiku-5.5 |
$0.10 | $0.50 | $0.01 | $0.60 |
Am selben Tag lag anthropic/claude-fable-5 bei Input und Output wie 5.1, $10 / $50, beim Cache-Lesen aber bei $1 statt $0.25. anthropic/claude-opus-5 war eine andere Zeile: $5 rein, $25 raus. anthropic/claude-sonnet-5 entsprach 5.5 bei Input und Output, Cache-Lesen $0.20, das Doppelte der $0.10 von 5.5. Derselbe Name Opus oder Sonnet ist nicht dieselbe Rechnung. Wer das Budget aus diesem Text halten will, pinnt die ID und hört nicht bei latest auf.
export ANTHROPIC_DEFAULT_FABLE_MODEL="anthropic/claude-fable-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-5.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-5.5"
export CLAUDE_CODE_SUBAGENT_MODEL="anthropic/claude-haiku-5.5"
Die letzte Zeile ist eine Budgetentscheidung, nicht das offizielle Beispiel. Das Beispiel legt Sub-Agents auf Opus. Suchen sie vor allem Dateien, lassen Tests laufen und schreiben Zusammenfassungen, rechnet jeder Zweig auf derselben Opus-Klasse mit $4 / $20. Vor dem Wechsel auf Haiku in /model prüfen, ob alle vier Klassen gelistet sind, und in der Modellspalte von Activity nachsehen, ob die gepinnte ID ankommt.
$60 geteilt durch $0.60 ist 100. Das ist ein Katalogverhältnis, keine Messung einer Sitzung. Wie Text zu einem abgerechneten Token wird, steht im Vergleich von Token und Preis. Nutzung und Listenpreise anderer Familien in dieser Woche stehen in den OpenRouter-Rankings.
Dieselbe angenommene Menge, und wie weit die Klassen auseinanderliegen
Das ist kein Durchschnittstag aus einem Log. Die Frage ist nur: Tokens festhalten, Klasse wechseln, was macht der Katalog. Angenommen ein Arbeitstag mit 8 Millionen Input-Tokens und 0,8 Millionen Output-Tokens, etwa 10 zu 1. Das steht für einen Agenten, der den Kontext immer wieder mitschickt und viel weniger selbst schreibt. In diesem Abschnitt ist das Cache-Lesen null.
| Den ganzen Tag auf dieser Klasse | Dieser Tag | 22 solche Arbeitstage |
|---|---|---|
| Fable 5.1 | $120 | $2,640 |
| Opus 5.5 | $48 | $1,056 |
| Sonnet 5.5 | $24 | $528 |
| Haiku 5.5 | $1.20 | $26.40 |
| Hälfte Haiku, 40 % Sonnet, 10 % Opus | $15 | $330 |
Die Rechnung ist offen. Ein Opus-5.5-Tag ist 8 × $4 + 0,8 × $20 = $48. Die gemischte Zeile teilt dieselben 8 Millionen / 0,8 Millionen: die Hälfte der Tokens auf Haiku ist $0.60, 40 % auf Sonnet sind $9.60, 10 % auf Opus sind $4.80, die Summe ist $15. Zweiundzwanzig ist ungefähr ein Monat Arbeitstage. Kein Rabatt und kein Tarif.
Eine zweite Annahme, genauso gekennzeichnet: Wird die Hälfte des Inputs an diesem Opus-Tag als Cache-Lesen berechnet, dann 4 Millionen × $4 + 4 Millionen × $0.20 + $16 Output = $32.80, nicht $48. Eine geänderte Tool-Ausgabe bricht den Präfix, der nächste Zug liegt wieder auf dem vollen Input-Preis. $32.80 ist kein Versprechen.
Die 5,5 % beim Kreditkauf stehen außerhalb der Tabelle. Auf $48 sind das etwa $2.64, auf $330 etwa $18. Die Lücke von $2.310 zwischen einem Monat solcher reinen Fable-Tage und der gemischten Zeile schließen sie nicht. Zuerst die Klasse ändern.
Diese Tabelle nicht gegen ein Pro-Abo gewinnen lassen
$48 liegt schon über einem Monat Pro, und Pro ist kein unbegrenztes Opus. Die Zahlen sind Katalogpreise mal angenommene Tokens. Hat die Sitzung keine 8 Millionen Input geschickt, beschreibt die Tabelle nicht diesen Tag.
Abo, Konsole und OpenRouter sind drei Zähler
Am 2026-10-20 standen auf der Claude-Preisseite noch diese Beträge, ohne Steuer, und der Hinweis, dass Tarife sich ändern können. Pro kostet $20 im Monat oder $17 im Monat bei Jahreszahlung ($200 im Voraus). Max 5x kostet $100 im Monat, Max 20x $200 im Monat. Pro und Max enthalten Claude Code und teilen das Kontingent mit Claude im Web, auf dem Desktop und auf dem Telefon. Das Help Center beschreibt ein Fünf-Stunden-Limit der Sitzung plus ein Wochenlimit. Max hat zusätzlich ein Wochenlimit für Fable. Die Faktoren 5x und 20x gelten je Fünf-Stunden-Sitzung, gemessen an Pro.
OpenRouter ist ein anderer Zähler. Das Help Center schreibt: Ist ANTHROPIC_API_KEY gesetzt, rechnet Claude Code über die API ab und nicht über das im Abo enthaltene Kontingent. Der OpenRouter-Weg verlangt außerdem /logout, einen leeren API-Schlüssel und ANTHROPIC_AUTH_TOKEN. Sobald der Weg steht, verbraucht die erste Anfrage OpenRouter-Credits. Sie zehrt nicht auf, was im Pro-Kontingent noch übrig ist.
Die Wahl hängt daran, an welcher Wand man steht, nicht daran, welches Gateway neuer klingt:
- Wer innerhalb von Pro oder Max bleibt, zahlt einen Deckel. Nach $20 oder $100 laufen zusätzliche Sitzungen in diesem Zeitraum nicht weiter zum Opus-Preis auf, sie treffen das Limit. Reicht das Limit, gibt es keinen Grund, die Arbeit nur wegen OpenRouter auf einen Tokenzähler zu legen.
- Wer jede Woche an das Limit stößt und danach ohnehin API-Credits kaufen würde, schaut zuerst, ob die Wand Fable oder Opus ist. Sub-Agents und gewöhnliche Änderungen auf Haiku und Sonnet zu legen, schneidet oft direkter als die nächste Max-Stufe. Eine höhere Stufe kauft mehr Abo-Kontingent, nicht einen niedrigeren Tokenpreis.
- Wer eine harte Decke auf einem Schlüssel will und eine Modellspalte pro Anfrage, bekommt mit Schlüssellimit und Activity-Seite von OpenRouter die Sicht, die der Nutzungsbalken des Abos nicht hat. Dafür zahlt man Katalogpreise plus 5,5 % beim Kreditkauf. Wenn die direkten Console-Preise dem Katalog entsprechen, ist diese 5,5 % die eigene Spanne des Gateways, im Tausch gegen Failover und einen Schlüssel über alle Anfragen. „Kein Inferenz-Aufschlag“ beschreibt diese Schicht. Es heißt nicht, das Gateway sei billiger als Pro.
Ob Claude Code und ein Assistent im Editor überhaupt dasselbe Produkt sind, steht in Claude Code gegen Cursor. Der Text vergleicht die Werkzeuge. Dieser hier vergleicht die Zähler nach dem Anschluss.
Fünf Stellschrauben, in der Reihenfolge für Einzelentwickler
Erstens: die Sitzung nicht den ganzen Tag auf Fable oder Opus lassen. Die vier Variablen sind diese Schraube. Lange Begründung bleibt auf Fable, schwere Änderungen auf Opus, gewöhnliche Änderungen auf Sonnet, Suche und kurze Vervollständigungen auf Haiku. Ist die ID gepinnt, ersetzt eine Alias-Preisanpassung nicht still die Klasse, die man ausgerechnet hat.
Zweitens: Sub-Agents getrennt herunterstufen. Wer das offizielle Beispiel kopiert, lässt sie auf Opus laufen. Eine Elternsitzung mit drei Sub-Agents kann auf den Zweigen mehr ausgeben als in der Antwort, die man im Hauptprotokoll sieht, wenn jeder Zweig Opus ist. Im persönlichen Budget CLAUDE_CODE_SUBAGENT_MODEL auf Haiku setzen und nur anheben, wenn genau diese Teilaufgabe die schwere Begründung ist.
Drittens: /fast kostet mehr. Die Dokumentation beschreibt bis zu etwa 2,5-fache Ausgabegeschwindigkeit zu einem Aufpreis über dem passenden Opus-Tarif. Abgedeckt sind Opus 4.6, 4.7, 4.8 und Opus 5. Fable ist nicht dabei. Damit /fast von Claude Code über OpenRouter wirklich speed: "fast" sendet, braucht es Claude Code 2.1.96 oder neuer, CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1 und die Opus-Variable auf einer konkreten ID wie anthropic/claude-opus-5. Auf ~anthropic/claude-opus-latest kann /fast „an“ melden, während die Anfrage speed weglässt. Ein Verhalten wiegt schwerer als die Anzeige: Liegt die Sitzung auf Fable, beschleunigt /fast Fable nicht. Claude Code wechselt die Sitzung auf das konfigurierte Opus, und spätere Anfragen rechnen als Opus ab. Den Schalter aus lassen, wenn man Geschwindigkeit nicht kauft.
Viertens: den Schlüssel deckeln. Ein OpenRouter-Schlüssel kann ein eigenes Limit haben. Den Claude-Code-Schlüssel von Experimentierschlüsseln trennen und das Monatslimit auf den Betrag setzen, den man verbrennen kann. Die Modellspalte in Activity zeigt, ob der Tag wieder auf Fable gerutscht ist. Das Statusline-Skript im Beispiel-Repository von OpenRouter summiert Kosten und Cache-Rabatt dieser Sitzung. Jede Aktualisierung fragt den Generation-Endpunkt erneut. Eine lange Sitzung holt nach. Es ist keine Rechnung.
Fünftens: ein längerer Kontext ist eine Input-Rechnung. Ein nachgestelltes [1m] ändert nur das Fenster, das Claude Code annimmt, damit es nicht zu früh kompaktiert. OpenRouter streicht die Markierung vor dem Routing. Ein größeres angenommenes Fenster ist auch ein größerer Präfix, den man senden darf. Kompaktieren, nicht das ganze Repository lesen, einen stabilen Präfix cache-fähig halten: das spart Input. Cache-Lesen liegt in der Tabelle schon eine Größenordnung unter dem Input und gilt nur, solange Tool-Ausgaben den Präfix nicht zerreißen.
Neben der Modellrechnung steht die Maschinenrechnung. Eine Sitzung, die über Nacht läuft, während Compile und Simulator um den Speicher desselben Mac kämpfen, erscheint nicht bei OpenRouter. Die Speicherwahl steht im Leitfaden zum Arbeitsspeicher für Claude Code. Die beiden Rechnungen getrennt halten, sonst wird ein Token-Überzug als langsamer Rechner gelesen.
Ein Nicht-Anthropic-Modell nicht zum Standard-Sparschalter machen
Der Wähler erscheint nach CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. Die Dokumentation nennt ihn eine kuratierte Liste, nicht den ganzen Katalog, und ein Teil der Einträge routet zu Anbietern außerhalb von Anthropic. Anthropic First Party soll oben in der Anbieterpriorität stehen, und der Fast-Modus wird nur dort bedient.
Ein fehlgeschlagener Tool-Aufruf schickt eine volle Runde Kontext erneut. Ein Preis, der ein Bruchteil von Opus ist, kann nach zwei Wiederholungen in derselben Größenordnung landen, während die Änderung noch nicht fertig ist. DeepSeek oder eine andere Familie gehört in den Coding-Lauf nur als eigenes Werkzeug, das man prüft, nicht als stiller Ersatz für eine der vier Claude-Code-Variablen. Fähigkeit und Preis zusammen stehen in DeepSeek V4 Flash gegen Claude Opus.
Reihenfolge für Einzelentwickler
Zuerst prüfen, ob man noch im Abo-Kontingent ist. Wenn ja, und das Limit hält, bei Pro oder Max bleiben. Wer schon pro Token zahlt, trennt zuerst die vier Klassen und die Sub-Agents und setzt dann ein Monatslimit auf den Schlüssel. Andere Modelle im Wähler kommen danach.
Fragen
Welche Modelle garantiert der OpenRouter-Leitfaden für Claude Code? Nur Anthropic First Party. Andere Modelle können im Wähler erscheinen. Sie stehen außerhalb dieses Satzes.
Legt OpenRouter auf den Tokenpreis noch eine Marge? Die Claude-Code-Seite sagt, die Inferenz werde nicht aufgeschlagen, der Preis sei der Katalogpreis. Der Aufschlag sitzt beim Kreditkauf: 5,5 %, mindestens $0.80.
Ist Pro günstiger als Bezahlung pro Token? Nicht ohne eine Nutzungszahl. Wer innerhalb von Pro bleibt ($20 im Monat oder $17 aufs Jahr gerechnet) oder innerhalb von Max ($100 / $200), hat im Abo einen Deckel. Nach dem Anschluss an OpenRouter verbrauchen Anfragen Credits und ziehen nicht mehr am enthaltenen Kontingent. Die $48 und $15 oben sind Katalogrechnung auf angenommenen Tokens, nicht die eigene Rechnung.
Spart /fast Geld? Nein. Es tauscht einen höheren Preis gegen schnellere Ausgabe und gilt nur für einen Teil der Opus-Modelle. Einschalten, während die Sitzung auf Fable liegt, verschiebt die Sitzung auf Opus-Abrechnung.
Darf der Schlüssel in ~/.zshrc stehen? Er funktioniert, und er steht im Klartext. Eine Dotfile, die in ein Repository oder in die Zwischenablage gerät, gibt den Schlüssel preis. Lesen aus dem System-Schlüsselbund ist die engere Gewohnheit. Bei einem Leak auf der Schlüsselseite von OpenRouter widerrufen. Für ein Projekt settings.local.json nutzen und nicht committen.
Ich habe die Basis-URL geändert, und Activity bleibt leer. Warum? Zuerst /status. Die Auth-Zeile soll ANTHROPIC_AUTH_TOKEN sein, die Basis-URL https://openrouter.ai/api ohne /v1. Eine alte Kontoanmeldung mit /logout löschen. Ein übrig gebliebener ANTHROPIC_API_KEY in der Shell muss ein leerer String sein. Abmelden allein löscht ihn nicht.
ZavCloud Developer Infrastructure
Wenn das Modell nach Verbrauch läuft, soll der Mac nicht mit dem Build kämpfen
Eine lange Sitzung, Xcode und ein Simulator teilen sich den Speicher eines Mac. Diese Rechnung steht nicht bei OpenRouter.
Ein dedizierter Mac-Knoten ist eine Monatsmiete, getrennt von den Tokens.