Lokale AI-Coding-Agents auf dem Mac: So richtest du sie ein
Warum Lokal Manchmal Besser Ist
Jeder kennt das Szenario: Mitten im Flow beim Programmieren, die Gedanken fließen endlich – und dann fällt das Internet aus. Dein Cloud-basierter AI-Assistent ist plötzlich worthless, und du starrst ratlos auf deinen Code.
Genau das ist mir neulich passiert. Und es hat mich endlich dazu gebracht, einen potenten AI Coding Agent komplett lokal zu betreiben. Was ich herausgefunden habe? Mit dem richtigen Setup erreichst du auf Apple Silicon erstaunlich ordentliche Performance – oft besser als speziell für den Mac optimierte Lösungen.
Das Setup, Das Wirklich Funktioniert
Nach reichlich Testarbeit und Benchmarking hat sich folgende Konfiguration auf meinem M1 Max mit 64 GB Unified Memory als optimal herauskristallisiert:
Der Kern-Stack:
- llama.cpp mit Metal-Beschleunigung
- Gemma 4 26B-A4B im GGUF-Format (quantisiert auf Q4)
- Multi-Token Prediction (MTP) Draft Model für spekulatives Decoding
- Gemma 4 Multimodal Projector für Screenshot-Unterstützung
- Pi als terminalbasierter Coding Agent
Klar, das ist nicht das theoretisch stärkste Setup da draußen. Aber es trifft den Sweet Spot für echte Nutzbarkeit. Du willst Geschwindigkeit in Tokens pro Sekunde – nicht Minuten pro Antwort.
Die Zahlen, Die Zählen
Ich habe durchgehend den gleichen Prompt für alle Konfigurationen gebenchmarkt:
"Schreibe eine kompakte Python-Funktion, die einen Unified Diff parst und die geänderten Dateipfade zurückgibt. Erkläre dann zwei Edge Cases."
Jeder Test hat etwa 128 Tokens generiert – das gibt eine faire Vergleichsbasis für die Generierungsgeschwindigkeit.
Baseline Performance:
Gemma 4 direkt durch llama.cpp mit Metal brachte es auf 58,2 Tokens pro Sekunde. Verwendbar, aber ehrlich gesagt? Im echten Coding-Alltag mit mehreren Tool-Aufrufen und Wartezeiten fühlt sich das zäh an.
Der MTP-Unterschied:
Hier wird es spannend. Multi-Token Prediction erlaubt dem Model, mehrere Tokens vorauszusagen, korrekte Vorhersagen zu akzeptieren und falsche zurückzurollen. Mit dem Q8 MTP Draft Model aktiviert, sprang die Performance auf 72,2 Tokens pro Sekunde – ein Plus von 24% ohne jede Änderung am Hauptmodel.
Die Prompt-Verarbeitung blieb praktisch gleich (rund 297-299 Tokens/Sekunde), aber die Generierungsgeschwindigkeit ist das, was für Agent-Workflows zählt. Du schickst schließlich nicht ständig neue Prompts – du wartest darauf, dass das Model Antworten generiert, Entscheidungen trifft und Tools ausführt.
Ich habe Draft Token Counts von 1 bis 6 getestet, und auf meinem M1 Max liegt der Sweet Spot bei 3 Draft Tokens. Werte über 4 haben tatsächlich angefangen zu bremsen – macht Sinn, denn mehr Spekulation bedeutet mehr verschwendete Arbeit, wenn Vorhersagen falsch sind.
llama.cpp vs. MLX: Der überraschende Gewinner
Was mich wirklich überrascht hat: Ich hatte erwartet, dass MLX (Apples natives ML-Framework) dominiert, schließlich ist es speziell für Apple Silicon optimiert. Die Realität sah anders aus.
| Runtime | Generierung tok/s | |---------|-------------------| | llama.cpp Metal + MTP | 72.2 | | llama.cpp Metal | 58.2 | | MLX-LM (Unsloth 4-bit) | 45.8 | | MLX-LM (standard 4-bit) | 43.9 | | MLX-LM (OptiQ 4-bit) | 38.1 |
Llama.cpp mit MTP war rund 58% schneller als die beste MLX-Konfiguration. Die Jahre an Optimierungsarbeit, die in llama.cpp geflossen sind, haben sich definitiv gelohnt – auf macOS läuft es hervorragend, obwohl es plattformübergreifend entwickelt wurde.
Vision-Fähigkeiten dazu
Für eine vernünftige Coding Agent Experience willst du Screenshots schicken können. Vielleicht soll der Agent sehen, was er gebaut hat, oder eine UI-Änderung überprüfen, die du gerade gemacht hast.
Das Problem: Nur Gemma 4 12B ist nativ multimodal. Das 26B Model, das wir nutzen, braucht den externen Multimodal Projector zusätzlich.
Als ich den --mmproj Projector zu llama.cpp hinzugefügt habe, hat er Multimodal-Fähigkeiten korrekt an Pi kommuniziert, und Bild-Tool-Outputs wurden sauber durchgereicht. Und das Beste: Es gab keinen messbaren Slowdown – die Generierungsgeschwindigkeit blieb bei 72,2 Tokens pro Sekunde.
Der Alltag mit dem Setup
Mit dieser Konfiguration kommst du auf etwa 17 GB an Model-Dateien (16 GB für das Hauptmodel, plus MTP Head und Projector). Für jemanden mit 64 GB Unified Memory ist das absolut handhabbar.
Pi als Agent bietet eine aufgeräumte Terminal-Oberfläche, die sich an die OpenAI-kompatible API andockt, die llama.cpp im Server-Modus bereitstellt. Das bedeutet: Du kannst jede Tool nutzen, die das OpenAI-API-Format unterstützt – Flexibility ohne Vendor Lock-in.
Der größte Vorteil? Wenn dein Internet ausfällt – und das passiert früher oder später, meistens zum schlimmsten Zeitpunkt – schreibst du trotzdem weiter. Der Agent ist vielleicht minimal langsamer als Cloud-Alternativen, aber responsiv genug, um deinen Workflow aufrechtzuerhalten.
Der Einstieg
Du musst llama.cpp mit aktivierter Metal-Unterstützung bauen. Das Projekt hat solide Dokumentation für macOS-Builds, und sobald kompiliert, bietet der Server-Modus dir diesen OpenAI-kompatiblen Endpunkt.
Bei den Models sind die Unsloth GGUF Quantisierungen auf Hugging Face gut optimiert. Für das Hauptmodel willst du Q4_K_XL Quantisierung und das passende Q8 MTP Draft Model.
Passe deinen --spec-draft-n-max Wert an – starte bei 3 und teste von 1 bis 6, um herauszufinden, was auf deiner Hardware am besten funktioniert. Verschiedene Apple Silicon Konfigurationen können unterschiedliche Sweet Spots haben.
Lohnt Sich Das?
Wenn du regelmäßig mit AI Assistants programmierst und die Hardware hast (16 GB Minimum, 32 GB+ empfohlen) – auf jeden Fall. Die Unabhängigkeit von Internet-Konnektivität allein macht es wertvoll, und mit MTP, das Generierungsgeschwindigkeiten in wirklich nutzbare Bereiche bringt, ist das Erlebnis überraschend ausgereift.
Du wirst mit diesen Open Models nicht die GPT-4-Klasse Intelligenz erreichen – aber für Code Completion, Refactoring, Debugging-Unterstützung und allgemeine Coding Agent Tasks? Es ist fähiger als die meisten erwarten, und es gehört dir – lokal laufend, privat, ohne Latenzspitzen oder Service-Ausfälle.
Die Tools sind deutlich gereift. Wenn du lokale Models schonmal ausprobiert und dich von der Geschwindigkeit enttäuschen ließst, probier dieses Setup. MTP verändert die Gleichung erheblich.