Vibe Coding

Gmail CLI mit Claude Code bauen – 15.000 E-Mails in Minuten archiviert

Wie man mit Claude Code einen Gmail CLI entwickelt, um den Posteingang per Kommandozeile zu verwalten und tausende E-Mails effizient zu archivieren.

Wilson··5 min read
Gmail CLI mit Claude Code bauen – 15.000 E-Mails in Minuten archiviert

Gmail CLI mit Claude Code bauen – 15.000 E-Mails in Minuten archiviert

2026 wird zum Jahr der persönlichen KI-Agenten. Statt auf fertige Tools zu warten, kannst du heute schon selbst die Bausteine bauen, die deinen Alltag automatisieren. In diesem Beitrag zeige ich dir, wie ich mit Claude Code einen Gmail-CLI erstellt habe, mit dem ich meinen Posteingang per Kommandozeile verwalte und Newsletter zusammenfasse.

Warum ein CLI statt Browser-Automation?

Zunächst habe ich versucht, Gmail über Browser-Automation zu steuern. Das war langsam: DOM-Scraping, Klicks im Interface, Wartezeiten beim Laden. Ein CLI, das direkt die Gmail-API anspricht, ist schneller, zuverlässiger und liefert strukturierte Daten.

Der Ansatz funktioniert so:

  1. Google Cloud Projekt einrichten
  2. OAuth-Authentifizierung konfigurieren
  3. CLI mit Claude Code entwickeln
  4. Features bei Bedarf erweitern

Google Cloud Setup

Projekt erstellen und Gmail-API aktivieren

Gehe zur Google Cloud Console und erstelle ein neues Projekt. Navigiere zu APIs & Services > Bibliothek, suche nach "Gmail API" und aktiviere sie.

OAuth-Zustimmungsbildschirm konfigurieren

Der OAuth-Consent-Screen besteht aus drei Bereichen:

Branding: Unter Google Auth Platform > Branding gibst du einen App-Namen (z.B. "gmail-cli"), deine E-Mail als Support-Adresse und Entwicklerkontakt ein.

Audience: Wähle unter Google Auth Platform > Audience den Typ External, es sei denn, du nutzt Google Workspace. Füge dich selbst als Testnutzer hinzu.

Datenzugriff (Scopes): Unter Google Auth Platform > Data Access fügst du die benötigten Berechtigungen hinzu:

  • https://www.googleapis.com/auth/gmail.readonly (E-Mails lesen)
  • https://www.googleapis.com/auth/gmail.modify (Archivieren, Labels)
  • https://www.googleapis.com/auth/gmail.send (E-Mails senden)

Je enger der Scope, desto geringer das Risiko bei einem geleakten Token.

OAuth-Credentials erstellen

Unter Google Auth Platform > Clients erstellst du einen neuen Client vom Typ Desktop-App. Lade die JSON-Datei herunter, speichere sie als credentials.json im Projektverzeichnis und füge beide Dateien (credentials.json und später token.json) zur .gitignore hinzu.

Den CLI mit Claude Code entwickeln

Mit der credentials.json im Projekt kannst du Claude Code bitten, den CLI zu implementieren. Ein guter Startpunkt ist ein Plan, der die Architektur skizziert:

  • Google Cloud Setup
  • OAuth-Konfiguration
  • CLI-Befehle (inbox, search, read, labels, archive)
  • Authentifizierungs-Flow
  • Edge Cases und Rate Limits

Claude Code generiert dann package.json, die Hauptdatei index.js und macht das Script ausführbar. Mit npm link wird der Befehl systemweit verfügbar.

Erster Test

Beim ersten Aufruf öffnet sich der Browser für die OAuth-Autorisierung:

gmail-cli inbox --limit 1

Nach der Zustimmung speichert der CLI ein token.json für zukünftige Aufrufe.

Features erweitern

Die besten Features entstehen bei der Nutzung. Hier sind Beispiele, wie der CLI wuchs:

JSON-Output und Body-Inhalt

Für Newsletter-Zusammenfassungen brauchte ich strukturierte Daten:

gmail-cli inbox --json --body --max-length 5000

Claude Code fügte --json für strukturierte Ausgabe, --body für den Nachrichteninhalt und --max-length für Trunkierung hinzu. Ein batch-read-Befehl holt mehrere E-Mails parallel.

