Mittelstufe 11 Min.IDE

Twinny: Code-Autovervollständigung zu 100 % locale

Direkte Antwort

Twinny ist eine kostenlose Open-Source-Erweiterung für VS Code (MIT-Lizenz), die Codevervollständigung auf Ihrem eigenen Rechner über Ollama, LM Studio oder llama.cpp ausführt. Für die aktuelle Zeile antwortet ein kleines Basismodell wie qwen2.5-coder:1.5b-base, das für das Ergänzen von Code zwischen vorhandenem Präfix und Suffix (Fill-in-the-Middle) trainiert wurde, in weniger als einer Sekunde. Für die Einzelnutzung ist kein Abonnement erforderlich; Kosten fallen nur für Teams mit mehr als fünf Entwicklern an.

Twinny ist eine Editor-Erweiterung für lokale Codevervollständigung: Sie schlägt eine Fortsetzung dessen vor, was Sie gerade schreiben, auf Basis eines Modells, das auf Ihrem eigenen Rechner bereitgestellt wird. In keiner anderen Kategorie des gesamten Ökosystems sind die Anforderungen an die Latenz so hoch — ein Vorschlag, der erst nach zwei Sekunden erscheint, ist nutzlos. Deshalb gelten für die Modellwahl hier die umgekehrten Regeln wie in den übrigen Bereichen. Dieser Leitfaden erläutert die Einstellungen, die den Unterschied ausmachen, und welche Verbesserungen die Erweiterung seit ihren Anfängen erfahren hat.

Von Mohamed Meguedmi·Aktualisierung 2026-09-29·Unter Windows, macOS und Linux getestet

#Was Twinny macht

In der Erweiterung gibt es seit jeher zwei Funktionen nebeneinander: die Inline-Vervollständigung, die beim Tippen einen ausgegrauten Vorschlag anzeigt, und eine Chat-Seitenleiste, in der Sie Fragen zum ausgewählten Code stellen können. Beide nutzen ein lokales Modell, das über Ollama, LM Studio oder llama.cpp bereitgestellt wird, und standardmäßig verlässt nichts den Rechner.

Der Nutzen ist in Situationen offensichtlich, in denen der Code die eigene Umgebung nicht verlassen darf: in einem Büro, einer Verwaltung oder bei Kundencode unter einer Geheimhaltungsvereinbarung. Das Argument sind nicht die Kosten, sondern dass sich die Frage „Wohin geht mein Code?“ überprüfbar beantworten lässt. Das Projekt beschreibt sich selbst als den KI-Assistenten für VS Code, der innerhalb Ihres Netzwerks bleibt.

#Das Detail, das alles verändert: das Ausfüllen in der Mitte

Das Kit „Lokaler Copilot“

Dieser Guide führt Sie zum Modell. Das Kit führt Sie zum Copiloten, der in Ihrem Editor Code schreibt.

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Lebenslange Updates

Code zu vervollständigen ist etwas anderes, als einen Text fortzusetzen. Wenn Sie mitten in einer Funktion schreiben, muss das Modell sowohl berücksichtigen, was davor steht, ALS AUCH, was danach folgt. Diese Fähigkeit hat einen Namen — das Ergänzen in der Mitte, oder FIM (fill-in-the-middle) — und nicht alle Modelle verfügen darüber: Die offizielle Dokumentation sagt ausdrücklich, dass der Anbieter für die Codevervollständigung ein für FIM trainiertes Modell verwenden muss. Dabei nutzt jede Modellfamilie eigene Tokens, um das Präfix, das Suffix und den zu ergänzenden Bereich zu kennzeichnen.

Das ist die häufigste Ursache für Enttäuschungen. Ein hervorragendes, auf Code ausgerichtetes Chatmodell ohne diese Fähigkeit erzeugt Vorschläge, die den nachfolgenden Dateiinhalt ignorieren und schließende geschweifte Klammern ergänzen, die bereits vorhanden sind. Ein weiterer Punkt, den viele übersehen: Die Dokumentation empfiehlt ein Basismodell statt einer auf Anweisungen trainierten Variante, weil ein Basismodell reinen Text zuverlässiger fortsetzt, als es mit einem leeren Suffix umgeht, insbesondere wenn nach dem Cursor nichts mehr steht.

→
Das von der Dokumentation empfohlene Modell
„Verwenden Sie ein kleines Basismodell und lassen Sie es auf der GPU laufen. qwen2.5-coder:1.5b-base antwortet auf den meisten Rechnern in deutlich weniger als einer Sekunde“ – das ist die offizielle Empfehlung für die Inline-Vervollständigung.

