Claude Code mit lokalen LLMs und ANTHROPIC_BASE_URL: Ollama, LM Studio, llama.cpp, vLLM

April 29, 2026 · 14 min read · claude-code, lokales-llm, ollama, anthropic-api, llama-cpp, vllm
Claude Code mit lokalen LLMs und ANTHROPIC_BASE_URL: Ollama, LM Studio, llama.cpp, vLLM

Native Anthropic-Endpoints, Tool-Call-Kompatibilität und Context-Window-Sizing für lokales Claude Code.

Zuletzt getestet: April 2026. Siehe Changelog am Ende.

TL;DR Cheat Sheet

ZielSetup
MacBook AirGemma 4 26B-A4B Q4, 32K Context, LM Studio oder Ollama
MacBook ProGemma 4 26B-A4B Q4 / UD-Q4, 64K Context, llama.cpp oder LM Studio
Claude Code Minimum32K Context (alles darunter ist eine Chat-Demo)
Bestes lokales BackendLM Studio oder Ollama zuerst; llama.cpp für Fortgeschrittene; vLLM für Server
Vermeiden8K / 16K Context, dichtes 31B Gemma 4 auf 32-GB-Maschinen, alte llama.cpp-Builds

Die Faustregel für lokales Claude Code

Drei Faktoren entscheiden, ob eine lokale Claude-Code-Session funktioniert:

  • Modellqualität entscheidet, ob die Antwort schlau ist.
  • Tool-Call-Formatierung entscheidet, ob Claude Code mit der Antwort handeln kann.
  • Context-Länge entscheidet, ob die Session die ersten paar Edits überlebt.

Für lokale Coding-Agents: 32K ist die Untergrenze. 64K ist der Sweet Spot. Alles unter 32K ist eine Chat-Demo, kein Claude Code.

Empfohlenes Setup

Nimm das hier zuerst. Schau dir die Alternativen erst an, wenn du das ausprobiert hast.

  • Backend: LM Studio (≥ 0.4.1) oder Ollama (≥ v0.14.0) — beide bieten einen nativen Anthropic-kompatiblen lokalen Endpoint, kein Proxy nötig.
  • Modell: gemma4:26b-a4b (Gemma 4 26B-A4B-it, Q4-Quant). MoE Active-Param ≈ 3,88 B → laptopfreundliche Latenz, Tool-Use ist direkt ins Modell trainiert.
  • Context: 32K Context auf einem MacBook Air, 64K Context auf einem MacBook Pro M5 Pro/Max mit 48 GB+ RAM.
  • Maschine: 32 GB+ RAM dringend empfohlen. 24 GB funktioniert bei 24K–32K mit Vorsicht.

Wenn du keinen Anthropic-kompatiblen Modus hast und nur einen OpenAI-kompatiblen lokalen Endpoint läufst, setz LiteLLM davor (siehe Abschnitt zu LiteLLM).


1. Environment Variables, die Claude Code liest

# Wohin Claude Code Requests POSTet. Default: https://api.anthropic.com
ANTHROPIC_BASE_URL=http://localhost:11434

# Wird als Auth gesendet. Lokale Server akzeptieren meist jeden nicht-leeren Wert.
ANTHROPIC_AUTH_TOKEN=ollama

# Mappe Claude Codes "claude-opus-X-Y" / "claude-sonnet-X-Y" / "claude-haiku-X-Y"
# auf Modellnamen, die dein lokales Backend serviert.
ANTHROPIC_DEFAULT_OPUS_MODEL=gemma4:26b-a4b
ANTHROPIC_DEFAULT_SONNET_MODEL=gemma4:26b-a4b
ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-oss:20b

claude

Oder pro Aufruf überschreiben:

claude --model gemma4:26b-a4b

Wenn ANTHROPIC_BASE_URL gesetzt ist, die URL aber nicht mit der richtigen Shape antwortet, fällt Claude Code nicht auf die Cloud zurück. Es wirft einen Fehler.


2. Context-Länge: der versteckte Failure-Mode

