Fremde LLMs & lokale Modelle in Claude Code einbinden

Claude Code ist mehr als ein Modell: Skills, Hooks, Memory, MCP — das ist der eigentliche Wert. Dieser Leitfaden zeigt, wie du den Motor tauschst, ohne den Wagen zu wechseln: GPT aus dem ChatGPT-Abo, Gemini oder ein lokales Modell auf deiner eigenen Hardware.

Stand: Juli 2026 Linux / macOS 3 Wege, 1 Prinzip Praxis-erprobt bei H24
Terminal verbindet sich mit mehreren KI-Modell-Knoten

1Das Prinzip: Harness behalten, Motor tauschen

Claude Code spricht mit seinem Modell über die Anthropic-Messages-API. Alles, was diese API anbietet, kann als Motor dienen — egal ob es bei Anthropic läuft, bei einem anderen Anbieter oder auf deinem Rechner.

Drei Umgebungsvariablen steuern das komplett:

VariableWirkung
ANTHROPIC_BASE_URLWohin Claude Code seine Requests schickt. Standard ist die Anthropic-API — hier trägst du deinen Proxy oder lokalen Server ein.
ANTHROPIC_AUTH_TOKENWird als Authorization: Bearer … mitgesendet. Das ist der Schlüssel für deinen Endpoint, nicht für Anthropic.
ANTHROPIC_MODELWelches Modell der Endpoint ansteuern soll, z. B. gpt-5.6-sol oder qwen3-coder.
Weg 1

Lokal: Ollama nativ

Seit Ollama v0.14 mit eingebautem Anthropic-Endpoint. Kein Proxy nötig, Daten bleiben im Haus. Der schnellste Einstieg.

Weg 2

Abo-Modelle: CLIProxyAPI

ChatGPT-/Codex-Abo als Motor in Claude Code — das Muster, das wir bei H24 produktiv fahren („claudex“). Mit Härtung.

Weg 3

Router für alles andere

claude-code-router oder LiteLLM, wenn du viele Provider mischen oder pro Aufgabe dynamisch routen willst.

Eine Regel vorweg: Modelle wechselst du zwischen Sessions, nicht mittendrin. Session beenden, mit anderem Motor per --continue weitermachen — gleicher Verlauf, anderes Modell. Kein Mischbetrieb in einer laufenden Session.

2Weg 1 — Lokales Modell mit Ollama (der einfachste)

Ollama bringt seit Version 0.14 (Januar 2026) einen nativen /v1/messages-Endpoint im Anthropic-Format mit. Drei Befehle, fertig.

1

Ollama installieren und Modell laden

Nimm ein Modell mit mindestens 32k Kontextfenster — Coding-Agenten brauchen Platz. Bewährt für Agentic Coding: qwen3-coder, alternativ aktuelle Llama- oder DeepSeek-Varianten.

# Linux
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3-coder
2

Claude Code auf Ollama zeigen lassen

export ANTHROPIC_BASE_URL=http://localhost:11434
export ANTHROPIC_AUTH_TOKEN=ollama
claude --model qwen3-coder

Das war's. Claude Code läuft jetzt komplett lokal — kein Token verlässt deinen Rechner.

3

Optional: als eigenen Befehl ablegen

Damit der Wechsel ein Wort ist statt drei Exporte (Beispiel ~/.local/bin/claude-local):

#!/bin/bash
export ANTHROPIC_BASE_URL=http://localhost:11434
export ANTHROPIC_AUTH_TOKEN=ollama
exec claude --model qwen3-coder "$@"
Auch möglich: LM Studio bietet seit Januar 2026 ebenfalls einen nativen /v1/messages-Endpoint — gleiches Prinzip, ANTHROPIC_BASE_URL auf den LM-Studio-Port zeigen lassen. Realistische Erwartung: Lokale Modelle sind für fokussierte Coding-Aufgaben stark, ersetzen aber kein Frontier-Modell bei komplexen Mehrschritt-Aufgaben. Hardware entscheidet: ab ~16 GB VRAM wird es angenehm.

3Weg 2 — Abo-Modelle über CLIProxyAPI (das claudex-Muster)

So nutzt du GPT 5.6 aus einem ChatGPT-Abo als Motor in Claude Code. Genau dieses Setup fahren wir bei H24 produktiv, inklusive aller Härtungsschritte. CLIProxyAPI meldet sich per OAuth bei deinem Abo an und stellt die Modelle lokal als Anthropic-kompatible API bereit.

Vorher lesen: Abschnitt Spielregeln & Risiken. Kurzfassung: Niemals Claude-Abos durch einen Proxy leiten (ausdrücklich untersagt). ChatGPT-Abos in Fremd-Harnesses werden von OpenAI derzeit öffentlich geduldet — das ist ein Richtungssignal, keine Garantie. Dediziertes Abo verwenden, nicht den Haupt-Account.
1

Release laden und Version pinnen

