Zum Inhalt springen
Künstliche Intelligenz

Aider & Continue.dev: Terminal KI-Agent für Multi-File-Refactoring

Aider, Terminal KI-Agent – Aider Terminal KI-Agent mit Git-Diff-Output auf zwei Entwickler-Monitoren
Aider arbeitet Git-first: Jede Änderung landet als Commit mit erklärender Message im Repository-Verlauf. (Symbolbild)

Ich erinnere mich noch gut an den Tag, an dem ich versuchte, ein Django-Monolith aus dem Jahr 2018 mit Copilot-Autocomplete zu refaktorieren. Datei für Datei. Funktion für Funktion. Drei Stunden später hatte ich zwölf offene Tabs, vier widersprüchliche Suggestions und exakt null funktionierende Imports. Spoiler: Aider hätte das in 20 Minuten erledigt – und mit sauberem Git-Verlauf gleich dazu.

Wer als Entwickler, DevOps oder SRE täglich mit großen Codebases kämpft, kennt das Problem: GUI-basierte KI-Assistenten sind schick für Einzel-File-Änderungen, scheitern aber regelmäßig, sobald Refactorings sich über Dutzende Files, mehrere Module und verschachtelte Abhängigkeiten erstrecken. Genau hier kommen terminal-basierte KI-Agenten ins Spiel. Aider und Continue.dev haben in den vergangenen Wochen ihre Multi-File-Fähigkeiten weiterentwickelt und polarisieren gerade die Dev-Community. Was steckt wirklich dahinter – und für wen lohnt sich welches Tool?

Aider: Der Git-first KI-Agent direkt im Terminal

Nerd-Alarm: Aider wurde im Juli 2023 von Paul Gauthier als Open-Source-Projekt gestartet und hat seitdem eine klare Philosophie nicht aufgegeben – das Terminal ist der einzige Ort, der zählt. Die offizielle Seite bringt es auf den Punkt: „AI pair programming in your terminal.“ Kein Electron-Wrapper, keine Extension-Marketplace-Abhängigkeit. Nur Python, pip und ein Git-Repo.

Die Installation ist für Terminal-affine Entwickler ein Kinderspiel. pip install aider-install, danach aider-install, dann in das Projektverzeichnis wechseln und loslegen. Wer z. B. mit Claude arbeiten will, ruft einfach aider --model sonnet --api-key anthropic=<key> auf. Das war’s. Kein Restart der IDE, keine Extension-Konflikte.

Was Aider von einfachen Chat-Assistenten unterscheidet, ist die Repo-Map. Das Tool analysiert das gesamte Repository auf Basis von Tree-Sitter und baut eine strukturelle Übersicht aller relevanten Dateien, Klassen und Funktionen. Das LLM bekommt damit Kontext über Cross-File-Abhängigkeiten, ohne dass man manuell jede Datei reinladen muss. Für größere Projekte ist das der entscheidende Vorteil gegenüber simplen Completion-Tools.

Der Edit-Apply-Commit-Loop – oder: Warum Git hier der eigentliche Held ist

Aiders zentraler Workflow-Mechanismus ist der Edit-Apply-Commit-Loop. Das Tool schlägt Änderungen als Search-and-Replace-Diff-Blöcke vor, wendet sie direkt auf die betroffenen Dateien an und commitet den Change automatisch mit einer sprechenden Commit-Message. Jede Änderung landet als eigener, revertierbarer Commit in der Git-History. Wer sich also fragt, ob Aider blindlings den kompletten Codebase überschreibt: Nein. git revert und git checkout sind jederzeit eure Freunde.

Diese Arbeitsweise ist kein Zufall, sondern Design-Entscheidung. Laut DevRadar bildet der Edit-Apply-Commit-Loop ein „robust safety net“ für agentische Code-Änderungen und macht Aider zur überlegenen Wahl für komplexe Refactoring-Tasks, die Standard-IDE-Completion-Tools schlicht überfordern. Im Ernst: Wenn ihr ein Legacy-Monolith auf eine neue API-Version migriert, wollt ihr jeden Zwischenschritt tracken – und genau das liefert dieser Loop.

Noch interessanter wird es im agentischen Modus. Aider kann Shell-Kommandos ausführen, deren Output auswerten und dann iterativ nachbessern. Typisches Szenario: Refactoring läuft durch, danach führt Aider automatisch pytest aus, sieht, welche Tests jetzt rot sind, und versucht, diese Fehler im nächsten Commit zu beheben. Das ist kein Bastelprojekt mehr – das ist ein echtes Feedback-Loop-System.

Modelle und Kontext: Was Aider wirklich kann