Claude Code ist kein Chat-Prompt. Vor deinem eigentlichen Request sieht das Backend:

  • Claude Codes System-Prompt (~6–10K Token allein)
  • Tool-Definitionen für Read / Edit / Bash / Grep / Glob / TodoWrite
  • Konversationshistorie
  • Datei-Auszüge und vollständige Reads
  • Diffs
  • Befehlsausgabe
  • Retry-/Error-Messages aus fehlgeschlagenen Tool-Calls

Das heißt: 8K- und 16K-Kontexte sind irreführende Tests. Sie können eine Chat-Frage beantworten, sind aber nicht genug für zuverlässiges agentisches Coding. Die Session überlebt eine Handvoll Turns, dann degradiert sie still — Datei-Edits werden abgeschnitten, Tool-Calls verlieren Argumente, der Loop verheddert sich.

Praktische Context-Stufen

ContextVerdiktWas passiert
8KKaputt für Claude CodeSystem-Prompt + Tools fressen das Window, bevor dein Code ankommt. Nur Chat.
16KNur für DemosWinzige Edits, kurze Sessions. Kein echter Modell-Test.
25KLM Studios genanntes MinimumReicht für kleine Tasks, wenn Tool-Calls zuverlässig sind.
32KEchtes Minimum (32K Context).Ollama empfiehlt diese Untergrenze. Default.
64KSweet Spot (64K Context).Beste Balance auf 32-GB+-Maschinen. Schafft mittlere Repos und Multi-File-Edits.
128K+Abnehmender GrenznutzenPrefill-Latenz und KV-Cache-Speicher steigen stark. Lohnt sich nur auf High-Memory-Servern, und nur für repo-weite Reads.

Apple-Silicon Context-Presets

MaschineEmpfohlener ContextHinweise
MacBook Air M5, 16 GB16K–24KKleinere Modelle nutzen (≤8B). 26B-A4B ist eng.
MacBook Air M5, 24 GB24K–32K32K ist das Ziel; andere Apps leicht halten.
MacBook Air M5, 32 GB32KBestes Air-Setup. Höher schlägt selten Thermal Throttling.
MacBook Pro M5 Pro, 24 GB32KBessere Sustained-Performance als Air bei gleichem Context.
MacBook Pro M5 Pro, 48/64 GB64KSweet Spot für ernsthaftes lokales Coding.
MacBook Pro M5 Max, 64/128 GB64K Default, 128K experimentell128K für repo-weite Analyse, nicht für jeden Edit-Loop.

Hinweis: Backend-Docs sind sich nicht einig — LM Studio sagt “ab 25K, höher für bessere Ergebnisse”, Ollama empfiehlt 32K. Nimm 32K als Cross-Backend-Baseline. “25K ist genug” zu lesen, ist der häufigste Fehler.


3. Claude-Code-Setup mit Ollama (nativ, v0.14.0+)

Ollama hat am 2026-01-16 die Anthropic-Messages-API-Kompatibilität angekündigt. Kein Proxy, kein LiteLLM, nichts.

# Context-Länge zuerst setzen — das ist der wichtigste Knopf
export OLLAMA_CONTEXT_LENGTH=32768   # 65536 auf einem Pro

export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_BASE_URL=http://localhost:11434

claude --model gemma4:26b-a4b

Cloud-gehostete Ollama-Modelle funktionieren auch:

claude --model glm-4.7:cloud
claude --model minimax-m2.1:cloud

Zwei bekannte Limits des Anthropic-Compat-Layers von Ollama (April 2026):

  • Kein Prompt-Caching. Anthropics cache_control greift nicht — jeder Claude-Code-Request verarbeitet System-Prompt und Konversationshistorie von Grund auf neu.
  • Kein tool_choice. Claude Code nutzt gelegentlich tool_choice, um einen bestimmten Tool-Call zu erzwingen. Ollamas Compat-Layer ignoriert das. Wenn es darauf ankommt, wählt Claude Code möglicherweise das falsche Tool und steckt im Loop fest.