CLIProxyAPI von github.com/router-for-me/CLIProxyAPI (aktuelle Reihe v7.2.x). Nimm ein konkretes Release-Binary, verifiziere die Checksumme und pinne die Version — kein Auto-Update auf einem Server, auf dem Agenten arbeiten.

mkdir -p /opt/cliproxy && cd /opt/cliproxy
# Binary des gewünschten Releases laden (Beispiel), dann:
sha256sum -c checksums.txt
chmod +x cli-proxy-api
2

Konfiguration härten

Die Default-Config bindet auf 0.0.0.0 — damit stünde dein Abo-Zugang offen im Netz. Diese config.yaml ist unsere geprüfte Minimal-Härtung:

host: "127.0.0.1"        # NUR localhost — wichtigste Zeile der Datei
port: 8317
remote-management:
  allow-remote: false
  disable-control-panel: true
auth-dir: "/opt/cliproxy/auths"  # chmod 700 — OAuth-Tokens liegen hier im Klartext!
api-keys:
  - "<32-BYTE-ZUFALLSSCHLÜSSEL>"  # openssl rand -hex 32
plugins:
  enabled: false
debug: false
logging-to-file: false
usage-statistics-enabled: false
request-log: false          # sonst landen Prompts im Log
request-retry: 3
chmod 600 config.yaml
mkdir -p auths && chmod 700 auths
3

Beim ChatGPT-Abo anmelden (Device-Login)

Funktioniert headless auf jedem Server — Code am Handy oder Laptop bestätigen, dauert zwei Minuten. Der OAuth-Token landet danach im auths/-Verzeichnis.

./cli-proxy-api --config config.yaml --codex-device-login

Analoge Login-Flows gibt es je nach Version für weitere Anbieter (z. B. Gemini) — aktuellen Stand in der CLIProxyAPI-Doku prüfen. Zusätzlich lassen sich OpenAI-kompatible Upstreams (OpenRouter, eigener vLLM) per Config einbinden.

4

Als systemd-Dienst betreiben

Mit Sandbox-Härtung, damit der Proxy nichts darf, was er nicht muss (/etc/systemd/system/cliproxy.service):

[Unit]
Description=CLIProxyAPI (lokaler Multi-LLM-Proxy)
After=network.target

[Service]
Type=simple
ExecStart=/opt/cliproxy/cli-proxy-api --config /opt/cliproxy/config.yaml
WorkingDirectory=/opt/cliproxy
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
ProtectSystem=strict
ReadWritePaths=/opt/cliproxy
PrivateTmp=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now cliproxy
# Pflicht-Check: lauscht der Proxy wirklich NUR auf localhost?
ss -tlnp | grep 8317   # muss 127.0.0.1:8317 zeigen, nicht 0.0.0.0
5

Erster Test

curl -s http://127.0.0.1:8317/v1/models \
  -H "Authorization: Bearer <DEIN-API-KEY>" | head
# … und direkt als Claude-Code-Session:
ANTHROPIC_BASE_URL=http://127.0.0.1:8317 \
ANTHROPIC_AUTH_TOKEN=<DEIN-API-KEY> \
ANTHROPIC_MODEL=gpt-5.6-sol claude

4Der Wrapper: aus drei Exporten wird ein Befehl

Damit der Motorwechsel im Alltag ein Wort ist, kapseln wir das Setup in ein Wrapper-Skript. Unseres heißt claudex — Claude Code mit Fremd-Motor. Hier die generische, übertragbare Fassung (/usr/local/bin/claudex, chmod +x):

#!/bin/bash
# claudex — Claude Code mit alternativem Modell über lokalen Proxy.
# Native Claude-Abos werden NIEMALS durch diesen Proxy geleitet.
set -euo pipefail

PROXY_BASE=http://127.0.0.1:8317
DEFAULT_MODEL=gpt-5.6-sol

# API-Key aus geschützter Datei laden, nie hardcoden (chmod 600):
#   PROXY_TOKEN=<dein-key>
set -a; . /etc/cliproxy.env; set +a

# Health-Check: klare Fehlermeldung statt kryptischem API-Error
if ! curl -fsS --max-time 3 -o /dev/null \
    -H "Authorization: Bearer $PROXY_TOKEN" "$PROXY_BASE/v1/models"; then
  echo "FEHLER: Proxy ($PROXY_BASE) nicht erreichbar. systemctl status cliproxy" >&2
  exit 1
fi

export ANTHROPIC_BASE_URL="$PROXY_BASE"
export ANTHROPIC_AUTH_TOKEN="$PROXY_TOKEN"
export ANTHROPIC_MODEL="${CLAUDEX_MODEL:-$DEFAULT_MODEL}"
exec claude "$@"

So fühlt sich das im Alltag an