Laut offizieller Aider-Dokumentation arbeitet das Tool am besten mit Claude 3.7 Sonnet, DeepSeek R1 & Chat V3, OpenAI o1, o3-mini und GPT-4o, unterstützt aber praktisch jeden LLM-Endpunkt, inklusive lokal laufender Modelle. Das macht Aider besonders interessant für Teams, die aus Datenschutzgründen keine Cloud-Modelle nutzen wollen oder dürfen. Wer Ollama lokal betreibt, kann Aider direkt daran andocken.

Die unterstützten Sprachen reichen laut offizieller Seite von Python, JavaScript, Rust, Ruby, Go und C++ bis hin zu PHP, HTML und CSS – plus Dutzende weitere. Für Legacy-Projekte bedeutet das: selbst ein alter Java-Monolith oder eine PHP-5-Codebase ist kein Hindernis, solange die Tree-Sitter-Grammar für die Sprache verfügbar ist.

Meine persönliche Einschätzung: Wer regelmäßig über SSH auf Remote-Maschinen arbeitet, Vim oder Neovim nutzt oder Refactorings in CI/CD-Pipelines automatisieren will, für den gibt es aktuell kaum eine überzeugendere Lösung als Aider. Ein deutschsprachiger Vergleich von PromptQuorum bringt es gut auf den Punkt: Wer im Terminal arbeitet und jeden Edit als separaten, überprüfbaren Git-Commit committed möchte, wählt Aider.

Continue.dev: Vom Open-Source-Star zur Cursor-Akquisition

Continue.dev ist eine andere Geschichte – und eine, die man ehrlich erzählen muss. Das Projekt startete als offene Alternative für VS-Code- und JetBrains-Nutzer, die einen KI-Coding-Agenten wollten, ohne sich an ein proprietäres Tool zu binden. Die offizielle GitHub-Beschreibung definiert Continue als „open-source coding agent available as a CLI, VS Code extension, and JetBrains plugin.“

Spoiler: Der Zustand heute ist komplizierter. Auf der offiziellen Continue-Website steht prominent: „Continue has been acquired by Cursor.“ Das GitHub-Repository continuedev/continue ist laut eigenem Hinweis „no longer actively maintained“ und wurde für alle Nutzer auf read-only gestellt. Wer Continue also als aktiv weiterentwickelte, unabhängige Open-Source-Alternative einplant, plant auf einer eingefrorenen Codebasis – das sollte man im Architekturmeeting klar kommunizieren.

Was bleibt, ist ein Terminal-KI-Agent mit interessanter CLI-Schicht. Der Continue-Blogpost zu „Building Async Agents with Continue CLI“ beschreibt Features wie Smart Commits, bei denen der Agent KI-gestützte Commit-Messages und Zusammenfassungen generiert, sowie parallele Analysen und automatisierte Coding-Workflows direkt im Terminal. Für Teams, die diese Fähigkeiten heute noch nutzen, funktioniert das – aber die Roadmap endet am Horizon der Cursor-Übernahme.

Continue CLI erzeugt KI-generierte Smart-Commit-Message im Terminal
Continue CLI: Smart Commits generieren automatisch sprechende Commit-Messages aus dem aktuellen Git-Diff. (Symbolbild)

CLI vs. GUI: Welcher Workflow passt zu welchem Szenario?

Die Frage „CLI oder GUI?“ klingt nach einer religiösen Debatte, ist aber in der Praxis rein pragmatisch. Für Multi-File-Refactorings in großen Codebases gibt es klare Szenarien, in denen terminal-basierte Tools gewinnen – und solche, in denen Editor-Integration mehr Sinn ergibt.

Terminal-basierte Agenten wie Aider gewinnen, wenn:

  • Die Arbeit über SSH auf Remote-Servern stattfindet und kein GUI-Zugang besteht.
  • Refactorings als Teil von CI/CD-Pipelines automatisiert werden sollen.
  • Die Versionskontrolle lückenlos bleiben muss und jeder Change nachvollziehbar sein soll.
  • Vim, Neovim oder ein anderer editor-agnostischer Workflow bevorzugt wird.
  • Lokale LLMs aus Datenschutzgründen Pflicht sind.

Editor-integrierte Ansätze haben Vorteile, wenn:

  • Das Team stark auf VS Code oder JetBrains setzt und Inline-Suggestions den Flow nicht unterbrechen sollen.
  • Einzelne Funktionen oder kleinere Klassen iterativ überarbeitet werden.
  • Realtime-Feedback direkt im Editor wichtiger ist als vollständige Commit-Trails.

Ein praktischer Workflow, der in der Dev-Community kursiert: Aider für die grobe Architektur-Migration im Terminal, danach feingranulares Polishing über den Editor. Nerd-Alarm: Das ist kein theoretisches Konstrukt. In einem YouTube-Workflow-Video wird genau dieser Stack gezeigt – Aider als Refactoring-Backbone, ein zusätzliches Chat-Tool für Realtime-Fragen dazu. Die Aufteilung macht Sinn, weil beide Ebenen unterschiedliche Kontexttiefen brauchen.