4. Claude-Code-Setup mit LM Studio (nativ, 0.4.1+)

LM Studio hat den Anthropic-kompatiblen /v1/messages-Endpoint am 2026-01-30 hinzugefügt. Streaming, Tool-Calls und Message-Shape werden alle nativ unterstützt.

# Context auf mindestens 32K im LM Studio UI setzen (oder höher; siehe Abschnitt 2)
lms server start --port 1234

export ANTHROPIC_BASE_URL=http://localhost:1234
export ANTHROPIC_AUTH_TOKEN=lmstudio

claude --model openai/gpt-oss-20b

Für VS Code mit der Claude-Code-Extension (Env-Vars aus deiner Shell werden NICHT von VS Code geerbt):

// .vscode/settings.json
"claudeCode.environmentVariables": [
  { "name": "ANTHROPIC_BASE_URL", "value": "http://localhost:1234" },
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "lmstudio" }
]

Die Docs von LM Studio sagen “mindestens 25K”. Setz 32K. Siehe Abschnitt 2.


5. Claude-Code-Setup mit llama.cpp (Apple-Silicon-Fast-Path für Gemma 4 26B-A4B)

Wenn du auf Apple Silicon bist und absolut minimalen Overhead mit Gemma 4 26B-A4B willst, ist der Server von llama.cpp pro Token schneller als Ollama oder LM Studio. Du brauchst einen aktuellen Build (einer, der -hf für HuggingFace-Pulls und --jinja für Chat-Templates unterstützt).

./build/bin/llama-server \
  -hf ggml-org/gemma-4-26B-A4B-it-GGUF:Q4_K_M \
  --host 127.0.0.1 \
  --port 8080 \
  -ngl 99 \
  -c 65536 \
  --jinja
export ANTHROPIC_BASE_URL=http://localhost:8080
export ANTHROPIC_AUTH_TOKEN=llama-cpp
claude --model gemma-4-26B-A4B

Flags, die zählen:

  • -c 65536 setzt 64K Context (auf engeren Maschinen -c 32768).
  • -ngl 99 lagert alle Layer auf Metal/GPU aus.
  • --jinja ist erforderlich, damit das Chat-Template von Gemma 4 korrekt rendert. Ohne das formatieren Tool-Calls nicht und du siehst <unused24> / <unused49>-Token im Output.
  • -hf ggml-org/gemma-4-26B-A4B-it-GGUF:Q4_K_M zieht das GGUF direkt von HuggingFace.

Caveat: Die Anthropic-Compat von llama.cpp ist partiell. Funktioniert für Chat und einfaches Tool-Calling. Streaming-Shape und einige Anthropic-spezifische Request-Felder sind rauer als bei Ollama oder LM Studio. Wenn etwas seltsam bricht, fall auf Ollama zurück. llama.cpp ist der Speed-Play, nicht der Compatibility-Play.


6. Claude-Code-Setup mit vLLM (nativ + Tool-Parser)

vLLM liefert eine offizielle Claude-Code-Integration. Drei Dinge beim Server-Start: ein Tool-Calling-fähiges Modell, --enable-auto-tool-choice und der richtige --tool-call-parser.

vllm serve openai/gpt-oss-120b \
  --served-model-name my-model \
  --enable-auto-tool-choice \
  --tool-call-parser openai \
  --port 8000
export ANTHROPIC_BASE_URL=http://localhost:8000
export ANTHROPIC_API_KEY=dummy
export ANTHROPIC_AUTH_TOKEN=dummy
export ANTHROPIC_DEFAULT_OPUS_MODEL=my-model
export ANTHROPIC_DEFAULT_SONNET_MODEL=my-model
export ANTHROPIC_DEFAULT_HAIKU_MODEL=my-model

claude

Der Wert von --tool-call-parser hängt von der Modellfamilie ab — openai für die gpt-oss-Familie, llama3_json für Llama 3.x, hermes für Hermes. Falscher Parser → Tool-Calls kommen als Plain-Text zurück und Claude Codes edit/grep/bash-Tools machen still einen No-Op.


