Zum Inhalt springen
CASOON

Aider und Zed: zwei Wege zur Kombination

Was Aider kann, was Zed nicht kann – und wie CI-Pipelines mit KI aussehen

12 Minuten
Aider und Zed: zwei Wege zur Kombination
#Aider #Zed #ACP #CLI

Wer Zed mit Agent Panel und Claude-Integration nutzt, fragt sich irgendwann zu Recht: Brauche ich Aider überhaupt noch? Die ehrliche Antwort ist: für viele tägliche Workflows nicht. Aber Aider löst Probleme, die kein Editor-Plugin löst – und eines davon liegt komplett außerhalb des Editors.

Was Aider eigentlich ist

Aider ist kein Autocomplete-Tool und kein Chat-Interface. Es ist ein autonomer Coding-Agent, der direkt im Repository arbeitet: Dateien lesen, Änderungen schreiben, Tests ausführen, committen. Der Unterschied zu Editor-AI: Aider operiert auf dem gesamten Repository, nicht auf dem aktuell geöffneten Kontext.

Das Herzstück ist die Repository-Map — eine automatisch generierte Übersicht aller Dateien, Klassen, Funktionen und ihrer Abhängigkeiten im Repository. Aider schickt diese Map bei jedem Request mit, ohne dass man manuell Dateien auswählen muss. Das Modell weiß dadurch, wo UserService definiert ist, welche Komponenten ihn importieren und was sich ändert, wenn eine Signatur angepasst wird — über 20, 50 oder 100 Dateien hinweg.

# Aider startet und analysiert das komplette Repo
aider --model anthropic/claude-sonnet-4-6

# Kein /add nötig für bekannte Symbole — Aider findet sie selbst
Refaktoriere den AuthService: trenne Login-Logik von Token-Management,
erstelle separate Klassen, passe alle Imports an

Aider schreibt die Änderungen dann in alle betroffenen Dateien gleichzeitig, zeigt einen Diff und committed – mit einer automatisch generierten Commit-Message, die die Änderungen beschreibt.

Das /add-Kommando gibt es trotzdem — für Dateien, die Aider nicht über die Repository-Map findet, oder um den Kontext gezielt klein zu halten und Token zu sparen.

Git als natürliches Interface

Jede Aider-Änderung landet als Git-Commit. Das ist kein Feature, das man aktivieren muss — es ist das Standardverhalten. Der Vorteil: jede Änderung ist sofort rückgängig zu machen, auch wenn Aider mehrere Dateien gleichzeitig angefasst hat.

# Letzte Änderung rückgängig
/undo

# Mehrere Schritte zurück
/undo
/undo

# Tests ausführen, Ergebnis in Kontext laden
/run npm test

# Wenn Tests grün: weiter
/run npm run build

Das erlaubt einen Workflow, den Editor-AI-Tools nicht bieten: Aider ändert, Tests laufen, bei Fehler /undo, Anpassung am Prompt, neuer Versuch — alles in einer Session, vollständig in Git nachverfolgbar.

Modell-Agnostik in der Praxis

Aider unterstützt jeden Anbieter, der eine API hat: Anthropic, OpenAI, Google Gemini, Mistral, und lokale Modelle via Ollama. Modellwechsel per Kommando, ohne Neustart:

/model anthropic/claude-sonnet-4-6    # Für komplexe Multi-File-Tasks
/model openai/gpt-4o                  # Für schnelle Korrekturen
/model ollama/llama3                  # Lokal, ohne API-Kosten

Das ist relevant für Teams mit gemischten Setups oder für Workflows, bei denen günstigere Modelle für einfache Tasks und stärkere für komplexe reserviert bleiben.

Aider in CI/CD

Das ist der Bereich, in dem Aider keine Konkurrenz durch Editor-Tools hat: Aider läuft headless — ohne Display, ohne Benutzer, vollständig skriptbar.

Ein typischer Einsatz in GitHub Actions: Aider reagiert auf einen PR-Kommentar, analysiert den Code, generiert einen Fix und committed ihn direkt in den Branch.

# .github/workflows/aider-fix.yml
name: Aider Auto-Fix

on:
  issue_comment:
    types: [created]

jobs:
  fix:
    if: contains(github.event.comment.body, '/aider')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

      - name: Install Aider
        run: pipx install aider-chat

      - name: Extract prompt from comment
        id: prompt
        run: |
          COMMENT="${{ github.event.comment.body }}"
          PROMPT="${COMMENT#/aider }"
          echo "prompt=$PROMPT" >> $GITHUB_OUTPUT

      - name: Run Aider
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          aider --model anthropic/claude-sonnet-4-6 \
                --yes \
                --message "${{ steps.prompt.outputs.prompt }}"

      - name: Push changes
        run: |
          git push origin HEAD

Wenn ein Reviewer im PR /aider Schreibe fehlende Tests für AuthService kommentiert, läuft der Workflow automatisch, Aider generiert die Tests, committed sie und pusht in den Branch.

Test-Generierung auf geänderten Dateien

Ein anderer Ansatz: Aider greift sich bei jedem Push die geänderten Dateien und generiert automatisch fehlende Tests.

- name: Get changed files
  id: changed
  run: |
    FILES=$(git diff --name-only HEAD~1 HEAD | grep -E '\.(ts|js)$' | tr '\n' ' ')
    echo "files=$FILES" >> $GITHUB_OUTPUT

- name: Generate tests with Aider
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
  run: |
    aider --model anthropic/claude-sonnet-4-6 \
          --yes \
          --message "Schreibe Unit-Tests für alle geänderten Funktionen. \
                     Nutze das bestehende Test-Pattern im Repository." \
          ${{ steps.changed.outputs.files }}