Archivieren

Ein einfacher Archiv-Befehl:

gmail-cli archive --search "from:linkedin.com"

Batch-Operationen mit batchModify

Die initiale Version verarbeitete E-Mails einzeln. Bei 2.000 LinkedIn-E-Mails wurde das ineffizient. Die Gmail-API bietet batchModify, um bis zu 1.000 Nachrichten in einem Call zu verarbeiten. Mit dieser Optimierung lassen sich tausende E-Mails in Sekunden archivieren.

Top-Sender analysieren

Um herauszufinden, welche Absender den Posteingang füllen:

gmail-cli top-senders --sample 1000

Da die API pro Nachricht einen separaten Call für Header benötigt, würde ein Scan aller 15.000 E-Mails das Rate-Limit sprengen (250 Quota-Einheiten pro Sekunde). Die Lösung: Eine Stichprobe der letzten 1.000 E-Mails liefert ausreichend repräsentative Daten.

15.000 E-Mails bereinigt

Mit dem erweiterten CLI dauerte die Bereinigung etwa 45 Minuten. Der Workflow war ein iterativer Loop:

  1. Nächsten E-Mail-Batch abrufen
  2. In "Bulk-Archiv", "Einzelarchiv" und "Behalten" kategorisieren
  3. Genehmigung mit Anpassungen ("Daily Newsletter behalten, Rest archivieren")
  4. Parallele Archiv-Befehle ausführen

Runde für Runde verschwanden Tausende E-Mails:

  • LinkedIn: 2.191
  • Garmin: 1.494
  • Going Travel Deals: 1.587
  • Amazon: 627
  • GitHub Notifications: 427

Schließlich wurde ich ungeduldig:

gmail-cli archive --search "in:inbox before:2025/06/01"

6.152 E-Mails auf einmal archiviert. Manchmal schlägt ein Zeitstempel die sorgfältige Prüfung.

Der Posteingang landete bei unter 500 E-Mails. Die verbliebenen Nachrichten – persönliche E-Mails, Einwanderungsunterlagen, Recruiting-Threads – wurden einzeln durchgegangen.

Lessons Learned

CLI schlägt Browser-Automation: Wenn eine API existiert, ist ein CLI schneller, zuverlässiger und liefert strukturierte Daten.

OAuth ist einfacher als gedacht: Die Einrichtung in Google Cloud dauert etwa eine Stunde. Danach verwaltet der CLI alles weitere.

Iterativ bauen: Die meisten Features entstanden, weil ich während der Nutzung auf Hindernisse stieß und Claude Code bat, sie zu beheben. Ein perfektes Tool am Anfang ist nicht nötig – ein guter Startpunkt und die Fähigkeit zur Erweiterung genügen.

Batch-Operationen sind entscheidend: Das Entdecken von batchModify machte den Unterschied zwischen einer Stunde und wenigen Minuten.

Fazit

Ein selbstgebauter Gmail-CLI passt exakt zu deinem Workflow. Du verstehst, wie die Teile zusammenpassen, und kannst jederzeit erweitern. Die Investition in ein persönliches Tool zahlt sich aus – nicht nur für die E-Mail-Verwaltung, sondern als Blaupause für weitere Automationen.

Die Rezeptur ist simpel: Projekt aufsetzen, Plan schreiben, Google Cloud konfigurieren, mit Claude Code bauen, iterieren.

claude-codegmailautomationcliproductivity

Related Articles

Scope: Generate Implementation-Ready Linear Tickets From Your Codebase
Vibe Coding

Scope: Generate Implementation-Ready Linear Tickets From Your Codebase

Scope reads your codebase and turns plain-English feature descriptions into Linear-ready tickets with full implementation context — files to modify, schema changes, dependencies, and acceptance criteria.

Wilson

Vibe Coding

Was ist Vibe Coding?

Vibe Coding ist ein neuer Ansatz in der Softwareentwicklung, bei dem man KI per natürlicher Sprache anleitet, Software zu bauen.

Wilson

Vibe Coding

32 Claude Code Tips: From Basics to Advanced

A comprehensive collection of practical tips for getting the most out of Claude Code, from custom status lines and voice input to container orchestration and multi-model workflows.

Wilson