Chris EichlerAI-first Product
& Marketing

FreeLLMAPI einrichten


Was FreeLLMAPI macht

FreeLLMAPI ist ein Open-Source-Gateway (MIT-Lizenz), das auf deinem eigenen Rechner läuft. Es spricht zwei Dialekte: die OpenAI-API und die Anthropic-Messages-API. Darum lässt es sich mit fast jedem Tool verbinden, das du schon nutzt, auch mit Claude Code.

Dahinter passiert Folgendes: Du hinterlegst Gratis-Keys bei den Anbietern, zum Beispiel Google, Groq oder Mistral. Bei jeder Anfrage wählt ein Router das beste verfügbare Modell. Läuft bei einem Anbieter das Kontingent voll (HTTP 429) oder gibt es einen Serverfehler, probiert er das nächste Modell.

Pro Key zählt er mit, damit du unter den Limits bleibst. Deine Keys liegen verschlüsselt (AES-256-GCM) in einer lokalen SQLite-Datenbank. Deine Apps sehen nur einen einzigen Schlüssel mit dem Präfix freellmapi-.

Die Zahlen aus dem README, Stand 29. Oktober 2026: 34 Anbieter, 635 kostenlose Modell-Endpunkte (584 davon für Chat) und zusammen rund 7,4 Milliarden Tokens im Monat an gelistetem Gratis-Kontingent. Das ist die Summe der Anbieter-Limits laut Katalog.

Wie viel davon bei dir ankommt, hängt von den Keys ab, die du einträgst. Das Repo hat inzwischen über 40.000 Sterne auf GitHub.

Was du brauchst

  • Docker für die Ein-Zeilen-Installation. Alternativ die Desktop-App für macOS und Windows.
  • Node.js ab Version 20.18, nur für den Setup-Befehl von Claude Code.
  • Zwei bis drei Gratis-Keys von KI-Anbietern. Für den Start reichen Google (AI Studio), Groq und Mistral. Wo du sie anlegst, steht bei den Anbietern selbst.

Schritt 1: Gateway starten

curl -fsSL https://freellmapi.co/install.sh | bash

Das Skript legt ~/freellmapi an, erzeugt einen Verschlüsselungsschlüssel, lädt das Docker-Image und startet den Container. Du kannst das Skript vorher lesen: freellmapi.co/install.sh. Erneutes Ausführen ist sicher, deine .env und der Schlüssel bleiben erhalten, nur der Container wird aktualisiert.

Öffne danach http://localhost:3001. Server-Installationen (Docker, Ein-Zeilen-Skript) sind durch ein Konto mit E-Mail und Passwort geschützt. Die Desktop-App meldet sich selbst an.

Zwei Alternativen, falls du das Skript nicht magst:

  • Docker Compose: Repo klonen, mit openssl rand -hex 32 einen ENCRYPTION_KEY erzeugen, in eine .env schreiben (zusammen mit PORT=3001) und docker compose up -d ausführen.
  • Desktop-App: .dmg (macOS) oder .exe (Windows) aus den GitHub Releases. Der einzige Zugang ist der Unified Key im Tray-Popover.

Schritt 2: Gratis-Keys eintragen

  1. Öffne die Seite Keys im Dashboard.
  2. Wähle einen Anbieter und trage deinen Gratis-Key ein. Ein Punkt neben jedem Key zeigt den Status und wann er zuletzt geprüft wurde.
  3. Sortiere unter Fallback Chain die Reihenfolge, in der der Router Modelle probiert. Oben stehen die, die du zuerst nutzen willst.
  4. Kopiere im Kopf der Keys-Seite deinen Unified Key. Er beginnt mit freellmapi- und ist der einzige Schlüssel, den deine Tools je sehen.

Fang mit drei Anbietern an. Mehr Keys bedeuten mehr Gratis-Kontingent und mehr Ausweichmöglichkeiten, aber auch mehr AGB, die du akzeptiert hast (dazu unten mehr).

Schritt 3: Testen

curl -i http://localhost:3001/v1/chat/completions \
  -H "Authorization: Bearer freellmapi-dein-key" \
  -H "Content-Type: application/json" \
  -d '{"model": "auto", "messages": [{"role": "user", "content": "Sag Hallo in einem Satz."}]}'

"model": "auto" überlässt dem Router die Wahl. In den Antwort-Headern steht X-Routed-Via: anbieter/modell: So siehst du, wer wirklich geantwortet hat. Musste der Router ausweichen, kommt X-Fallback-Attempts dazu.

Schritt 4: Claude Code umleiten