#Einstellungen für eine flüssige Nutzung

Vier vom Projekt dokumentierte Einstellungen bringen den Großteil der Verbesserung bei der wahrgenommenen Latenz. Sie befinden sich in den Einstellungen der Erweiterung (Präfix twinny.) und lassen sich alle anpassen, ohne Ollama neu zu starten.

Die vier Einstellungen, die die wahrgenommene Latenz steuern
ParameterStandardwertEffekt
twinny.debounceWait300 msWartezeit nach dem letzten Tastendruck, bevor die Anfrage gestartet wird; eine längere Wartezeit reduziert die Anzahl der Aufrufe
twinny.numPredictFim512 TokensMaximale Anzahl an generierten Tokens pro Vorschlag; eine Reduzierung beschleunigt die Antwort
twinny.contextLength100 ZeilenMenge des gesendeten Codes aus dem Bereich um den Cursor; eine geringere Menge senkt die Latenz
twinny.fileContextEnabledstandardmäßig deaktiviertSenden von Auszügen aus anderen geöffneten, damit zusammenhängenden Dateien (bis zu 3); bei einem großen Projekt nützlich, erhöht aber die Latenz
  1. 01
    Die Anzahl der erzeugten Tokens begrenzen
    Eine nützliche Codevervollständigung umfasst eine oder zwei Zeilen. Die Dokumentation bestätigt das: Wenn die Vorschläge zu spät erscheinen, sollten Sie zuerst numPredictFim reduzieren, statt ein kleineres Modell zu wählen.
  2. 02
    Die Auslöseverzögerung anpassen
    Das Auslösen bei jedem Tastendruck überlastet den Server; die standardmäßige Verzögerung von 300 ms (debounceWait) reicht in den meisten Fällen aus und reduziert die Anzahl der Aufrufe.
  3. 03
    Das Modell in Ollama geladen halten
    Wenn der Server das Modell nach einigen Minuten Inaktivität aus dem Speicher entfernt, kommt der erste Vorschlag nach einer Pause zu spät. Auf Ollama-Seite wird daher die Dauer verlängert, für die das Modell im Speicher bleibt (keep_alive).
  4. 04
    Die übermittelte Kontextfenstergröße verringern
    Die Dokumentation sagt es ausdrücklich: Wenn die Vorschläge verzögert erscheinen, contextLength reduzieren (standardmäßig 100 Zeilen vor und nach dem Cursor) oder fileContextEnabled deaktiviert lassen, wie es standardmäßig eingestellt ist. Dieser Parameter fügt nur dann Ausschnitte aus anderen geöffneten Dateien hinzu, wenn man ihn selbst aktiviert.

#Was das Modell tatsächlich sieht

Ein Vorschlag basiert nicht nur auf dem Präfix und dem Suffix rund um den Cursor. Die Dokumentation erläutert die Quellen, die Twinny zusammenführt, bevor es den Prompt erstellt: die umliegenden Zeilen (contextLength), die letzten Änderungen in der Datei in Form kleiner Diffs (recentEditsEnabled, standardmäßig aktiviert, bis zu 6 Änderungen), die vom Sprachserver bereitgestellten Symbole und die Signatur des aktuellen Aufrufs (lspContextEnabled, standardmäßig aktiviert) sowie optional Auszüge aus anderen geöffneten Dateien, die damit zusammenhängen (fileContextEnabled, standardmäßig deaktiviert).

Neueste Änderungen
Eine erst zur Hälfte durchgeführte Umbenennung oder ein manuell auf eine Datei angewandtes Muster setzt sich in den folgenden Vorschlägen fort, als würde das System verstehen, was Sie gerade tun.
IntelliSense-Kontext
Das Modell erhält vom Sprachserver des Editors die Namen und die Signatur des Aufrufs, in dem sich der Cursor befindet.
Nachbardateien
Standardmäßig deaktiviert: nur bei einem großen Projekt aktivieren, da dies die Latenz erhöht und der Nutzen unterschiedlich ausfällt.

Ein weiteres nützliches Detail für die Praxis: Wer zuerst einen einzeiligen Kommentar schreibt, der den folgenden Code beschreibt, und dann kurz pausiert, gibt dem mehrzeiligen Vorschlag ein klares Ziel – genau das empfiehlt die Dokumentation selbst, um bessere Vorschläge zu erhalten. Variablen und Funktionen klar zu benennen, bleibt noch vor jeglicher Anpassung der Einstellungen der wirksamste Hebel für die Relevanz der Vorschläge.