7. LiteLLM — für Fallbacks, nicht für Übersetzung

Da Ollama, LM Studio, llama.cpp und vLLM jetzt alle nativ Anthropic sprechen, ändert sich die Rolle von LiteLLM. Es ist nicht mehr “der Übersetzer” — es ist der Router für Fallbacks, Request-Logging, Per-Tenant-Keys und Rate-Limits. Auch die richtige Antwort, wenn deine einzige lokale Option ein OpenAI-kompatibler lokaler Endpoint ist.

# litellm-config.yaml
model_list:
  - model_name: claude-opus-4-7
    litellm_params:
      model: openai/my-vllm-model
      api_base: http://vllm:8000/v1

  - model_name: claude-sonnet-4-6
    litellm_params:
      model: ollama/gemma4:26b-a4b
      api_base: http://ollama:11434

  - model_name: claude-haiku-4-5
    litellm_params:
      model: anthropic/claude-haiku-4-5
      api_key: os.environ/ANTHROPIC_API_KEY

router_settings:
  fallbacks:
    - claude-opus-4-7: ["claude-haiku-4-5"]   # local fail → cloud Haiku

Der größte Einzelnutzen: wenn ein lokaler Tool-Call still scheitert, fällt LiteLLM transparent auf Cloud-Haiku zurück. Claude Code läuft weiter.


8. Häufige Fehler (die Error-Strings, nach denen Entwickler googeln)

tool_use parse error / invalid tool call / tool_use is not supported

Drei verschiedene Symptome, eine Ursache: das Modell emittiert keine tool_use-Content-Blöcke im Anthropic-Format.

Das tückischste Symptom ist das stille — Claude Code startet, druckt die Plain-Prosa-Antwort des Modells (“Ich würde die Datei so ändern…”) und nichts passiert. Kein File-Edit, kein Fehler.

Häufige Ursachen (April 2026):

  • vLLM: --enable-auto-tool-choice fehlt oder --tool-call-parser ist falsch.
  • Ollama: Modell wurde nicht für Tool-Calling trainiert (Stock llama3.x Instruct vermeiden).
  • llama.cpp: --jinja fehlt. Das Chat-Template rendert falsch und du siehst literale <unused24> / <unused49>-Token.
  • LM Studio: Modell-Datei ist okay, aber das geladene Preset nutzt das falsche Template.

context length exceeded / Modell stoppt mitten im Edit

Die Prompts von Claude Code überlaufen das konfigurierte Window. Die Session beendet vielleicht einen Turn, dann wird der nächste File-Edit still abgeschnitten. Fix: Context auf mindestens 32K erhöhen. Wenn du schon bei 32K bist und das immer noch trifft, liest das Modell zu aggressiv — weniger Tools oder kürzere File-Reads.

empty assistant response

Backend hat 200 OK mit leerem Content-Array zurückgegeben. Ursachen:

  • Streaming-SSE-Format-Mismatch (meist llama.cpp).
  • Tool-Call-Parser hat die Message verschluckt, weil er sie nicht parsen konnte.
  • Modell hat nur einen <unused24> / <unused49>-Token emittiert und der Parser hat den Rest verworfen.

Fix: Backend wechseln (Ollama oder LM Studio, falls du auf llama.cpp warst), oder llama.cpp auf einen Build mit gepatchtem Gemma-4-Chat-Template upgraden.

model not found / 404 the model X does not exist

Claude Code hat nach claude-opus-4-7 gefragt, aber das Backend serviert gpt-oss:20b oder gemma4:26b-a4b. Fixes:

  • ANTHROPIC_DEFAULT_OPUS_MODEL (plus _SONNET_ und _HAIKU_) auf den tatsächlichen Modellnamen des Backends setzen.
  • claude --model <backend-name> pro Aufruf nutzen.
  • Namen in LiteLLM mappen (das Feld model_name: ist das, wonach Claude Code fragt; model: ist das, was serviert wird).

