Die kontinuierliche Weiterentwicklung von Künstlicher Intelligenz im Bereich der Softwareentwicklung hat große Fortschritte bei der Produktivität von Programmierern ermöglicht. Einer der führenden Programmierassistenten, Cursor, setzt dabei auf Large Language Models (LLM), um Nutzern intelligente und kontextbezogene Codevorschläge zu liefern. Doch trotz seiner Verbreitung und Leistungsfähigkeit bleibt die interne Funktionsweise von Cursor für viele Entwickler und Nutzer weitgehend ein Rätsel. Die Technologie hinter solchen Systemen wird als sogenannter „Black Box“-Ansatz bezeichnet, weil man nur die Eingaben und Ausgaben sehen kann, nicht aber die genauen Abläufe im Inneren. Genau hier setzt das sogenannte Reverse Engineering an, ein Verfahren, das es ermöglicht, verborgene Mechanismen aufzudecken und besser zu verstehen.
Bei Cursor wurde jüngst eine tiefgehende Untersuchung gestartet, in deren Zentrum der Einsatz von TensorZero steht – einem Open-Source-Framework zur Optimierung von LLM-Anwendungen durch Feedbackschleifen und Analyse von Nutzerdaten. TensorZero wurde zwischen Cursor und die Anbieter der Large Language Models geschaltet. Dadurch bekam man die Möglichkeit, alle Token zu verfolgen, die dabei übertragen wurden, und die API-Aufrufe zu beeinflussen. Dies schafft die Grundlage für ein tiefgreifendes Verständnis der Abläufe sowie das Experimentieren mit verschiedenen Modellen und Prompts in Echtzeit. Nicht zuletzt können so die Aufrufe protokolliert und ausgewertet werden, um datengetriebene Erkenntnisse über die Funktionsweise und Performance des Systems zu gewinnen.
Besonders interessant war die Fragestellung, ob Cursor, der bisher hauptsächlich für die breite Masse optimiert ist, durch individuelle Anpassungen an die Nutzungsmuster einzelner Benutzer noch weiter verbessert werden kann. Der Schlüssel zum erfolgreichen Reverse Engineering lag in der Modifikation der Verbindungswege zwischen Cursor und den LLM-Anbietern. Cursor bietet nämlich eine Möglichkeit, die Basiseinstellungen für die APIs zu überschreiben und beispielsweise die OpenAI-Basis-URL sowie die Modellnamen anzupassen. TensorZero stellt einen OpenAI-kompatiblen Endpunkt bereit, was eine direkte Integration und Manipulation der Anfragen erlaubte. Allerdings zeigte sich eine erste große Hürde: Cursor sendet vor den eigentlichen Modellabfragen noch Anforderungen an seine eigenen Server, wo zusätzliche Verarbeitungsschritte stattfinden.
Daraus ergab sich, dass die Verbindung zu einem lokal laufenden TensorZero-Proxy nicht ohne weiteres möglich war. Das hatte zur Folge, dass Nutzerdaten und Zugangsdaten weiterhin über die Cursor-Server transferiert werden mussten. Die Forscher testeten als Alternative zunächst den Einsatz von OpenRouter, einem offenen Proxy für LLM-Modelle, um verschiedene Interaktionen innerhalb von Cursor abzubilden. Doch für eine vollständige Kontrolle und Beobachtbarkeit musste schließlich ein Reverse Proxy eingerichtet werden. Das Tool Ngrok bot sich an, um die lokale TensorZero-Instanz sicher über das Internet erreichbar zu machen.
Um den Zugangskontrollmechanismus zu gewährleisten und den Schutz sensibler Schlüssel zu garantieren, wurde Nginx als zusätzlicher Authentifizierungsproxy vorgeschaltet. Ein solches Setup erlaubte es, Cursor so zu konfigurieren, dass es Anfragen an den Ngrok-Endpunkt sendet, welcher dann weiter zu Nginx und schließlich zum TensorZero-Gateway geleitet wird. TensorZero konnte so als eigenständiger Vermittler zwischen Cursor und den eigentlichen LLM-Anbietern fungieren. Ein weiteres technisches Hindernis zeigte sich bei der Handhabung von Cross-Origin Resource Sharing (CORS) – einem Sicherheitsmechanismus in Web-Technologien, der falsche Herkunft von Anfragen verhindern soll. Electron-basierte Anwendungen wie Cursor führen aus diesem Grund anhand einer OPTIONS-Anfrage eine Vorabprüfung durch, die vom Server korrekt beantwortet werden muss.
Nginx wurde daher so konfiguriert, dass er auf diese OPTIONS-Anfragen reagiert und alle relevanten Header für erlaubte Ursprünge, Methoden und Header zurückgibt. Die genaue Abstimmung der CORS-Header war ausschlaggebend dafür, dass die Verbindungen stabil funktionierten und ein reibungsloser Datenaustausch möglich wurde. Mit diesem Setup entstand eine vollständige Transparenz unter anderem darüber, was genau an Prompts und Kontextinformationen an das LLM übertragen wird. In einem beobachteten Beispiel wurde klar, dass Cursor als Systemprompt nicht nur eine reine Besucherfrage in den Vordergrund stellt, sondern auch umfangreiche Daten zum aktuellen Zustand der Programmierumgebung hinzufügt. Dazu zählen offene Dateien, Cursorpositionen, Verlauf oder sogar Fehlermeldungen durch Linter, die allesamt in die Kommunikation einfließen.
Diese Kontextanreicherung ermöglicht es dem Modell, zielgerichtet und präziser auf Nutzeranfragen zu reagieren. Die Struktur der Prompts folgt einem klar definierten Format, das es dem LLM erleichtert, zwischen verschiedenen Kommunikationsarten zu unterscheiden. Anweisungen für die Nutzung von Markdown, Umgang mit mathematischen Formeln und Differenzierung zwischen Antworten und Nachfrage zur Informationsbeschaffung sind explizit festgehalten. Auch wurde ein ausgeklügelter Mechanismus beschrieben, wie bei Codeänderungen nur relevante Ausschnitte ausgegeben werden, was sowohl die Effizienz als auch die Nachvollziehbarkeit für den Anwender verbessert. Besonders spannend ist außerdem die Erwähnung eines sogenannten „Apply Models“ - eine eigenständige, einfachere KI, die nur für die Umsetzung der vorgeschlagenen Änderungen verantwortlich ist.
Diese Hierarchie verschiedener AI-Modelle innerhalb von Cursor zeigt, wie komplexe Aufgabenstellungen intern in spezialisierte einzelne Schritte zerlegt werden, um Performance und Genauigkeit optimal zu gestalten. Dank dieser Offenlegung und der Möglichkeit, verschiedene LLM-Anbieter und Modelle direkt im Proxy zu variieren, konnten umfangreiche A/B-Tests durchgeführt werden. So wurde beispielsweise ein gleichmäßiger Mix von GPT-4.1, Claude 4.0 Sonnet, o4 Mini und Gemini 2.
5 Pro analysiert. Die Erkenntnisse bestätigen, dass unterschiedliche Modelle sinnvoll kombiniert werden können, um bei gleichbleibender Qualität auch Kosten und Reaktionszeiten zu optimieren. Mit TensorZero wurden nicht nur die Anfragen beobachtet, sondern auch die Grundlage für zukünftige Feedback-Schleifen gelegt. Indem reale Produktergebnisse, Nutzerinteraktionen und Rückmeldungen in die Optimierung einfließen, soll Cursor auf lange Sicht dynamisch auf individuelle Nutzerbedürfnisse angepasst werden. Dies stellt einen bedeutenden Schritt in Richtung personalisierte Künstliche Intelligenz im Entwicklerbereich dar.
Abschließend zeigt das Reverse Engineering von Cursor, wie tiefgreifende technische Einblicke und Open-Source-Tools die Blackbox der AI-gestützten Entwicklungsassistenz aufbrechen. Nicht nur bietet es wertvolle Transparenz für Entwickler und Forscher, sondern auch handfeste Möglichkeiten, die Leistungsfähigkeit und Anpassbarkeit in realen Nutzungsszenarien zu erweitern. Das Potenzial, LLM-Anwendungen basierend auf echtem Nutzerfeedback weiterzuentwickeln, macht den Weg frei für intelligente und individuell optimierte Programmierwerkzeuge der nächsten Generation. Für alle, die sich mit moderner KI-gestützter Softwareentwicklung beschäftigen, bietet das Zusammenspiel von Cursor, TensorZero und den dahinterstehenden Modellen spannende Ansätze und einen Ausblick darauf, wie die Zukunft der Programmierassistenten gestaltet werden kann.