i
Das Modell auf einem anderen Ihrer Geräte ausführen
Neben der lokalen Nutzung von Ollama, LM Studio und llama.cpp bietet Twinny eine direkte Kopplung zwischen Geräten („Devices“): Der Arbeitsplatzrechner nutzt die GPU eines anderen Ihrer Rechner über eine verschlüsselte Peer-to-Peer-Verbindung, ohne Konto und ohne Relay.

#Welche Modelle und warum sind sie so klein?

Im Vergleich zum Chat gelten die umgekehrten Regeln
NutzungEmpfohlene GrößeWarum
Inline-Vervollständigung (FIM)1,5 bis 3 Milliarden, BasismodellDie Latenz ist entscheidend: qwen2.5-coder:1.5b-base antwortet laut offizieller Dokumentation auf den meisten Rechnern in weniger als einer Sekunde
Codevervollständigung auf einer leistungsstarken Grafikkarte7 MilliardenDenkbar, wenn die Grafikkarte schnell und der Kontext kurz ist (niedriger Wert für contextLength)
Chat-Seitenleiste7 bis 14 Milliarden, auf das Befolgen von Anweisungen trainiertes ModellHier nimmt man eine Wartezeit für eine ausgearbeitete Antwort in Kauf; ein Basismodell eignet sich nicht für Gespräche

Diese Asymmetrie überrascht immer wieder: Man ist daran gewöhnt, dass größer besser ist. Bei der Vervollständigung schlägt ein Modell mit 1,5 Milliarden Parametern, das auf das Ausfüllen von Lücken in der Mitte (Fill-in-the-Middle) trainiert wurde und als Basismodell bereitgestellt wird, in der Praxis ein Allzweckmodell mit 14 Milliarden Parametern, weil es antwortet, bevor Sie zu Ende gedacht haben. Die Erweiterung ermöglicht es, für jede Funktion ein Modell zu konfigurieren – eines für FIM, ein anderes für den Chat – und das ist die richtige Einstellung: Die beiden haben weder dieselbe Größe noch dasselbe Training.

i
Latenz messen, nicht Qualität
Um eine Konfiguration zur Codevervollständigung zu beurteilen, ist die Zeit bis zum Erscheinen des Vorschlags die richtige Kennzahl. Bei mehr als etwa einer halben Sekunde stört das Werkzeug mehr, als es hilft, unabhängig davon, wie relevant sein Vorschlag ist.

#Über die Codevervollständigung hinaus: Was Twinny 2026 leistet

Die Erweiterung hat sich seit ihren Anfängen als einfaches Plugin zur Autovervollständigung stark weiterentwickelt. Ihre offizielle Seite nennt heute Inline-Bearbeitung (eine Änderung beschreiben und sie als Diff im Editor überprüfen), einen Index des Arbeitsplatzrechners, der Stichwortsuche und Vektorsuche kombiniert, Code-Reviews des Arbeitsbaums, eines Branches oder eines GitHub-Pull-Requests, die Generierung von Commit-Nachrichten aus den für den Commit vorgemerkten Änderungen sowie die Generierung von Terminalbefehlen mit automatischer Fehlerkorrektur.

Alle diese Funktionen bleiben an anpassbare VS Code-Befehle und an benutzerdefinierte Prompt-Modelle gebunden. Bei den Anbietern wurde die Liste erweitert um hostete APIs (OpenAI, Anthropic, Mistral, DeepSeek, OpenRouter, Gemini, Groq, Cohere, Perplexity) sowie lokale Engine-Systeme (Ollama, LM Studio, llama.cpp, Oobabooga, LiteLLM, Open WebUI) – aber es ist nicht erforderlich, eine davon zu verwenden: Der 100 % lokale Einsatz bleibt die Standardkonfiguration.

#Kostenlos für Einzelpersonen, kostenpflichtig für Teams

Bei individueller Nutzung bleibt Twinny, was es schon immer war: eine Erweiterung unter MIT-Lizenz, ohne Telemetrie und ohne verpflichtende Anmeldung. Kosten fallen erst bei mehr als fünf Entwicklern an, die sich ein Team-Gateway (twinny-server) teilen, das den Zugriff auf die Anbieter für die gesamte Organisation zentralisiert: Bis zu fünf Konten ist es kostenlos, danach gilt ein Preis pro Arbeitsplatz und Monat, mit einer 30-tägigen Testphase ohne Kreditkarte. Für einen einzelnen Entwickler mit lokalem Ollama gelten diese Bedingungen nicht, und die Erweiterung bleibt vollständig nutzbar, ohne jemals ein Konto erstellen zu müssen.

#Twinny oder ein Edit-Agent