messages: Extra inputs are not permitted (HTTP 422)

Manche Backends sind strenger als Anthropics eigenes. Sie lehnen Anthropic-spezifische Felder ab (cache_control, thinking, tools[].input_schema, metadata.user_id). Fix: Backend upgraden, oder eine kleine Middleware-Proxy laufen lassen, die unsupported Felder vor dem Forwarden strippt.

ANTHROPIC_BASE_URL ignoriert / Claude Code ruft immer noch die echte API

  • Env-Var wurde in .zshrc nach dem Shell-Start gesetzt — Terminal neu starten.
  • ~/.config/claude/config.json oder ein --api-key-Flag überschreibt die Env-Var.
  • VS Code: Env-Vars aus deiner Shell werden NICHT geerbt. Nutze claudeCode.environmentVariables in Workspace-Settings (Abschnitt 4).

echo $ANTHROPIC_BASE_URL in derselben Shell, die claude startet. Wenn leer, hast du ein Sourcing-Problem.


9. Debug-Flow

Wenn etwas bricht, geh diesen Baum durch, bevor du Backends wechselst:

  1. Hat das Modell geladen?
    • Nein → Quant-Größe vs RAM prüfen. 26B-A4B Q4 braucht ~16 GB frei; größere Quants brauchen mehr.
  2. Ist der Context mindestens 32K?
    • Nein → auf 32K (Air) oder 64K (Pro) erhöhen. Siehe Abschnitt 2.
  3. Sind Tool-Calls fehlerhaft? (Schau nach <unused24>, <unused49>, Plain-Prosa wo du einen Edit erwartet hast.)
    • Ja → in den nativen Anthropic-Modus wechseln (Ollama/LM Studio), oder bei vLLM --tool-call-parser verifizieren, oder bei llama.cpp --jinja ergänzen.
  4. Stoppt Claude Code mitten im Edit?
    • Ja → Context-Erschöpfung. Context-Targets in deinen Tools senken, oder schnellere Quant nutzen, damit das Modell Turns beendet, bevor der Window-Reuse-Cycle einsetzt.
  5. Halluziniert das Modell Dateien, die nicht existieren?
    • Ja → das Modell ruft Read nicht vor Edit. Eine CLAUDE.md-Regel ergänzen, die Read-vor-Edit verlangt, oder ein tool-genaueres Modell nutzen (Gemma 4 26B-A4B ist hier solide).

10. Smoke-Test

Verifiziere dein Setup mit einem Prompt. Frag Claude Code:

Erstelle eine kleine FastAPI-App mit einem /health-Endpoint, füge einen pytest-Test hinzu, lass pytest laufen und behebe Failures.

Besteht, wenn:

  • Es Dateien korrekt liest/schreibt (keine halluzinierten Pfade).
  • Es den Test-Befehl ausführt (du echte pytest-Ausgabe siehst).
  • Es einen Failure patcht (z.B. fehlende Dependency), ohne den Context zu verlieren.
  • Es das Tool-Call-Format nicht verliert (kein <unused24> / <unused49>-Leak).
  • Es nicht nach dem ersten Edit abschneidet.

Erwartetes Terminal-Feel:

✓ model loaded     (gemma4:26b-a4b, Q4_K_M)
✓ context: 32768
✓ tool call parsed (Edit)
✓ edited file      (app.py)
✓ tool call parsed (Bash)
✓ tests passed

Wenn du nicht alle fünf siehst, geh den Debug-Flow oben durch.


11. Kompatibilitätsmatrix (April 2026)

