Gemini CLI: agentic coding im Terminal
Gemini CLI ist Googles Open-Source-Tool für agentic coding, das in Ihrem Terminal lebt: es liest Ihr Projekt, bearbeitet Dateien und führt Befehle für Sie aus, alles über einen dialogorientierten Prompt. Sie bleiben dort, wo Sie ohnehin arbeiten (in der Shell), und der Agent übernimmt die Schleife aus Dateien durchsuchen, editieren und Tests laufen lassen.
Diese Lektion führt Sie durch eine echte Session nach dem Muster „diesen Bug beheben und die Tests laufen lassen", inklusive Installation. Am Ende wissen Sie, wie Sie die CLI auf ein Repo richten, Änderungen vorschlagen lassen, sie freigeben und mit einem Testlauf verifizieren.
Was Gemini CLI eigentlich ist
Es ist ein Agent für die Kommandozeile. Sie formulieren eine Anfrage in natürlicher Sprache, und er plant, liest Dateien, schlägt Edits vor und führt Shell-Befehle in Ihrem Arbeitsverzeichnis aus. Es ist dieselbe agentic capability, die Gemini Code Assist in der IDE antreibt, nur ausgelöst als Terminal-Tool, das Sie skripten und pipen kkDie durchschnittliche Zahl neuer Nutzer, die jeder bestehende Nutzer über Empfehlungen generiert. Über 1,0 verstärkt sich das Wachstum selbst und wird exponentiell.Vollständige Definition ansehen →önnen.
Drei Dinge machen es für Sie als fortgeschrittenen Nutzer interessant:
- Umgang mit großem Kontext. Der lange Kontext von Gemini bedeutet, dass der Agent viele Dateien gleichzeitig einbeziehen kann, statt aus einem einzelnen Snippet zu raten. Bei großen Refactorings liest ererDas Verhältnis von Interaktionen (Likes, Kommentare, Shares) zur Reichweite eines Inhalts. Zeigt, wie stark die Zielgruppe reagiert, gemessen an der Zahl der Personen, die den Inhalt gesehen haben.Vollständige Definition ansehen → breit, bevor er handelt.
- Eingebaute Tools. Er kann Ihre Codebasis greppen, Dateien lesen und schreiben, Shell-Befehle ausführen und Antworten mit Google Search grounden, wenn er aktuelle Informationen braucht.
- Open Source und erweiterbar. Sie können hineinschauen, es pro Projekt konfigurieren und über das Model Context ProtocolModel Context ProtocolEin offener Standard, mit dem KI-Assistenten einheitlich und kontrolliert an die Werkzeuge und Daten des Unternehmens angebunden werden, statt jede Integration einzeln zu bauen.Vollständige Definition ansehen → (MCP) erweitern, den offenen Standard, um Agents mit externen Tools und Daten zu verbinden.
Das offizielle Repo und die Docs finden Sie unter github.com/google-gemini/gemini-cli.
Installation
Sie brauchen Node.js (eine aktuelle LTS-Version). Dann installieren Sie die CLI global mit npm:
npm install -g @google/gemini-cli
geminiBeim ersten Aufruf von gemini führt es Sie durch die Authentifizierung. Der einfachste Weg für Einzelpersonen ist die Anmeldung mit dem persönlichen Google-Konto, was eine großzügige kostenlose Nutzungsstufe für die CLI freischaltet. Wenn Sie höhere Limits brauchen oder gegen ein Projekt abrechnen wollen, können Sie stattdessen einen GEMINI_API_KEY aus Google AI Studio setzen oder sich für den Enterprise-Einsatz gegen Vertex AI authentifizieren.
export GEMINI_API_KEY="your-key-from-aistudio"Wählen Sie pro Umgebung eine Auth-Methode und bleiben Sie dabei. Persönliches Login und APIAPIApplication Programming Interface: eine standardisierte Schnittstelle, über die Anwendungen kommunizieren und Daten austauschen, ohne die interne Funktionsweise der jeweils anderen zu kennen.Vollständige Definition ansehen →-Key in derselben Shell zu mischen ist die häufigste Quelle der Verwirrung „warum nutzt es die falsche Quota".
Die Agent-Schleife: wie ein Turn abläuft
Vor dem Walkthrough sollten Sie die Schleife verstehen, denn Schritte intelligent freizugeben ist hier die eigentliche Fähigkeit.
- Sie prompten. Klartext: „der Date-Parser scheitert an ISO-Strings, behebe das und mach die Tests grün."
- Er sammelt Kontext. Der Agent liest relevante Dateien, greppt oft nach Symbolen und öffnet Nachbardateien.
- Er schlägt eine Aktion vor. Einen Datei-Edit (als Diff angezeigt) oder einen Shell-Befehl (vor der Ausführung angezeigt).
- Sie geben frei oder lehnen ab. Nichts landet auf der Platte und nichts läuft ohne Ihr Ja, es sei denn, Sie aktivieren Auto-Freigabe.
- Er beobachtet das Ergebnis. Testausgaben, Error-Traces und Exit-Codes fließen zurück.
- Er iteriert, bis das Ziel erreicht ist oder er Sie um eine Richtung bittet.
Dieses Beobachten-und-Iterieren unterscheidet das Ganze von Autocomplete. Ein fehlgeschlagener Test ist keine Sackgasse, sondern der nächste Input.
Walkthrough: einen Bug beheben und die Tests laufen lassen
Hier eine konkrete Session. Stellen Sie sich ein kleines Python-Projekt mit einem fehlschlagenden Test in einem Date-Utility vor.
Starten Sie die CLI aus Ihrem Projekt-Root, damit sie das richtige Arbeitsverzeichnis hat:
cd ~/projects/invoice-tool
geminiJetzt geben Sie die Aufgabe. Seien Sie präzise beim Symptom und bei der Erfolgsbedingung:
> The function parse_due_date in billing/dates.py raises ValueError on
ISO 8601 strings with a timezone offset. Find the bug, fix it, then
run the test suite and confirm it passes.Was Sie der Reihe nach sehen:
Er liest den Code. Der Agent öffnet billing/dates.py und die zugehörige Testdatei. Weil er echten Kontext hat, erfindet er keine Funktionssignaturen, sondern arbeitet gegen das, was tatsächlich da ist.
Er schlägt einen Edit als Diff vor. Er könnte zum Beispiel feststellen, dass der Code datetime.strptime mit einem festen Format nutzt, und auf datetime.fromisoformat umstellen, das Offsets verarbeitet. Der Diff wird zur Prüfung angezeigt:
- return datetime.strptime(raw, "%Y-%m-%d")
+ return datetime.fromisoformat(raw)Sie lesen den Diff und tippen y, um ihn anzuwenden. Das ist der Moment, in dem Sie wirklich hinschauen sollten. Der Agent ist gut, nicht unfehlbar. Ein Diff, der Dateien anfasst, mit denen Sie nicht gerechnet haben, ist ein Signal, abzulehnen und nachzufragen.
Er schlägt einen Befehl vor. Als nächstes vorschlägt er, die Tests laufen zu lassen. Er zeigt den exakten Befehl vor der Ausführung:
pytest -qGeben Sie frei. Der Agent führt pytest aus, erfasst die Ausgabe und liest sie.
Er iteriert, wenn nötig. Nehmen wir an, zwei Tests laufen jetzt durch, aber ein dritter scheitert weiter wegen eines Vergleichs von naive und aware datetime. Der Agent sieht den Traceback, schlägt einen Folge-Edit vor (Normalisierung der Zeitzonen-Behandlung), zeigt den Diff und lässt die Suite erneut laufen. Wenn alles grün ist, fasst er zusammen, was er geändert hat und warum.
Der entscheidende Zug auf Ihrer Seite: Sie haben die Erfolgsbedingung geliefert („Tests laufen durch"), also hatte der Agent ein messbares Ziel, gegen das er iterieren konnte. Vage Ziele erzeugen vage Arbeit. Testbare Ziele erzeugen überprüfbare Arbeit.
Getting started with Gemini CLI
Steuern, was der Agent darf
Jeden Schritt freizugeben ist sicher, aber langsam. Für vertraute, repetitive Arbeit können Sie den Freigabemodus ändern. Innerhalb einer Session können Sie für den aktuellen Turn auf Auto-Freigabe umschalten, und für vollständig unbeaufsichtigte Läufe gibt es einen YOLO-Modus, der Aktionen automatisch freigibt. Nutzen Sie das nur in Wegwerf-Umgebungen oder Sandboxes, niemals gegen ein Repo mit uncommitteter Arbeit, die Ihnen wichtig ist.
Eine sicherere Gewohnheit: committen, bevor Sie starten. Ein sauberer git-Zustand bedeutet, dass jede Agent-Änderung ein `git diff` von der Prüfung und ein `git checkout` vom Zurücknehmen entfernt ist.
Projektgedächtnis mit GEMINI.md
Sie können dem Agenten dauerhafte, projektspezifische Anweisungen geben, indem Sie eine Datei GEMINI.md im Repo-Root anlegen. Die CLI liest sie automatisch und behandelt sie als stehenden Kontext für jede Session. Hier kodieren Sie Konventionen, damit Sie sie nicht jedes Mal neu eintippen.
# Project conventions
- Python 3.12. Use `uv` for env management, not pip directly.
- Run tests with `pytest -q`. Lint with `ruff check .`.
- Prefer `datetime.fromisoformat` over manual format strings.
- Never edit files under `migrations/` without asking first.Jetzt heißt „run the tests" verlässlich pytest -q, und der Agent kennt die Sperrzonen. Betrachten Sie GEMINI.md als das Onboarding-Dokument des Projekts für den Agenten.
Wissenscheck
1. Was beschreibt am besten, was Gemini CLI im Kern ist?
2. Warum ist der Umgang mit großem Kontext bei Gemini CLI für große Refactorings wichtig?
3. Warum empfiehlt die Lektion, pro Umgebung eine Authentifizierungsmethode zu wählen und dabei zu bleiben?
4. Wählen Sie ALLE eingebauten Fähigkeiten, die die Lektion Gemini CLI zuschreibt.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Aussagen, die korrekt wiedergeben, was Gemini CLI besonders macht und wie es sich zu Gemini Code Assist verhält.
Wählen Sie alle richtigen Antworten aus.
Die CLI mit Tools und MCP erweitern
Standardmäßig liest der Agent Dateien, führt Befehle aus und groundet mit Google Search. Die eigentliche Stärke für fortgeschrittene Workflows liegt darin, ihn über MCP-Server mit Ihren eigenen Systemen zu verbinden.
Ein MCP-Server stellt dem Agenten Tools (Funktionen) und Daten über ein Standardprotokoll bereit. Verbinden Sie einen für Ihren Issue-Tracker, Ihre Datenbank oder eine interne API, und der Agent kann auch auf diesen Systemen handeln: „schau das fehlschlagende Ticket in unserem Tracker nach, reproduziere es, behebe es."
Server konfigurieren Sie in einer Settings-Datei, typischerweise .gemini/settings.json in Ihrem Projekt. Ein minimales Beispiel, das einen lokalen MCP-Server einbindet:
{
"mcpServers": {
"tickets": {
"command": "node",
"args": ["./tools/ticket-mcp-server.js"]
}
}
}Nach der Registrierung kann der Agent die Tools, die dieser Server bereitstellt, während einer Session entdecken und aufrufen. So kommen Sie von „behebe den Code vor mir" zu „behebe das, was in unseren Systemen beschrieben ist". Für reichhaltigere mehrstufige Agents jenseits der CLI ist Googles Agent Development Kit (ADK) das Framework, in das Sie aufsteigen; die CLI ist der schnelle, interaktive Einstieg.
Skripten (nicht-interaktiver Modus)
Weil es eine CLI ist, können Sie sie nicht-interaktiv ausführen und ihre Ausgabe pipen. Damit ist sie in Skripten und CI-nahem Tooling nutzbar. Übergeben Sie einen Prompt direkt und lassen Sie sie headless laufen:
gemini -p "Summarize the changes in the last commit and flag any
function that lost test coverage." > review-notes.mdKombinieren Sie das mit git-Hooks oder einem manuellen Schritt vor dem PR, und Sie erhalten den ersten Durchgang eines automatisierten Reviewers. Halten Sie diese Prompts eng und lesend, wenn sie unbeaufsichtigt laufen; Läufe mit Datei-Edits reservieren Sie für interaktive, freigegebene Sessions.
Wann CLI, wann Code Assist
Beide teilen dieselbe agentic Engine, die Wahl hängt also davon ab, wo Sie arbeiten.
- Gemini CLI, wenn Sie im Terminal sind: schnelle Fixes, geskriptete Läufe, Server-Maschinen ohne IDE oder das Pipen von Ausgaben in andere Tools.
- Gemini Code Assist, wenn Sie in Ihrem Editor sind (VS Code, JetBrains etc.) und Inline-Diffs, Chat neben Ihrem Code und enge IDE-Integration wollen.
Viele Entwickler nutzen beides am selben Tag. Die CLI ist das Schweizer Taschenmesser, Code Assist die Werkbank. Die nächste Lektion behandelt Code Assist im Detail.
Key Takeaways
- Mit
npm install -g @google/gemini-cliinstallieren,geminiim Projekt-Root starten und pro Umgebung eine einzige Auth-Methode wählen (persönliches Login, API-Key aus AI Studio oder Vertex AI). - Geben Sie dem Agenten immer eine testbare Erfolgsbedingung („mach die Tests grün"), damit er Ergebnisse beobachten und iterieren kann, statt zu raten.
- Committen Sie, bevor Sie starten, und prüfen Sie jeden Diff und jeden Befehl vor der Freigabe; Auto-Freigabe-Modi bleiben Sandboxes vorbehalten.
- Nutzen Sie eine
GEMINI.md-Datei, um Projektkonventionen und Sperrzonen einmal festzuhalten, damit der Agent keine Erinnerungen mehr braucht. - Erweitern Sie die CLI mit MCP-Servern in
.gemini/settings.json, damit sie auf Ihren echten Systemen handeln kann, und steigen Sie zum ADK auf, wenn Sie eigenständige Agents bauen wollen.