Cursor AI: Setup & Workflows für produktives Coden
Cursor AI taucht in fast jedem Entwickler-Thread auf, seit das Tool im letzten Jahr explodiert ist. Aber die meisten Anleitungen zeigen dir, wie du es installierst — nicht, wie du es so einrichtest, dass es tatsächlich deinen Workflow verändert. Ich nutze Cursor seit über einem Jahr täglich in Shopware- und Astro-Projekten und zeige dir, was wirklich funktioniert: welche Einstellungen einen Unterschied machen, welche Workflows sich bewährt haben und wo ich auf die klassische IDE zurückgreife.
Was Cursor AI ist — und warum es sich von Copilot unterscheidet
Cursor ist ein Fork von VS Code mit tief integrierter KI. Das bedeutet: Alles, was du an VS Code kennst — Extensions, Keybindings, Themes, das gesamte Ökosystem — funktioniert weiterhin. Du importierst dein VS-Code-Profil beim ersten Start und arbeitest sofort in vertrauter Umgebung.
Cursor fügt darauf auf:
- Inline-Chat (Cmd+K): Markierten Code direkt im Editor umschreiben lassen, ohne Kontext zu verlieren
- Chat-Sidebar (
Cmd+L): Konversation über die gesamte Codebase, mit automatischem Datei-Kontext- Agent-Modus: Cursor führt mehrere Schritte autonom aus — Dateien lesen, bearbeiten, Befehle ausführen
.cursorrules: Projektspezifische Anweisungen, die bei jeder Anfrage im Hintergrund mitgegeben werden- Tab-Completion: Nicht normales Autocompletion, sondern mehrzeilige Vorausschau, die den Kontext der aktuellen Datei berücksichtigt
Der Unterschied zu GitHub Copilot: Copilot ist Autocompletion — es vervollständigt, während du tippst. Cursor versteht Aufgaben. Du beschreibst, was du willst, Cursor plant und setzt um. Das sind grundlegend verschiedene Interaktionsmuster.
Preislich bewegt sich Cursor bei etwa 20 USD pro Monat für den Pro-Plan — das schließt eine großzügige Nutzungsmenge für GPT-4o und Claude-Modelle ein. Für produktive Nutzung ist der Pro-Plan quasi Pflicht; der Free-Tier ist zu limitiert für echte Projekte.
- Tab-Completion: Nicht normales Autocompletion, sondern mehrzeilige Vorausschau, die den Kontext der aktuellen Datei berücksichtigt
- Agent-Modus: Cursor führt mehrere Schritte autonom aus — Dateien lesen, bearbeiten, Befehle ausführen
Setup: Die wichtigsten Einstellungen für den Einstieg
Modell-Auswahl
Cursor unterstützt verschiedene Modelle im Hintergrund. Für Code-intensive Aufgaben empfehle ich claude-3-5-sonnet oder claude-3-7-sonnet — beide zeigen besseres Reasoning bei komplexen Abhängigkeiten als GPT-4o. Das Modell lässt sich pro Chat wechseln; für schnelle Fragen reicht ein günstigeres Modell.
Codebase-Indexierung aktivieren
Unter Cursor Settings → Features → Codebase Indexing sicherstellen, dass die Indexierung läuft. Ohne sie kann Cursor nicht über die aktuell geöffneten Dateien hinaus suchen — das eliminiert den größten Vorteil gegenüber einfacherem Autocompletion.
Privacy Mode
Für Kundenprojekte aktiviere ich Privacy Mode (Settings → General → Privacy Mode). Damit werden keine Code-Snippets für Modell-Training verwendet. Wichtig für Projekte mit sensiblen Daten oder NDA-Vereinbarungen.
Auto-Import und Formatter
Die VS-Code-Einstellungen für ESLint, Prettier oder PHP-CS-Fixer funktionieren unverändert. Cursor formatiert keinen Code eigenständig — das liegt weiterhin beim konfigurierten Formatter. Das ist gut so.
.cursorrules: Projektspezifische Anweisungen richtig einsetzen
.cursorrules ist eine Textdatei im Projektstamm (oder mehrere Dateien unter .cursor/rules/), die bei jeder Anfrage automatisch als Systemkontext mitgeschickt wird. Sie ist das mächtigste Setup-Feature, das die meisten Nutzer unterschätzen.
Was in .cursorrules gehört:
# Projekt: Shopware 6 Plugin — CustomerImport## Tech Stack
- PHP 8.2, Shopware 6.6+
- Services müssen in services.xml registriert werden
- Repository-Pattern für alle Datenbankzugriffe
- PHPUnit für Tests, Fixture-Klassen in Tests/Fixtures/
## Konventionen
- Klassen-Namespace: VendorName\CustomerImport\
- Event-Naming: vendor.customer_import.{entity}.{action}
- Keine direkten DBAL-Queries für Entity-Mutations (DAL verwenden)
## Was du NICHT tun sollst
- Keine deprecated SW-APIs (z.B. parent="shopware.repository")
- Keine statischen Properties in Services
- Kein Auto-Commit ohne explizite Freigabe
Das Ergebnis: Cursor hält Konventionen ein, ohne dass du sie bei jeder Anfrage wiederholen musst. Fehler wie falsche Namespace-Pfade oder vergessene Service-Registrierungen verschwinden nahezu komplett.
Für Astro-Projekte füge ich Informationen über die Komponentenstruktur, Tailwind-Konfiguration und welche Patterns für Alpine.js-Interaktivität verwendet werden hinzu. Der Aufwand für eine gute .cursorrules-Datei: 30 Minuten einmalig, Nutzen: täglich.
Workflows, die wirklich funktionieren
Workflow 1: Feature-First mit Inline-Chat
Neues Feature beginne ich mit einem Kommentar im Code:
// TODO: CustomerImportService::importFromCsv
// - CSV lesen (League\Csv)
// - Pro Zeile: Customer-Entity erstellen oder updaten
// - Duplikat-Erkennung via E-Mail
// - Fehlerprotokoll als Return-Value
Dann Cmd+K auf diesem Kommentar: Implementiere diesen Service nach dem Kommentar oben. Nutze das Repository-Pattern aus CustomerRepository.php. Cursor liest die bestehende Repository-Klasse, hält sich an die Konventionen aus .cursorrules und schreibt eine erste Implementierung — die ich reviewe, bevor ich sie übernehme.
Workflow 2: Kontextueller Chat für Debugging
Bei einem Fehler öffne ich den Chat (Cmd+L) und hänge die relevanten Dateien per @-Syntax an: @CustomerImportService.php @ImportTest.php — Der Test auf Zeile 47 schlägt fehl mit ‚Unexpected null'. Warum?
Cursor analysiert beide Dateien und gibt eine konkrete Diagnose — kein Raten, weil der vollständige Kontext vorhanden ist.
Workflow 3: Agent-Modus für größere Umbauten
Für Refactorings über mehrere Dateien nutze ich den Agent-Modus. Wichtig: Ich lasse Cursor immer zuerst einen Plan ausgeben (Zeig mir zuerst, welche Dateien du ändern willst, bevor du etwas umsetzt). Dieser Schritt ist nicht optional — er verhindert, dass der Agent Änderungen in Dateien macht, die ich nicht erwartet hatte.
Workflow 4: Code-Review simulieren
Reviewe den folgenden Diff aus der Perspektive eines Senior-Entwicklers. Fokus: Fehlerbehandlung, Edge Cases, Sicherheit. — Das ersetzt kein echtes Code-Review, aber es findet oft Dinge, die man selbst übersehen hat.
Cursor vs. klassische VS-Code-IDE: Was ich wann nutze
Cursor ist mein primärer Editor für aktives Feature-Entwickeln. Aber es gibt Situationen, in denen ich bewusst zurückwechsle oder andere Tools einsetze:
Cursor ist stärker bei:
- Neuem Code schreiben mit bekannten Mustern
- Refactoring mit klaren Zielvorgaben
- Code verstehen (‚Erkläre mir diese Klasse')
- Dokumentation ergänzen
- Kleinere Bugs in bekanntem Code finden
VS Code / andere Tools sind besser bei:
- Sehr komplexem Multi-Repo-Setup (Cursor-Indexierung hat Grenzen bei riesigen Monorepos)
- Remote-Development in Docker-Containern (VS Code Remote ist ausgereifter)
- Spezifischen Extensions, die in Cursor noch nicht fehlerfrei laufen
Claude Code (Terminal-Agent) ergänzt Cursor:
- Für autonome Aufgaben, bei denen der Agent mehrere Schritte ohne Interaktion ausführen soll
- Für Bash-Kommandos und Build-Prozesse, die Teil der Aufgabe sind
- Wenn ich nicht am Editor sitze, sondern über das Terminal arbeite
Die Kombination Cursor + Claude Code ist für mich die produktivste Entwicklungsumgebung, die ich bisher hatte.
- Wenn ich nicht am Editor sitze, sondern über das Terminal arbeite
- Für Bash-Kommandos und Build-Prozesse, die Teil der Aufgabe sind
- Für autonome Aufgaben, bei denen der Agent mehrere Schritte ohne Interaktion ausführen soll
- Spezifischen Extensions, die in Cursor noch nicht fehlerfrei laufen
- Remote-Development in Docker-Containern (VS Code Remote ist ausgereifter)
- Sehr komplexem Multi-Repo-Setup (Cursor-Indexierung hat Grenzen bei riesigen Monorepos)
- Kleinere Bugs in bekanntem Code finden
- Dokumentation ergänzen
- Code verstehen (‚Erkläre mir diese Klasse')
- Refactoring mit klaren Zielvorgaben
Sicherheit: Was ich nie dem KI-Agenten überlasse
Das Thema wird in vielen Cursor-Tutorials weggelassen — zu Unrecht.
Kein Auto-Commit
Cursor kann im Agent-Modus git commit ausführen. Ich habe das in .cursorrules explizit verboten: Führe niemals git-Befehle aus (commit, push, merge, rebase) ohne meine explizite Bestätigung. Jeder Commit wird manuell überprüft, manuell staged und manuell committed. Das klingt nach zusätzlichem Aufwand — ist es nicht, weil das manuell gewählte Staging-Set ohnehin ein letzter Kontrolldurchlauf ist.
Kein Auto-Push in Produktions-Branches
Offensichtlich, aber trotzdem: Der Agent sollte nie Zugriff auf Credentials oder produktive Umgebungen haben. .env-Dateien sind in .cursorignore gelistet — wie auch node_modules, Logs und alles, was nicht zum Sourcecode gehört. .cursorignore folgt der .gitignore-Syntax; einmal anlegen, nie wieder drüber nachdenken.
Review ist Pflicht, nicht Option
KI-generierter Code wird reviewt. Immer. Der Geschwindigkeitsvorteil kommt nicht davon, das Review zu überspringen — er kommt davon, dass der erste Draft deutlich besser ist und weniger Überarbeitungen braucht. Der Review-Schritt selbst bleibt. Ich habe mir angewöhnt, KI-generierten Code genau so zu lesen wie Code eines erfahrenen, aber fremden Entwicklers: vertrauen, aber prüfen.
Sicherheitskritischer Code
Authentifizierung, Berechtigungsprüfungen, Krypto: Hier nehme ich mir extra Zeit. KI-Tools können Sicherheitslücken produzieren, die plausibel aussehen — ein falsch geprüftes isGranted()-Flag etwa, oder ein fehlender CSRF-Check. Solcher Code wird mit besonderer Sorgfalt gelesen — und wenn möglich durch einen zweiten Menschen reviewt.
Kontext bewusst steuern
Cursor sendet standardmäßig offene Dateien als Kontext mit. Das ist hilfreich, kann aber auch zu Fehlern führen, wenn irrelevante Dateien im Kontext sind und den Agenten ablenken. Ich schließe unrelated Tabs vor einem größeren Agent-Task und nutze @-Syntax, um gezielt die richtigen Dateien anzuhängen.
Shopware-spezifische Cursor-Tipps
Ein paar Muster, die mir in der Shopware-Praxis besonders geholfen haben:
services.xml automatisch aktualisieren lassen
Wenn ich eine neue Service-Klasse anlege, sage ich Cursor: Registriere den neuen Service CustomerImportService in services.xml mit korrektem DI-Setup. Die Klasse hat im Konstruktor CustomerRepository und LoggerInterface. Cursor schreibt das XML korrekt, weil die .cursorrules die Konventionen kennen.
Event-Subscriber-Boilerplate
Shopware-Subscriber bestehen zu 70% aus Boilerplate. Erstelle einen Subscriber auf OrderPlacedEvent, der den CustomerImportService::onOrderPlaced aufruft — inklusive getSubscribedEvents()-Implementierung. Spart 10 Minuten bei jeder neuen Subscriber-Klasse.
Migration-Dateien
Datenbankmigrationen für neue Custom-Tables: Erstelle eine Shopware 6 Migration für eine neue Tabelle vendor_customer_import_log mit den Feldern id (UUID), created_at, customer_email, status (varchar 20), error_message (text nullable). Das Ergebnis ist korrekt und muss nur noch auf die richtige Migration-Klassen-Nummer angepasst werden.
Fazit: Wann sich Cursor lohnt
Cursor lohnt sich, wenn du täglich Code schreibst und bereit bist, 1–2 Stunden in ein vernünftiges Setup zu investieren. Die Werkzeuge — .cursorrules, Codebase-Indexierung, kontextueller Chat — entfalten ihren Wert erst nach dieser initialen Arbeit.
Das Tool macht dich als erfahrenen Entwickler spürbar produktiver: weniger Zeit für Boilerplate, schnelleres Debugging, bessere Entwürfe im ersten Draft. Es macht dich nicht zum Entwickler, wenn du es noch nicht bist — aber das war auch nie der Anspruch.
Für meine Projekte ist Cursor heute genauso selbstverständlich wie ein guter Linter: einmal eingerichtet, läuft es im Hintergrund mit und macht die Arbeit einfach besser.
Was ich mir für die Zukunft wünsche: Bessere Multi-Repo-Unterstützung und stabilere Remote-Dev-Integration. Cursor entwickelt sich schnell — was heute noch hakelt, ist in sechs Monaten wahrscheinlich gelöst. Das Tool hat ein klares Momentum, und das Team liefert regelmäßig substanzielle Updates.
Mein Tipp für den ersten Tag: Leg dir zuerst die .cursorrules an, bevor du anfängst. Ohne sie produziert Cursor generischen Code, der nicht zu deinem Projekt passt. Mit ihr wird der erste Draft schon beim zweiten oder dritten Versuch tatsächlich nützlich.
Nächster Schritt
Du willst die Entwicklung deines E-Commerce-Projekts beschleunigen — mit einem Entwickler, der Cursor und Claude Code nicht nur kennt, sondern täglich einsetzt? Ich bringe kürzere Projektlaufzeiten ohne Qualitätsverlust.
→ [KI-gestützte Shopware-Entwicklung anfragen](/lp/vibe-coding-ecommerce)
Matthias Hanske
Shopware 6 Fullstack Developer
Ich helfe E-Commerce-Unternehmen dabei, das volle Potenzial aus ihrem Shopware-Shop herauszuholen.
Verwandte Artikel
Hilfe bei deinem Shopware-Projekt?
Brauchst du Unterstützung mit Shopware-Entwicklung, Migration oder Automatisierung? Ich arbeite in 2-Wochen-Sprints, ab 5.000 €.