BackendNative Anthropic-APITool-CallsContext-UntergrenzeHinweise
Ollama (≥ v0.14.0)JaModellabhängig32K Context (Cross-Backend-Baseline)Einfachstes Setup. Kein Prompt-Caching, kein tool_choice (siehe Abschnitt 3).
LM Studio (≥ 0.4.1)JaJa (out of the box)Stated 25K, nimm 32KStreaming + tool_use-Blöcke nativ unterstützt. VS-Code-Extension nimmt Workspace-Env-Vars.
llama.cpp ServerPartiellJa mit --jinja32K, 64K Context auf ProNiedrigster Overhead auf Apple Silicon. Rauere Anthropic-Compat. Bester Pfad für Gemma 4 26B-A4B.
vLLMJaJa mit --enable-auto-tool-choice + korrektem ParserModellabhängigBester Throughput. Erfordert korrekten Parser pro Modellfamilie.
LiteLLMRoutet zu jedem BackendWas das Backend unterstütztn/aFür Fallbacks und Logging, oder um einen OpenAI-kompatiblen lokalen Endpoint als Anthropic zu wrappen.
Direct Ollama < v0.14.0NeinNeinn/aUpgraden.

12. Hardware × Modell × Context × Backend (die Cheat-Sheet-Tabelle)

Ein Entwickler sollte nicht raten müssen, was zu nutzen ist:

MaschineModellContextBackendVerdikt
MacBook Air M5, 16 GBGemma 4 E4B16K–24KLM Studiobrauchbar für kleine Tasks
MacBook Air M5, 24 GBGemma 4 26B-A4B Q424K–32KOllama / LM Studiogut
MacBook Air M5, 32 GBGemma 4 26B-A4B Q432KOllama / LM Studiobestes Air-Setup
MacBook Pro M5 Pro, 48 GBGemma 4 26B-A4B Q4/UD-Q464Kllama.cpp / LM StudioSweet Spot
MacBook Pro M5 Max, 64 GB+Gemma 4 26B-A4B oder 31B64K–128Kllama.cpp / vLLMbestes Lokal

Das ist die meistkopierte Tabelle dieses Guides. Bookmarken.


13. Gemma 4 26B-A4B: der Apple-Silicon-Sweet-Spot

Für lokales Mac-Claude-Code ist die herausragende Gemma-4-Variante 26B-A4B-it, nicht die dichte 31B. Gründe:

  • Google hat Tool-Use direkt in Gemma 4 reintrainiert (nicht als Fine-Tune drangeschraubt). Es funktioniert beim ersten Versuch, nicht erst nach drei Retries.
  • Die 26B MoE aktiviert nur ~3,88 B Parameter pro Inference, also liegt die Latenz im Bereich eines 4-B-Modells — rund 300 Token/Sek auf M2 Ultra.
  • Starkes Tool-Use-Verhalten, gute Coding-Qualität für private/lokale Workflows.
  • Passt bei brauchbaren Context-Größen auf High-Memory-MacBooks.

Warum 26B-A4B statt 31B?

  • Schnellere Tool-Calls — jeder Claude-Code-Turn hängt an Tool-Call-Latenz, nicht an Single-Shot-Qualität.
  • Niedrigerer Active-Parameter-Count hält Prefill billig.
  • Besser für Laptops — 31B dichtgepackt braucht mehr RAM und mehr Thermal-Headroom.
  • Genug Qualität für iteratives Coding; der Agent-Loop zählt mehr als Peak-IQ.
  • 31B kann für Single-Shot-Antworten besser sein — aber Claude Code ist viele kleine Turns, nicht eine große Antwort.

Für lokales Coding mit Gemma 4 speziell: nimm 26B-A4B, außer du bist auf einem 64-GB+-Pro und hast gemessen, dass 31B Q4 auf deiner Hardware tatsächlich Turns schneller beendet.


14. Andere Modell-Picks für Claude Code (April 2026)