Legacy-Refactoring und Migrationsprojekte: Wo der Terminal KI-Agent wirklich liefert

Wer ein Legacy-Projekt mit mehreren Tausend Zeilen Code und einer Handvoll inkonsistenter API-Versionen migrieren muss, kennt das Problem: IDE-Autocomplete sieht immer nur den lokalen Kontext. Aiders Repo-Map löst das grundlegend anders. Das Tool lädt keine vollständigen Dateien ins Kontextfenster, sondern extrahiert strukturelle Signaturen – Klassen, Methoden, Imports – und gibt dem LLM damit einen Überblick über das gesamte Projekt, ohne sofort den Token-Overhead zu sprengen.

Ein typisches Legacy-Szenario: Eine Python-2-Codebase soll auf Python 3 migriert werden. Statt manuell durch Hunderte von print-Statements, unicode-Aufrufen und xrange-Verwendungen zu suchen, kann Aider mit einem klaren Prompt durch den gesamten Baum iterieren, Änderungen committen und bei Testfehlern automatisch nachbessern. Der agentische Modus mit Shell-Command-Integration macht dabei das Ausführen von Testsuits zwischen den Commits möglich – also ein echter Feedback-Loop, kein Hoffnungs-Diff.

Ähnliches gilt für Migrations-Projekte auf neue Framework-Versionen. Django 3 auf Django 5, Express auf Fastify, Spring Boot 2 auf 3: Die Cross-File-Abhängigkeiten sind dabei regelmäßig das eigentliche Problem. Ein Terminal KI-Agent mit Repo-Map kann diese Abhängigkeitsketten verstehbar machen, wenn die Prompts präzise genug sind und das LLM entsprechend leistungsfähig ist. Claude 3.7 Sonnet ist laut Aider-Doku aktuell eine der besten Optionen für genau diese Szenarien.

Aider vs. Continue.dev: Ein direkter Vergleich für Terminal-Workflows

Wer heute zwischen beiden Tools wählen muss, bekommt eine klare Entscheidungshilfe, wenn man die Fakten nebeneinanderlegt. Aider ist aktiv weiterentwickelt, Git-first und primär für Terminal-affine Workflows gebaut. Continue.dev – in seiner ursprünglichen Open-Source-Form – ist eingefroren und wird von Cursor weiterbetrieben. Für reine Terminal-Workflows ist der Unterschied heute größer als noch vor zwölf Monaten.

Das heißt nicht, dass Continue.dev keine Rolle mehr spielt. Wer die bestehende CLI-Funktionalität für Smart Commits und automatisierte Analysen nutzt, kann das weiterhin tun. Aber für neue Projekte, die auf einem aktiv gepflegten Terminal KI-Agenten aufbauen sollen, ist Aider die sicherere Wahl – schon allein wegen der klaren Roadmap und der breiten Modellunterstützung.

Ein weiterer Unterschied, der in der Praxis oft unterschätzt wird: Continue war in seiner Editor-Integration stärker, Aider ist in seiner Terminal-Reinheit stärker. Das ist kein Werturteil – es ist eine Frage des Workflows. Für ein Team, das primär in VS Code lebt und jetzt auf Cursor umgestiegen ist, macht die Continue-Übernahme sogar Sinn. Für ein SRE-Team, das auf Ubuntu-Servern via SSH Architekturen refaktoriert, ist Aider das passende Werkzeug.

Sicherheit, Kontrolle und das Risiko des agentischen Modus

Eine Frage, die immer wieder auftaucht: Wie sicher ist es, einem KI-Agenten zu erlauben, Shell-Kommandos auszuführen und Dateien zu modifizieren? Im Ernst – das ist eine legitime Sorge. Aiders agentischer Modus ist mächtig, aber nicht risikolos. Das Tool führt Shell-Commands aus, und wer unscharfe Prompts in einem Produktions-Branch verwendet, kann unerwartete Änderungen landen lassen.

Die Empfehlung aus der Community ist klar: Aider immer auf einem Feature-Branch betreiben, nie direkt auf main oder master. Der Git-Commit-Trail erlaubt zwar Reverts, aber ein sauberer Branch schützt vor unbeabsichtigten Merges. Außerdem gilt: Code-Review bleibt Pflicht. Aider ist kein Fire-and-Forget-Refactorer. Die generierten Diffs sollten vor dem Merge in die Hauptlinie genauso gründlich geprüft werden wie jede andere Pull Request.

Wer mit sensiblen Daten oder in regulierten Umgebungen arbeitet, sollte zudem die Modellwahl sorgfältig treffen. Lokale Modelle via Ollama oder ähnliche Setups verhindern, dass Code-Snippets an externe Cloud-Endpunkte übermittelt werden. Aider unterstützt das – und wer dabei auf freie oder lokal betriebene KI-Coding-Tools setzt, behält die volle Kontrolle über seine Codebase.