claude                    # normale Session, natives Claude-Abo
claudex                   # gleiche Skills & Memory, GPT als Motor
claudex --continue        # laufenden Verlauf mit GPT weiterführen
claude --continue         # … und zurück auf Claude
CLAUDEX_MODEL=gpt-5.6-terra claudex   # anderes Modell ad hoc
Feinschliff aus der Praxis: Nicht jedes Modell verkraftet das Kontextfenster, das Claude Code standardmäßig annimmt. Wenn Sessions mit „context overflow“ abbrechen: konservatives Fenster ansetzen und Output begrenzen, z. B. CLAUDE_CODE_MAX_OUTPUT_TOKENS=32000 im Wrapper exportieren und früher kompaktieren lassen. Wir hinterlegen pro Modell ein Profil mit sicherem Kontextfenster statt den Werbeangaben zu vertrauen.

5Weg 3 — Router, wenn es viele Provider werden

Sobald du mehr willst als „ein Zweitmotor“ — etwa günstige Modelle für Routinejobs und starke für Architekturfragen — lohnt ein Router vor den Providern.

ToolStärkeWann nehmen
claude-code-router Speziell für Claude Code gebaut; OpenRouter, DeepSeek, Ollama, Gemini u. v. m.; Modellwechsel per /model in der Session Du willst pro Aufgabe dynamisch routen (z. B. Hintergrund-Tasks auf günstige Modelle)
LiteLLM Proxy Team-Gateway: zentrale Keys, Budgets, Logging, 100+ Provider, Anthropic-Format-Ingress Mehrere Nutzer/Server, Kostenkontrolle, vLLM-Backends ohne eigenes Anthropic-Format
CLIProxyAPI (Weg 2) Abo-Logins (OAuth) statt API-Keys, mehrere Accounts mit Rotation Du willst vorhandene Flatrate-Abos nutzen statt Pay-as-you-go-APIs

Das Prinzip bleibt identisch: Der Router bietet lokal einen Anthropic-kompatiblen Endpoint an, Claude Code zeigt per ANTHROPIC_BASE_URL darauf. Ein einmal gebauter Wrapper funktioniert für alle drei Wege.


6Sicherheits-Checkliste

Ein LLM-Proxy bündelt Zugänge zu deinen teuersten Accounts. Entsprechend behandeln.


7Spielregeln & Risiken (Stand Juli 2026)

Claude-Abos: tabu für Proxys

Anthropic hat im Februar 2026 klargestellt und ab April aktiv durchgesetzt: OAuth-Tokens aus Claude-Free/Pro/Max-Accounts dürfen nicht in anderen Tools oder Proxys verwendet werden. Deshalb gilt in jedem Setup dieser Anleitung: Das native Claude-Abo läuft direkt zu Anthropic, niemals durch den Proxy. Pay-as-you-go-API-Keys sind davon nicht betroffen.

ChatGPT-Abos: öffentlich geduldet, nicht garantiert

Der Codex-Lead bei OpenAI hat 2026 öffentlich erklärt, dass die Nutzung von ChatGPT-Subscriptions in Dritt-Harnesses in Ordnung geht. Das ist ein Richtungssignal, keine vertragliche Zusage — die Duldung kann enden. Praktische Konsequenz: dediziertes Abo verwenden und den Weg zurück (natives Setup) jederzeit offenhalten.

Lokale Modelle: keine dieser Fragen

Bei Ollama & Co. gibt es kein Abo, keine Fremd-ToS und keinen Datenabfluss — dafür trägst du Hardware und Modellqualität selbst. Für sensible Daten (etwa DSGVO-kritische Verarbeitung) ist das der sauberste Weg.


8Troubleshooting

SymptomUrsache & Lösung
„API Error“ direkt beim Start Proxy läuft nicht oder falscher Port. systemctl status cliproxy bzw. ollama serve prüfen; Health-Check im Wrapper fängt das mit klarer Meldung ab.
401 / Unauthorized ANTHROPIC_AUTH_TOKEN stimmt nicht mit dem api-keys-Eintrag der Proxy-Config überein — oder es ist zusätzlich ein ANTHROPIC_API_KEY gesetzt, der dazwischenfunkt (unsetzen).
Modell bricht mit Kontext-Fehlern ab Claude Code nimmt ein größeres Fenster an, als das Modell liefert. Konservatives Profil setzen, CLAUDE_CODE_MAX_OUTPUT_TOKENS begrenzen, früher kompaktieren.
Login-Token abgelaufen Device-Login einfach wiederholen; der Proxy refresht Tokens normalerweise selbst, nach längerer Downtime kann ein Re-Login nötig sein.
Lokales Modell antwortet wirr oder bricht Werkzeugaufrufe ab Modell zu klein oder ohne Tool-Call-Training. Auf ein Agentic-Coding-Modell mit ≥32k Kontext wechseln (z. B. qwen3-coder).
Session „vergisst“ nach Motorwechsel nichts, verhält sich aber anders Normal: gleicher Verlauf, anderes Modell mit anderen Stärken. Wichtige Zwischenstände vor dem Wechsel kurz zusammenfassen lassen.
Merksatz zum Schluss: Der Wert deines Setups steckt im Harness — Skills, Hooks, Memory, Arbeitsabläufe. Modelle kommen und gehen. Wer den Motor in einer Stunde tauschen kann, verhandelt mit jedem Anbieter aus einer besseren Position.