Wenn Gemma 4 nicht verfügbar ist oder du vergleichen willst:

  • gpt-oss:20b — einfacher Einstieg. Tool-Calling zuverlässig, läuft auf einer einzelnen anständigen GPU. In den offiziellen Claude-Code-Blogposts von Ollama und LM Studio empfohlen.
  • gpt-oss:120b — deutlich klüger auf echten Codebases. Die vLLM-Claude-Code-Integration nutzt das als Beispiel. Braucht ernsthaft VRAM.
  • qwen3-coder — gezielt für Coding gebaut. Starke Tool-Call-Performance auf Ollama. In Community-Threads im März/April 2026 häufig als stärkster lokaler Pick für Claude Code genannt.
  • qwen3.5-Familie — die 35B-MoE-Varianten gelten als die stärksten agentischen Coding-Open-Modelle in dieser Größenklasse. Tool-Call-Support pro Quant verifizieren.
  • glm-4.7-flash / glm-4.7:cloud — starker agentischer Coder. Verfügbar als Ollama-Cloud-Modell (keine lokale GPU nötig).
  • minimax-m2.1:cloud — neuere Ollama-Cloud-Option, agentic-tuned.

Was zu vermeiden ist: Stock-llama3.x-Instruct-Modelle ohne Tool-Fine-Tuning. Sie sehen aus, als würden sie funktionieren, scheitern dann still bei File-Edits.


15. Setups, die ich vermeiden würde

  • 8K Context. Zu klein für Claude Code. Der System-Prompt frisst es, bevor dein Code ankommt.
  • 16K Context. Nur Demos. Beurteile ein Modell nicht nach 16K-Verhalten.
  • Alte llama.cpp-Builds mit Gemma 4. Kein --jinja oder kein gepatchtes Chat-Template → <unused24> / <unused49>-Token-Leak.
  • 128K Context auf einem 32-GB-Laptop. KV-Cache + Prefill-Latenz-Steuer > Nutzen.
  • Modellqualität beurteilen, bevor Tool-Calls stabil sind. Erst Parser/Template fixen, dann Modell evaluieren.
  • Über LiteLLM routen, wenn das Backend bereits nativ Anthropic ist. Hop für nichts — LiteLLM nur für Fallbacks oder zum Wrappen eines OpenAI-kompatiblen lokalen Endpoints nutzen.

16. Wiederverwendbares Startup-Skript

Drop in start-claude-code-local.sh und chmod +x. Default 32K Context, via Env überschreibbar.

#!/usr/bin/env bash
set -euo pipefail

export OLLAMA_CONTEXT_LENGTH="${OLLAMA_CONTEXT_LENGTH:-32768}"
export ANTHROPIC_BASE_URL="${ANTHROPIC_BASE_URL:-http://localhost:11434}"
export ANTHROPIC_AUTH_TOKEN="${ANTHROPIC_AUTH_TOKEN:-ollama}"
export ANTHROPIC_DEFAULT_OPUS_MODEL="${ANTHROPIC_DEFAULT_OPUS_MODEL:-gemma4:26b-a4b}"
export ANTHROPIC_DEFAULT_SONNET_MODEL="${ANTHROPIC_DEFAULT_SONNET_MODEL:-gemma4:26b-a4b}"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="${ANTHROPIC_DEFAULT_HAIKU_MODEL:-gpt-oss:20b}"

echo "Starte Ollama mit context=$OLLAMA_CONTEXT_LENGTH"
ollama serve &
OLLAMA_PID=$!

# Auf Ollama warten
until curl -sf "$ANTHROPIC_BASE_URL/api/version" > /dev/null; do
  sleep 0.5
done

echo "Starte Claude Code → $ANTHROPIC_BASE_URL"
echo "Modell: $ANTHROPIC_DEFAULT_OPUS_MODEL"

claude

kill $OLLAMA_PID 2>/dev/null || true

Für LM Studio ollama serve durch lms server start --port 1234 ersetzen und Env-Vars entsprechend anpassen.

Dieses Skript (und Ergänzungen für andere Backends, sobald sie kommen) lebt im Companion-Repo:

github.com/renezander030/local-ai-coding-stackgit clone, chmod +x scripts/start-claude-code-local.sh, run.


17. Produktionsempfehlung

Für echte Arbeit lass Claude Code nicht direkt mit einem einzelnen lokalen Endpoint reden, ohne Fallback-Pfad:

Claude Code
   │  ANTHROPIC_BASE_URL
   ▼
