Gemini CLI: agentic coding im Terminal
# Gemini CLI: agentic coding im Terminal
Gemini CLI ist Googles Open-Source-Tool für agentic coding, das in Ihrem Terminal läuft: 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, bearbeiten und Tests ausführen.
Diese Lektion führt Sie durch eine echte Session nach dem Muster „behebe diesen Bug und führe die Tests aus“, inklusive Installation. Am Ende wissen Sie, wie Sie das Tool auf ein Repo richten, Änderungen vorschlagen lassen, sie freigeben und mit einem Testlauf verifizieren.
Was Gemini CLI tatsächlich ist
Es ist ein Command-Line-Agent. Sie formulieren eine Anfrage in natürlicher Sprache, und ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → plant, liest Dateien, schlägt Änderungen vor und führt Shell-Befehle in Ihrem Arbeitsverzeichnis aus. Es ist dieselbe agentische Fähigkeit, die Gemini Code Assist in der IDE antreibt, nur ausgekoppelt in ein Terminal-Tool, das Sie skripten und in Pipes einbinden kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.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 ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → breit, bevor ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → handelt.
- Eingebaute Tools. ErErThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → kann Ihre Codebasis durchsuchen (grep), Dateien lesen und schreiben, Shell-Befehle ausführen und Antworten mit Google Search grounden, wenn ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → aktuelle Informationen braucht.
- Open Source und erweiterbar. Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen hineinschauen, es pro Projekt konfigurieren und über das Model Context Protocol (MCP) erweitern, den offenen Standard zur Verbindung von Agenten mit externen Tools und Daten.
Das offizielle Repo und die Docs finden Sie unter github.com/google-gemini/gemini-cli.
Installation
Sie brauchen eine Node.js-Installation (eine aktuelle LTS-Version). Dann installieren Sie die CLI global mit npm:
npm install -g @google/gemini-cli
geminiBeim ersten Start von gemini werden Sie durch die Authentifizierung geführt. Der einfachste Weg für Einzelpersonen ist die Anmeldung mit dem persönlichen Google-Konto, das einen großzügigen Free Tier für die CLI freischaltet. Wenn Sie höhere Limits brauchen oder gegen ein Projekt abrechnen wollen, kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →ö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: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.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
Verstehen Sie vor dem Walkthrough die Schleife, denn Schritte intelligent freizugeben ist hier die eigentliche Fähigkeit.
1. Sie prompten. In einfacher Sprache: „der Date-Parser scheitert an ISO-Strings, behebe das und bring die Tests zum Laufen.“
2. Er sammelt Kontext. Der Agent liest relevante Dateien, sucht oft per grep nach Symbolen und öffnet benachbarte Dateien.
3. Er schlägt eine Aktion vor. Eine Dateiänderung (als Diff dargestellt) oder einen Shell-Befehl (vor der Ausführung angezeigt).
4. Sie geben frei oder lehnen ab. Nichts landet auf der Platte oder wird ausgeführt ohne Ihr Ja, es sei denn, Sie aktivieren Auto-Approval.
5. Er beobachtet das Ergebnis. Testausgaben, Error-Traces und Exit-Codes fließen zurück ein.
6. Er iteriert, bis das Ziel erreicht ist oder ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → 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 ausführen
Hier eine konkrete Session. Stellen Sie sich ein kleines Python-Projekt mit einem fehlschlagenden Test in einer Date-Utility vor.
Starten Sie die CLI aus dem Projekt-Root, damit sie das richtige Arbeitsverzeichnis hat:
cd ~/projects/invoice-tool
geminiJetzt geben Sie die Aufgabe. Seien Sie präzise bei Symptom und 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 ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → echten Kontext hat, erfindet ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → keine Funktionssignaturen, sondern arbeitet gegen das, was tatsächlich da ist.
Er schlägt eine Änderung als Diff vor. ErErThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnte zum Beispiel feststellen, dass der Code datetime.strptime mit einem festen Format nutzt, und auf datetime.fromisoformat wechseln, 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, tatsächlich hinzuschauen. Der Agent ist gut, nicht unfehlbar. Ein Diff, der Dateien berührt, die Sie nicht erwartet haben, ist ein Signal, abzulehnen und nachzufragen.
Er schlägt einen Befehl vor. Als Nächstes schlägt ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → vor, die Tests auszuführen. ErErThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → zeigt den exakten Befehl vor der Ausführung:
pytest -qGeben Sie ihn frei. Der Agent führt pytest aus, erfasst die Ausgabe und liest sie.
Er iteriert, wenn nötig. Nehmen wir an, zwei Tests laufen nun durch, ein dritter scheitert weiter wegen eines Vergleichs zwischen naive und aware datetime. Der Agent sieht den Traceback, schlägt eine Folgeänderung vor (Normalisierung der Zeitzonen-Behandlung), zeigt den Diff und führt die Suite erneut aus. Wenn alles grün ist, fasst ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → zusammen, was ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → geändert hat und warum.
Der entscheidende Schritt auf Ihrer Seite: Sie haben die Erfolgsbedingung geliefert („Tests laufen durch“), also hatte der Agent ein objektives MaMaUsing software to automate repetitive marketing tasks and campaigns, enabling personalisation at scale across channels like email, web, and social.Vollständige Definition ansehen →ß, gegen das ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → iterieren konnte. Vage Ziele erzeugen vage Arbeit. Testbare Ziele erzeugen verifizierbare Arbeit.
Getting started with Gemini CLI
Steuern, was der Agent darf
Jeden Schritt freizugeben ist sicher, aber langsam. Für vertraute, repetitive Arbeit kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Sie den Approval-Modus ändern. Innerhalb einer Session kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Sie für den aktuellen Turn auf einen Auto-Approve-Modus umschalten, und für vollständig unbeaufsichtigte Läufe gibt es einen YOLO-artigen Modus, der Aktionen automatisch freigibt. Nutzen Sie den nur in Wegwerf-Umgebungen oder Sandboxes, niemals gegen ein Repo mit nicht committeter Arbeit, die Ihnen wichtig ist.
Eine sicherere Angewohnheit: 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 Rückgängigmachen entfernt ist.
Projektgedächtnis mit GEMINI.md
Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen dem Agenten dauerhafte, projektspezifische Anweisungen geben, indem Sie eine Datei GEMINI.md im Repo-Root ablegen. Die CLI liest sie automatisch und behandelt sie als festen Kontext für jede Session. Hier codieren Sie Konventionen, damit Sie sie nicht immer neu eintippen müssen.
# 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 bedeutet „führe die Tests aus“ zuverlässig pytest -q, und der Agent kennt die No-go-Zonen. 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 rät die Lektion dazu, pro Umgebung eine Authentifizierungsmethode zu wählen und dabei zu bleiben?
4. Wählen Sie ALLE eingebauten Fähigkeiten aus, die die Lektion Gemini CLI zuschreibt.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Aussagen aus, die korrekt wiedergeben, was Gemini CLI bemerkenswert 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
Von Haus aus liest der Agent Dateien, führt Befehle aus und groundet mit Google Search. Die echte 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 APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →, und der Agent kann auch auf diesen Systemen handeln: „suche das fehlerhafte Ticket in unserem Tracker, reproduziere es, behebe es.“
Sie konfigurieren Server in einer Settings-Datei, typischerweise .gemini/settings.json in Ihrem Projekt. Ein minimales Beispiel, das einen lokalen MCP-Server anbindet:
{
"mcpServers": {
"tickets": {
"command": "node",
"args": ["./tools/ticket-mcp-server.js"]
}
}
}Nach der Registrierung kann der Agent die Tools dieses Servers 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 den Bau umfangreicherer mehrstufiger Agenten jenseits der CLI ist Googles Agent Development Kit (ADK) das Framework, zu dem man weitergeht; die CLI ist der schnelle, interaktive Einstieg.
Skripten (nicht-interaktiver Modus)
Weil es eine CLI ist, kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Sie sie nicht-interaktiv ausführen und ihre Ausgabe in Pipes leiten. 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, um einen ersten automatisierten Review-Durchgang zu erhalten. Halten Sie diese Prompts eng und read-only, wenn sie unbeaufsichtigt laufen; reservieren Sie Läufe mit Dateiänderungen für interaktive, freigegebene Sessions.
Wann CLI, wann Code Assist
Beide nutzen dieselbe agentische Engine, die Wahl hängt also davon ab, wo Sie arbeiten.
- Gemini CLI, wenn Sie im Terminal sind: schnelle Fixes, gescriptete Läufe, Server ohne IDE oder Ausgaben, die in andere Tools weitergeleitet werden.
- Gemini Code Assist, wenn Sie in Ihrem Editor sind (VS Code, JetBrains usw.) und Inline-Diffs, Chat direkt neben dem 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
- Installieren mit
npm install -g @google/gemini-cli,geminiaus dem Projekt-Root starten und pro Umgebung eine einzige Auth-Methode wählen (persönliches Login, ein APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →-Key aus AI Studio oder Vertex AI). - Geben Sie dem Agenten immer eine testbare Erfolgsbedingung („bring die Tests zum Laufen“), damit ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → Ergebnisse beobachten und iterieren kann statt zu raten.
- Committen Sie vor dem Start und prüfen Sie jeden Diff und jeden Befehl vor der Freigabe; Auto-Approve-Modi bleiben Sandboxes vorbehalten.
- Nutzen Sie eine
GEMINI.md-Datei, um Projektkonventionen und No-go-Zonen 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 gehen Sie zum ADK weiter, wenn Sie eigenständige Agenten bauen wollen.