Claude Code erwartet die Wurzel-URL des Servers, ohne /v1, weil es den Pfad der Anthropic-API selbst anhängt. Es gibt drei Wege.

Variante A: Setup-Befehl. Er liest die Modelle aus deinem Live-Katalog, legt ein Backup deiner Konfiguration an und führt die Änderung mit der bestehenden zusammen:

npx freellmapi setup-claude --url http://localhost:3001 --api-key freellmapi-dein-key --dry-run
npx freellmapi setup-claude --url http://localhost:3001 --api-key freellmapi-dein-key

Der erste Aufruf zeigt dir nur den Unterschied, der zweite schreibt.

Variante B: launch. Startet Claude Code mit den Zugangsdaten nur für diesen einen Lauf, es landet nichts in einer Konfigurationsdatei:

export FREELLMAPI_API_KEY=freellmapi-dein-key
npx freellmapi launch

Für das Überbrücken eines leeren Limits ist das mein Weg: Du startest die Gratis-Variante bewusst, und dein normales Setup bleibt, wie es ist.

Variante C: von Hand.

export ANTHROPIC_BASE_URL=http://localhost:3001
export ANTHROPIC_AUTH_TOKEN=freellmapi-dein-key
claude

Nimm ANTHROPIC_AUTH_TOKEN, nicht ANTHROPIC_API_KEY. Claude Code behandelt einen gesetzten ANTHROPIC_API_KEY als konkurrierende Anmeldung und startet gar nicht erst.

Welche Gratis-Modelle hinter den Claude-Namen stecken, steuerst du im Dashboard unter Keys, Reiter Anthropic: Jede Familie (default, opus, sonnet, haiku) läuft auf auto oder auf ein Modell, das du festlegst.

Einsatzfall 1: Das leere Claude-Limit überbrücken

Das ist der Grund, warum ich das Tool überhaupt zeige. Dein Limit ist leer, der Reset ist Stunden entfernt, und du willst weiterkommen. Du startest Claude Code über FreeLLMAPI (Variante B) und gibst ihm Aufgaben, die klein genug für ein schwächeres Modell sind:

  • Boilerplate und Konfigurationsdateien schreiben
  • Tests zu bestehendem Code ergänzen
  • Variablen umbenennen, Dateien umstrukturieren, Kommentare und Doku schreiben

Meine Faustregel: Für Fleißarbeit reicht das, für anspruchsvolles Coding wartest du lieber, bis dein Limit zurück ist. Entscheidungen über die Architektur gehören nicht auf ein Gratis-Modell, das am Nachmittag schon halb ausgelastet ist (dazu mehr bei den Grenzen). Brauchst du für Code ein anderes Verhalten als für Chat, setzt du den Header X-FreeLLM-Task-Type: code. Er verschiebt die Gewichtung des Routers leicht zugunsten von Intelligenz statt Tempo.

Einsatzfall 2: Stapelverarbeitung per Skript

Dasselbe Gateway bedient auch jedes OpenAI-kompatible Skript. Du ersetzt nur die Basis-URL. Ein Beispiel: Kundennachrichten nach Stimmung sortieren.

from openai import OpenAI

client = OpenAI(base_url="http://localhost:3001/v1", api_key="freellmapi-dein-key")

texte = ["Der Versand dauert ewig.", "Super Support, danke!", "Wie kündige ich?"]

for text in texte:
    antwort = client.chat.completions.create(
        model="auto:fast",
        messages=[
            {"role": "system", "content": "Antworte mit genau einem Wort: positiv, negativ oder neutral."},
            {"role": "user", "content": text},
        ],
    )
    print(text, "->", antwort.choices[0].message.content.strip())

auto:fast rankt die Modelle nach gemessenem Tempo. Es gibt weitere Strategien: auto:smart (höchste Intelligenz), auto:reliable (jüngste Erfolgsquote) und auto:balanced (der Standardmix). Bei Hunderten Texten läuft das Kontingent einzelner Anbieter irgendwann voll, der Router weicht dann aus, und dein Skript merkt davon nichts. Das Gateway kennt außerdem Embeddings (/v1/embeddings), Transkription und Bildgenerierung, soweit ein Anbieter in deiner Liste sie kostenlos anbietet.

Einsatzfall 3: Fusion als zweite Meinung

Mit dem virtuellen Modell fusion schickt der Router deine Frage parallel an mehrere verschiedene Gratis-Modelle. Ein Richter-Modell baut aus den Entwürfen eine Antwort. Das taugt für Dinge, bei denen eine einzelne Antwort zu zufällig wäre: eine Entscheidung gegenprüfen, einen Plan auf Lücken abklopfen oder Code auf Schwächen lesen.