LiteLLM (Router + Logger)
   │  primary
   ▼
Ollama / LM Studio / llama.cpp / vLLM (lokal)
   │  bei Tool-Call-Failure oder 5xx
   ▼
Cloud Claude Haiku (Fallback)
   │
   ▼
Audit-Log

Modell-Swaps ohne Claude Code neu zu starten; transparenter Fallback, wenn lokales Tool-Calling still scheitert; Request-Logs, die du grepen kannst, wenn etwas schiefgeht. Dasselbe Five-Contract-Pattern wie agent-approval-gate.


18. Wann lokale Modelle die falsche Wahl sind

  • Repo-weite Refactors. Multi-Step-Tool-Flows kumulieren stille Tool-Call-Failures. Lokale Fine-Tunes verlieren schnell an Genauigkeit.
  • Sicherheitskritische Edits ohne Approval-Gate. Nutze agent-approval-gate und die Lokal-vs-Cloud-Frage wird zweitrangig.
  • Tool-lastige Sessions (50+ Tool-Calls). Jeder stille Failure kumuliert.
  • Alles, was nach deiner Zeit abgerechnet wird. Ein gescheiterter lokaler Tool-Call kostet deine Zeit; ein erfolgreicher Haiku-Call kostet ungefähr $0,001.

Lokales Claude Code passt für: Chat-only-Assist auf privatem Code, Klassifikations-/Summarization-Sub-Steps, air-gapped Environments.


Quellen

Changelog

2026-04-29

2026-04-28

  • TL;DR-Cheat-Sheet, “Empfohlenes Setup”, Smoke-Test, Debug-Flow, wiederverwendbares Startup-Skript, Hardware × Modell × Context × Backend-Tabelle ergänzt.
  • Error-String-Sektion um <unused24> / <unused49>-Template-Leak-Symptome erweitert.
  • 26B-A4B vs 31B-Vergleich ergänzt.
  • “Setups, die ich vermeiden würde” ergänzt.
  • Update-Log → Changelog umbenannt.
  • Gemma-4-26B-A4B-Context-Empfehlungen ergänzt.
  • MacBook Air vs Pro Presets ergänzt.
  • 32K / 64K Claude-Code-Guidance ergänzt.
  • Backend-Coverage neu geschrieben: Ollama, LM Studio, vLLM alle nativ Anthropic; llama.cpp als Apple-Silicon-Fast-Path ergänzt.
  • LiteLLM als Fallback-Router (und OpenAI-Compat-Wrapper) repositioniert, nicht als Übersetzer.

2026-04-22

  • Initialer Publish (Englisch).
Die Kontextschicht für Ihre KI-Agenten

Ihre Agenten antworten aus dem, was die Suche gerade findet, und oft ist das der Stand vom letzten Quartal. Ich baue die Kontextschicht, aus der sie antworten und handeln: einen temporalen Wissensgraphen, der jeden Fakt mit Quelle und Gültigkeitszeitraum hält, mit den Rechten der jeweiligen Person liest und nichts ohne Freigabe einer Person schreibt. Auf Ihrem eigenen Tenant, nach Stunden abgerechnet, Schritt für Schritt.

Ihr Automatisierungskonzept in 24 Stunden

Zwei Felder. Ich antworte innerhalb von 24 Stunden mit einem schriftlichen Konzept: entweder mit Stundenschätzung samt Umsetzungsdauer oder mit einer klaren Absage inklusive Begründung.

Vorher sehen, was Sie bekommen: Beispiel-Konzept →

Ihre Angaben werden ausschließlich zur Beantwortung dieser Anfrage verwendet — keine Weitergabe, kein Newsletter. Datenschutz

Lieber erst sprechen? 30-Minuten-Gespräch buchen →

Anfrage eingegangen

Ich antworte innerhalb von 24 Stunden mit einer ehrlichen Einschätzung.

Lieber direkt sprechen? 30-Minuten-Roadmap-Gespräch →
KI-Pilot prüfen lassen