Dependency-Updates und Migrations

Aider eignet sich für Migrations-Tasks, die sich wiederholen: API-Versionen updaten, Deprecated-Patterns ersetzen, Coding-Standards durchsetzen. Für automatisierte Dependency-Updates ohne manuellen Eingriff lohnt ein Blick auf Renovate und Dependabot, die diesen Bereich systematischer abdecken. Der Workflow:

# Lokal testen, dann als CI-Job
aider --model anthropic/claude-sonnet-4-6 \
      --yes \
      --message "Ersetze alle fetch()-Aufrufe durch den neuen apiClient. \
                 Der neue Client liegt in src/lib/apiClient.ts. \
                 Passe alle Imports an."

Aider findet alle betroffenen Stellen via Repository-Map, ersetzt sie konsistent und committed jede Datei einzeln — vollständig nachvollziehbar im Git-Log.

Voraussetzungen

Python 3.9+ und Git — auf macOS und Linux vorhanden, in CI-Environments standard.

API-Key als Umgebungsvariable:

export ANTHROPIC_API_KEY=sk-ant-...
# Dauerhaft in ~/.zshrc / ~/.bashrc

Aider installieren

# Empfohlen: pipx (isolierte Umgebung)
pipx install aider-chat

# Alternativ: uv
uv tool install aider-chat

# Test
aider --version

Projektkonfiguration über .aider.conf.yml im Repository-Root:

model: anthropic/claude-sonnet-4-6
auto-commits: true

Aider in Zed: Terminal-Integration

Das integrierte Terminal öffnet sich in Zed über das Menü (View → Terminal). Aider läuft dort identisch wie in jedem anderen Terminal — kein zusätzliches Setup.

cd mein-projekt
aider --model anthropic/claude-sonnet-4-6

/add src/auth/login.ts src/auth/tokens.ts
Implementiere JWT-Refresh-Token-Logik mit automatischem Ablauf nach 7 Tagen

Zed erkennt die Dateiänderungen im Hintergrund und aktualisiert geöffnete Tabs sofort. Nützliche Befehle:

  • /drop datei.ts — aus dem Kontext entfernen (spart Token)
  • /model anthropic/claude-opus-4-6 — Modell wechseln
  • /undo — letzten Commit rückgängig machen
  • /run npm test — Tests ausführen und Ergebnis in den Kontext laden

Ollama für lokale Nutzung

ollama pull llama3
aider --model ollama/llama3

Lokale Modelle eignen sich für einfache Refactorings oder Experimente ohne API-Kosten — für komplexe Multi-File-Tasks liefern sie schwächere Ergebnisse.

Aider in Zed: ACP-Integration

Das Community-Projekt aider-acp verbindet Aider über Zeds Agent Client Protocol direkt mit dem Editor-Panel.

git clone https://github.com/jorgejhms/aider-acp.git
cd aider-acp
# Setup gemäß aktuellem README

aider-acp startet einen lokalen Server. In Zed: Agent Panel öffnen (Cmd+?), + klicken, Aider auswählen oder als Custom Agent mit http://localhost:PORT eintragen.

Diffs erscheinen dann inline im Agent Panel statt als reine Dateiänderungen. Für Workflows, bei denen der Chat-Kontext wichtiger ist als der Terminal-Workflow, eine kompaktere Oberfläche.

Vergleich

Terminal-IntegrationACP-IntegrationCI/CD
Setup-AufwandKeinerMittelpipx + YAML
StabilitätHochCommunity-ProjektHoch
DiffsIm Editor sichtbarInline im PanelGit-Log
Modellwechsel/modelServer-KonfigFlag im Command
HeadlessNeinNeinJa

Zed + Aider vs. Cursor

Cursor hat eine tiefere, proprietäre KI-Integration out of the box – kein CLI-Setup, keine API-Keys. Es basiert weiterhin auf dem VS-Code-Core (Open-Source-Basis, nicht Microsofts proprietäre Erweiterungen) und hinkt dem Upstream gelegentlich einige Wochen hinterher. Alle Prompts und Code-Snippets laufen über Cursor-Server.

Zed alleine ist funktional bereits nah an Cursor — mit offener Architektur, eigenem API-Key, ohne Code auf Drittservern. Aider kommt als Ergänzung für Aufgaben, bei denen Zed an seine Grenzen stößt: große Refactorings, CI-Automation, headless-Workflows.

Einordnung

Aider ist technisch überzeugend — die Repository-Map, die Git-native Arbeitsweise, die CI-Fähigkeit. Trotzdem: Für mich im täglichen Einsatz bleibt es vorerst ein Werkzeug mit Friction.

Zed mit Claude deckt den Großteil meiner Arbeit bereits ab. Der konkrete Bedarf für Repository-weite Refactorings über viele Dateien oder für headless CI-Workflows entsteht nicht täglich. Und die vielen automatischen Commits, die Aider produziert, sind gewöhnungsbedürftig — nicht weil sie falsch sind, sondern weil sie eine andere Vorstellung von Git-History mitbringen: granulare, agentenerzeugte Commits statt bewusst gesetzter Wegmarken.

Das ist keine Ablehnung, sondern eine Frage des richtigen Moments — und hängt davon ab, wie weit man KI-Agenten bereits in den Entwicklungsworkflow integriert hat. Aider macht Sinn, wenn die Aufgabe groß genug ist, dass der Setup-Aufwand sich rechnet — und wenn das Vertrauen in den Agenten weit genug gewachsen ist, um ihm die Git-History zu überlassen. Bis dahin: Zed, Terminal, Claude Code, Codex.