Drei Arten der Unterstützung beim Programmieren
BedarfTool
Die aktuelle Zeile beenden, ohne darüber nachzudenkenTwinny — Inline-Codevervollständigung (FIM)
Mehrere Dateien nach Anweisung ändernIntegrierter Edit-Agent im Editor (Roo Code, Cline)
Eine vollständige Aufgabe ohne Überwachung ausführenEin autonomer Agent im Terminal oder Container
Code vor einem Commit noch einmal prüfenDie Code-Review-Funktion von Twinny oder ein spezieller konversationeller Assistent

Die beiden Nutzungsarten schließen sich nicht aus. Viele Entwickler lassen Twinny dauerhaft für die Inline-Vervollständigung aktiv – unauffällig, schnell und mit einem kleinen, darauf spezialisierten Modell – und wechseln für eine Aufgabe, die mehrere Dateien betrifft, zu einem Bearbeitungsagenten wie Roo Code oder Cline. Dabei verwenden sie ein größeres Modell, auf dessen Antwort sie bereit sind, einige Sekunden zu warten.

#FAQ

Ist Twinny kostenlos?+
Ja, für die individuelle Nutzung: Die Erweiterung steht unter der MIT-Lizenz, ist Open Source, kommt ohne Telemetrie und verpflichtendes Konto aus, und die von ihr verwendeten Modelle laufen bei Ihnen lokal. Kosten fallen nur für das Team-Gateway an, das von mehr als fünf Entwicklern gemeinsam genutzt wird: ab 6 $ pro Arbeitsplatz und Monat nach einer kostenlosen 30-tägigen Testphase.
Welches Modell für die Inline-Vervollständigung?+
Ein kleines Basismodell, das auf Fill-in-the-Middle (FIM) trainiert wurde, kein Chatmodell. Die offizielle Dokumentation empfiehlt qwen2.5-coder:1.5b-base, das auf den meisten Rechnern in weniger als einer Sekunde antwortet und passende Ergänzungen für die nächsten wenigen Zeilen liefert. Ein instruktionsangepasstes oder größeres Modell antwortet oft zu spät, um beim Tippen noch hilfreich zu sein, selbst wenn es bei einer langen Frage besser abschneidet.
Warum ignorieren meine Vorschläge den restlichen Inhalt der Datei?+
Das gewählte Modell unterstützt wahrscheinlich kein Fill-in-the-Middle, oder es handelt sich um ein instruktionsoptimiertes Modell statt um ein Basismodell: Die Dokumentation erklärt, dass ein Basismodell mit einem leeren Suffix besser zurechtkommt als ein instruktionsoptimiertes Modell. Prüfen Sie die Modellbeschreibung und die in der Erweiterung konfigurierte FIM-Vorlage.
Wie kann die Latenz der Vorschläge reduziert werden?+
Reduzieren Sie zuerst twinny.numPredictFim (standardmäßig 512 Tokens), dann twinny.contextLength (standardmäßig jeweils 100 Zeilen vor und nach dem Cursor); lassen Sie twinny.fileContextEnabled deaktiviert, wenn das Projekt umfangreich ist, und halten Sie das Modell zwischen zwei Vorschlägen in Ollama im Speicher geladen. Dies sind die Einstellungen, die die offizielle Dokumentation für die vom Benutzer wahrgenommene Latenz vorrangig nennt.
Ist eine leistungsstarke Grafikkarte erforderlich?+
Nein, und das ist die gute Nachricht: Ein Completion-Modell mit 1,5 Milliarden Parametern passt in wenige Gigabyte VRAM und antwortet selbst auf einfacher Hardware schnell, sofern Sie ein speziell für FIM vorgesehenes Basismodell statt eines Allzweckmodells verwenden.
Twinny oder ein Editieragent wie Roo Code oder Cline?+
Das sind unterschiedliche Werkzeuge. Twinny vervollständigt die aktuelle Zeile mit einem kleinen, schnellen Modell; ein Agent zur Codebearbeitung ändert auf Anweisung mehrere Dateien mit einem größeren Modell. Viele Entwickler verwenden beide, mit unterschiedlichen Modellen für den jeweiligen Einsatzzweck.
Kann Twinny noch mehr als Code vervollständigen?+
Ja: Seit den jüngsten Versionen bietet die Erweiterung Inline-Bearbeitung per Diff, einen Index des Arbeitsplatzrechners (Stichwort- und Vektorsuche), Code-Reviews des Arbeitsbaums oder einer Pull Request sowie die Generierung von Commit-Nachrichten und Terminalbefehlen.
Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.