curl http://localhost:3001/v1/chat/completions \
  -H "Authorization: Bearer freellmapi-dein-key" \
  -H "Content-Type: application/json" \
  -d '{"model": "fusion", "messages": [{"role": "user", "content": "Prüfe diesen Plan auf Schwächen: ..."}]}'

Welche Modelle im Panel sitzen und welches richtet, stellst du im Dashboard unter Fusion ein oder pro Anfrage über das Feld fusion. Jede Teilanfrage läuft durch das normale Routing und verbraucht Kontingent. Eine Fusion-Anfrage kostet dich also ein Vielfaches einer normalen.

Typische Fehler

  • Claude Code startet nicht und meldet einen Konflikt. Du hast ANTHROPIC_API_KEY gesetzt. Nimm ANTHROPIC_AUTH_TOKEN.
  • Verbindung schlägt fehl. Prüfe die Basis-URL. Claude Code bekommt http://localhost:3001, OpenAI-kompatible Tools bekommen http://localhost:3001/v1.
  • Das Dashboard lädt von einem anderen Gerät nicht. Der Container hört nur auf 127.0.0.1. Starte ihn mit HOST_BIND=0.0.0.0, aber nur im Heimnetz.
  • Anbieter sind aus Docker nicht erreichbar, vom Rechner aus schon. Ein Proxy auf 127.0.0.1 gilt im Container nicht. Setze PROXY_URL=socks5h://host.docker.internal:7890 (Port anpassen) und lass den Proxy Verbindungen von außerhalb von Loopback zu.
  • Passwort vergessen (Server-Installation). Klicke auf der Login-Seite auf „Forgot password?". Der Code steht im Server-Log (docker compose logs -f freellmapi) und gilt 15 Minuten.
  • Ein Anbieter liefert plötzlich 429 oder Auth-Fehler. Anbieter ändern Gratis-Stufen ohne Vorwarnung. Der Katalog gleicht das automatisch aus, mehr dazu gleich.

Grenzen, die du kennen solltest

Die Grenzen stehen im Repo selbst, ich gebe sie hier ungeschönt weiter:

  • Kein Dauerzugriff auf die starken Modelle. Der Katalog enthält auch Modelle der Spitzenklasse. Genau die haben aber die kleinsten Tageskontingente, die längsten Warteschlangen und das höchste Risiko, kurzfristig gestrichen zu werden.
  • Die Qualität sinkt im Tagesverlauf. Deine Top-Modelle erreichen zuerst ihre Tageslimits. Danach fällt der Router in deiner Kette auf kleinere Modelle zurück. Um Mitternacht UTC setzt sich das zurück.
  • Die Latenz schwankt stark. Cerebras und Groq sind sehr schnell, andere nicht. Du bekommst, was gerade frei ist.
  • Es gibt keine Zusage zur Verfügbarkeit. Wer verlässliche Antworten braucht, nimmt einen bezahlten Anbieter mit Vertrag.
  • Es ist ein Projekt zum Ausprobieren, nicht für die Produktion. So steht es im Disclaimer des Repos. Baust du etwas Echtes darauf, tausche vor dem Livegang gegen eine bezahlte API.
  • Die AGB jedes Anbieters gelten weiter, auch wenn der Verkehr durch das Gateway läuft. Das Repo hat sie im Mai 2026 geprüft: Bei Cohere rät es ab, bei Google, NVIDIA und Z.ai zur Vorsicht. Prüf die Nutzungsbedingungen der Anbieter, deren Keys du einträgst.
  • Nur lokal betreiben. Es gibt keine Mehrbenutzer-Anmeldung.

Zum Katalog: Free-Installationen holen ihn aus einem Monats-Snapshot. Ein neues Modell kommt dort 30 Tage später an als bei der bezahlten Variante (19 US-Dollar im Jahr, laut README). Funktionieren tut alles auch ohne. Laut README bleiben Prompts, Antworten und Provider-Keys bei dir.

Next Steps

  • Füge Anbieter einzeln hinzu und schau im Dashboard, welche Modelle der Router zuerst nimmt.
  • Lege im Dashboard eine benannte Fallback-Kette coding an und sprich sie mit auto:coding an.
  • Lies die Doku im Repo für weitere Agenten wie Codex CLI, Cline, Aider oder Cursor. Die meisten richtest du mit npx freellmapi setup-<agent> ein.

Inspiration zu KI-first Product Management & Marketing, direkt in dein Postfach.

Kein Spam, jederzeit abbestellbar

Chris Eichler