Prompt-Qualität als unterschätzter Erfolgsfaktor

Wer Aider zum ersten Mal startet und erwartet, dass ein vager Prompt wie „refaktoriere dieses Projekt“ zu sauberen Ergebnissen führt, wird enttäuscht werden. Die Qualität der Ausgabe hängt direkt von der Präzision der Eingabe ab – das gilt für jeden KI-Agenten, bei Multi-File-Refactorings aber besonders stark. Ein gut formulierter Prompt benennt konkret, welche Dateien betroffen sind, welches Zielverhalten erwartet wird und welche Randbedingungen gelten.

Bewährt hat sich in der Praxis ein dreistufiger Ansatz: Erst den Scope definieren – also welche Module oder Packages in Scope sind. Dann das Ziel beschreiben – zum Beispiel „Alle direkten Datenbankaufrufe aus den View-Klassen in ein Repository-Layer auslagern“. Und schließlich Constraints mitgeben – etwa „Keine bestehenden Tests dürfen brechen“ oder „Die öffentliche API der Klassen darf sich nicht ändern.“ Mit diesem Rahmen kann die Repo-Map von Aider ihr volles Potenzial entfalten, weil das LLM weiß, welche Signaturen es berücksichtigen muss und welche es ignorieren darf.

Ein häufiger Fehler ist außerdem, zu viele Änderungen in einem einzigen Prompt zu verlangen. Der agentische Modus von Aider ist robust, aber iteratives Vorgehen – ein logischer Schritt pro Session – führt zu saubereren Commits und besser überprüfbaren Diffs. Große Refactorings in kleinere, abgeschlossene Teilschritte zu zerlegen ist keine Schwäche, sondern professionelle Praxis.

Aider in der CI/CD-Pipeline: Automatisierung mit Bedacht

Ein Anwendungsfall, der selten diskutiert wird, aber echtes Potenzial hat: Aider als Teil automatisierter Pipelines. Vorstellbar ist ein Workflow, bei dem ein fehlgeschlagener Test automatisch einen Aider-Lauf triggert, der versucht, den Fehler zu beheben – und bei Erfolg einen Pull Request öffnet. Das ist keine Science-Fiction, sondern mit etwas Shell-Scripting und den richtigen Aider-Flags heute schon umsetzbar.

Der --no-git-Flag erlaubt dabei Runs ohne automatische Commits, wenn die Pipeline selbst das Commit-Handling übernimmt. Der --yes-Flag unterdrückt interaktive Rückfragen für vollautomatisierte Läufe. Und --message ermöglicht es, den Prompt direkt als Parameter zu übergeben, ohne interaktive Eingabe. Mit diesen Bausteinen lassen sich schlanke Automatisierungen aufbauen, die Aider als intelligentes Sub-Tool in bestehende CI-Systeme integrieren – ohne den gesamten Workflow umzubauen.

Wichtig dabei: Solche Setups sollten mit klaren Guardrails betrieben werden. Automatisch generierte Pull Requests brauchen zwingend menschliche Review-Schleifen, bevor sie in Produktionsbranches landen. Aider als Assistent in der Pipeline – ja. Aider als autonomer Merge-Entscheider – noch nicht. Der Reifegrad der verfügbaren Modelle und die Komplexität echter Codebases legen hier klare Grenzen nahe, die verantwortungsvolle Teams respektieren sollten.

Was bleibt – und was kommt als nächstes?

Terminal-basierte KI-Agenten wie Aider sind kein Trend für eine Nische mehr. Sie repräsentieren eine grundsätzlich andere Denkweise über KI-gestützte Entwicklung: nicht Autocomplete im Editor, sondern agentische Workflows im Terminal, die mit Git, Tests und Shell-Kommandos interagieren. Die Konsolidierung im Markt – Continue.dev bei Cursor aufgegangen, andere Tools fusionierend – zeigt, dass dieser Raum reif wird. Was übrig bleibt, wird robuster und meinungsstarker sein.

Aider hat sich als das Werkzeug für Terminal-affine Entwickler etabliert, die Nachvollziehbarkeit über Bequemlichkeit stellen. Die Frage ist nicht ob terminal-basierte KI-Agenten im Workflow von DevOps-Teams landen werden, sondern wie schnell – und ob die Qualität der LLM-Ausgaben bei komplexen Legacy-Projekten mit dem Vertrauen Schritt halten kann, das diese Teams in ihre Tools setzen. Welche Erfahrungen habt ihr bisher mit Aider oder ähnlichen CLI-Agenten in echten Migrationsprojekten gemacht?

Was halten Sie von dem Thema? Hier können Sie mit anderen Leserinnen und Lesern ins Gespräch gehen.