llamafile: komplettes lokales LLM als EINE ausfuehrbare Datei — ohne Installation
Modellgewichte, Inferenz-Engine und Webserver in EINER ausfuehrbaren Datei: lokales LLM ohne Installation, cross-OS, mit OpenAI-kompatibler API.
Mozillas llamafile packt Modellgewichte, die Inferenz-Engine (llama.cpp) und einen Webserver in eine einzige ausfuehrbare Datei. Dank Cosmopolitan Libc entsteht ein „Actually Portable Executable", das ohne Installation, Runtime oder Container auf Linux, macOS, Windows, FreeBSD und OpenBSD laeuft. Fuer dich als Profi ist das der schnellste Weg zu einem reproduzierbaren, vollstaendig offline laufenden LLM mit OpenAI-kompatibler REST-API — ideal, wenn keine Daten den Rechner verlassen duerfen (DSGVO).
Wie es funktioniert
- Eine Binary enthaelt Engine + Webserver + UI + Modellgewichte — keine externen Abhaengigkeiten, kein
pip, kein Docker. - Das APE-Format wird je OS unterschiedlich interpretiert: Linux liest die ELF-Header, Windows fuehrt es als PE aus, macOS bootstrappt beim ersten Start nach Mach-O.
- Beim Start wird sowohl eine Web-Chat-UI auf
http://127.0.0.1:8080/als auch eine OpenAI-kompatible API unter/v1bereitgestellt — bestehende Clients (LangChain, Haystack, SDKs) zeigen einfach dorthin. - Ohne GPU laeuft alles auf der CPU; llamafile faellt automatisch zurueck.
Herunterladen und starten
- Fertiges llamafile (z. B. ein Llama-3.2- oder Qwen3-Modell) aus den Mozilla-AI-Releases oder von Hugging Face laden.
- Auf Linux/macOS/BSD ausfuehrbar machen und starten:
chmod +x ./model.llamafile ./model.llamafile - Auf Windows die Datei in
model.exeumbenennen und ausfuehren. Beachte: Windows hat ein 4-GB-Limit fuer ausfuehrbare Dateien — groessere Modelle entweder unter WSL starten oder als externe Gewichte laden (siehe unten). - Ohne Modus-Flag startet der Combined Mode: Webserver auf
:8080plus Terminal-Chat gleichzeitig. Fuer reinen Headless-Betrieb:./model.llamafile --server --nobrowser --host 0.0.0.0 --port 8080
Modi und wichtige Flags
--server— nur HTTP-Server (Web-UI + API),--nobrowserunterdrueckt das Auto-Oeffnen des Browsers.--cli— One-Shot-Inferenz im Terminal, Prompt via-p "...", Bild fuer multimodale Modelle via--image.--chat— interaktiver Terminal-Chat mit/-Befehlen.-m datei.gguf— externe Gewichte mit dem schlanken Launcher kombinieren (umgeht das Windows-4-GB-Limit).--ngl 999— moeglichst viele Transformer-Layer auf NVIDIA/AMD-GPU auslagern (so viele wie passen).--ctx-size,--temp,--host,--port— Kontextfenster, Temperatur, Bind-Adresse, Port.
Die OpenAI-kompatible API nutzen
Sobald der Server laeuft, sprichst du ihn wie OpenAI an — der API-Key ist ein Platzhalter, da lokal nicht geprueft:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"model": "local",
"messages": [{"role": "user", "content": "Fasse DSGVO Art. 9 in einem Satz zusammen."}]
}'
In Python reicht der OpenAI-Client mit base_url="http://localhost:8080/v1" und api_key="no-key". So portierst du bestehenden GPT-Code ohne Logikaenderung auf eine rein lokale Instanz.
DSGVO und Sicherheit
- Keine Telemetrie, kein Cloud-Call: Prompts und Antworten verlassen den Rechner nicht — die einfachste Basis fuer einen DSGVO-konformen, auch air-gapped betreibbaren LLM-Dienst.
- Aeltere llamafile-Linien sandboxen den HTTP-Server unter Linux/OpenBSD per
pledge()und SECCOMP (deaktivierbar mit--unsecure); nach dem Start hat der Server keinen Dateisystem-Zugriff mehr. Achtung: Im 0.10.x-Rebuild wurde dieser Sandbox-Layer entfernt — verlasse dich auf der jeweiligen Version nicht blind darauf, sondern isoliere selbst (eigener User, Firewall, kein Bind auf0.0.0.0in unsicheren Netzen).
Profi-Tipp: Trenne Engine und Gewichte. Mit dem ~25-MB-Launcher plus -m modell.gguf tauschst du Modelle aus, ohne mehrere GB grosse Binaries vorzuhalten — und du musst die GGUF-Datei vorher zipalign-en, sonst wird sie in den RAM kopiert statt per mmap eingeblendet, was den Speicherbedarf verdoppelt.