Communitygithub.com

noambrand/gmail-label-cleanup

Agent-Fähigkeit: Sortieren eines großen Gmail-Rückstands in die bereits verwendeten Labels und Erstellen von Filtern, damit sich neue E-Mails selbst sortieren. Enthält einen Ein-Klick-Gmail-MCP-Installer.

Was ist gmail-label-cleanup?

Diese Skill-Fähigkeit ermöglicht es einem KI-Agenten (wie Claude Code, Cursor, Codex), einen großen Gmail-Posteingang systematisch aufzuräumen. Statt einzelne Nachrichten nacheinander zu labeln (wie es die eingebauten Gmail-Connectors tun), nutzt sie einen vollständigen Gmail-MCP-Server, der serverseitige Filter und Batch-Verarbeitung von 50 Nachrichten pro Aufruf unterstützt. Das ist entscheidend, um Tausende von E-Mails effizient zu organisieren und zu verhindern, dass sich der Rückstand wieder aufbaut. Die Kernphilosophie ist, dass Regeln nie erfunden, sondern aus der bisherigen Label-Vergabe des Kontoinhabers gelernt werden. Die Arbeit erfolgt in mehreren begrenzten, protokollierten und umkehrbaren "Durchläufen" (passes). Zuerst werden die bestehenden Filter überprüft, dann werden unlabelierte E-Mails in Batches gesucht und per Label gruppiert, bevor sie mit `batch_modify_emails` zugewiesen werden. Ein Undo-Log und die 30-Tage-Wiederherstellbarkeit des Papierkorbs sorgen für Sicherheit. Die Skill enthält auch einen Ein-Klick-Installationsmechanismus für den Gmail-MCP-Server.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add noambrand/gmail-label-cleanup

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Gmail-Label-Bereinigung

Sortieren Sie einen großen Gmail-Rückstand in die eigenen Labels des Besitzers und lassen Sie zukünftige E-Mails sich selbst labeln.

Die eingebauten Gmail-Connectors der meisten Assistenten labeln einen Thread pro Aufruf und haben keine Filter-API. Das ist für Tausende von Nachrichten zu langsam und kann nicht verhindern, dass der Stapel wieder wächst. Diese Fähigkeit verwendet stattdessen einen vollständigen Gmail-MCP-Server, der echte serverseitige Filter und Batches von 50 Nachrichten bietet.

Vor dem ersten Durchlauf

  1. Installieren Sie den MCP-Server. Siehe install/INSTALL.md. Er benötigt einen Google Cloud OAuth-Desktop-Client und eine Browser-Anmeldung. Ungefähr zehn Minuten, einmalig.
  2. Erstellen Sie die Regeldatei. Kopieren Sie references/rules-TEMPLATE.md in eine private Datei (die Vorlage schlägt my-rules.md vor, das bereits von .gitignore ausgeschlossen ist) und füllen Sie sie basierend auf der eigenen Historie des Kontos aus. Erfinden Sie niemals die Regeln. Siehe "Regeln lernen" unten.

Die eine Regel, die dies zum Funktionieren bringt

Regeln werden aus der eigenen bisherigen Label-Vergabe des Besitzers gelernt, niemals erfunden.

Für jeden Absender oder Betreff schauen Sie, wo diese Person den Absender selbst bereits abgelegt hat, und kopieren Sie es. Nur wenn ein Absender nirgendwo in seiner Historie auftaucht, ist eine Ermessensentscheidung erlaubt, und diese wird dann in einem "geschätzten" Abschnitt festgehalten, damit sie korrigiert werden kann. Ein falsches Label ist günstig zu korrigieren; ein falsches Label, das stillschweigend auf 300 Nachrichten angewendet wurde, ist es nicht.

Die zweite Regel, die auf die harte Tour gelernt wurde: Der Inhalt zählt, nicht nur der Absender. Ein Absender ist eine Dimension. Ein Newsletter über Geld von einem Wohlbefindens-Verlag verdient auch das Geld-Label. Ein Thread kann mehr als ein Label tragen.

Regeln lernen

Fragen Sie das Konto, nicht die Person. Lesen Sie für jedes Label, was bereits darin ist:

search_emails: label:"<Label-Name>"

Lesen Sie 30 bis 50 Ergebnisse und notieren Sie die Absender. Diese Liste ist die Regel. Wiederholen Sie dies für jedes Label. Rufen Sie dann list_email_labels auf, um die Label-IDs zu erhalten, die batch_modify_emails tatsächlich benötigt.

Machen Sie dies einmal, schreiben Sie es in die Regeldatei und fügen Sie bei jedem Durchlauf weitere hinzu. Jeder Durchlauf entdeckt Absender, die der letzte nicht gesehen hat.

Einen Durchlauf ausführen

Ein Durchlauf ist ein begrenztes, protokolliertes, umkehrbares Arbeitspaket. Ziel sind 200 bis 300 Nachrichten. Versuchen Sie nicht, alles in einem Durchlauf zu erledigen.

1. Bestätigen Sie, dass die Filter existieren.

list_filters

Wenn die Filter der Regeldatei fehlen, erstellen Sie sie zuerst mit create_filter, einer pro Label-Gruppe, unter Verwendung von from:-Kriterien. Filter sind der Teil, der verhindert, dass das Problem zurückkommt.

2. Finden Sie unlabelierte E-Mails.

Zuerst den Posteingang:

search_emails: has:nouserlabels in:inbox

Sobald der Posteingang auf die Nachrichten reduziert ist, die absichtlich leer sind, ist der Rest der Arbeit das Archiv. Blättern Sie datumsbasiert durch, wobei sich die älteste Grenze jedes Mal verschiebt:

search_emails: has:nouserlabels -in:inbox -in:sent -in:draft -in:trash -in:spam -in:chats before:YYYY/MM/DD

Nehmen Sie 50 bis 60 pro Seite. Setzen Sie before: auf das Datum des ältesten Ergebnisses, das Sie gerade bearbeitet haben, und der nächste Aufruf fährt dort fort, wo Sie aufgehört haben. Dies ist zuverlässiger als Paginierungs-Token und übersteht Unterbrechungen.

3. Gruppieren Sie nach Label, dann bündeln Sie.

Sortieren Sie die Seite in eine Liste von Nachrichten-IDs pro Label, dann einen batch_modify_emails-Aufruf pro Label mit addLabelIds. Niemals einen Aufruf pro Nachricht.

Wenn ein Batch Too many concurrent requests for user zurückgibt, wiederholen Sie nur die fehlgeschlagenen IDs. Der Aufruf meldet genau, welche fehlgeschlagen sind.

4. Protokollieren Sie es. Fügen Sie einen datierten Eintrag zum Undo-Protokoll hinzu. Siehe "Das Undo-Protokoll" unten.

Niemals anfassen

  • Einmalige Anmeldecodes, Magic Links, Passwortzurücksetzungen und Sicherheitswarnungen. Diese bleiben unlabeliert und werden niemals in den Papierkorb verschoben. Wenn eine Person schnell einen Anmeldecode finden muss, hilft ein Label nicht und eine Papierkorb-Regel schadet aktiv.
  • Alles auf der eigenen "Niemals labeln"-Liste des Besitzers. Menschen haben Veröffentlichungen und Absender, die sie leer lassen möchten, und sie werden es Ihnen sagen. Schreiben Sie jeden Eintrag sofort in die Regeldatei, sobald sie es sagen, in ihren eigenen Worten.
  • Familien- und persönliche E-Mails, es sei denn, der Besitzer hat diese Person bereits selbst labeliert.

In den Papierkorb verschieben

Verschieben Sie nur das in den Papierkorb, was der Besitzer ausdrücklich autorisiert hat, und nur durch Betreff-Übereinstimmung. Die sichere Standardmenge sind Hinweise zu Nutzungsbedingungen und Datenschutzrichtlinien:

subject:("terms of service" OR "terms and conditions" OR "terms of use"
         OR "privacy policy" OR "user agreement")
negatedQuery: subject:(code OR verification OR verify OR "security alert" OR password)

Die negierte Abfrage ist nicht optional. Ohne sie landet eine E-Mail mit "Verify your account - updated terms" im Papierkorb.

Der Gmail-Papierkorb ist 30 Tage lang wiederherstellbar. Nichts in dieser Fähigkeit löscht jemals.

Das Undo-Protokoll

Jeder Durchlauf fügt einen datierten Eintrag hinzu. Er ist die Aufzeichnung, die die Arbeit umkehrbar und überprüfbar macht:

  • Das Datum und die Durchlaufnummer.
  • Ob Filter existierten und welche erstellt wurden.
  • Die Anzahl der labelierten Nachrichten und die Anzahl pro Label.
  • Ermessensentscheidungen, benannt. Welche Absender keinen Präzedenzfall hatten, was entschieden wurde und warum. Dies ist der Teil, der später korrigiert wird.
  • Was bestätigt wurde, dass es leer und unberührt ist.

Siehe examples/undo-log-EXAMPLE.md. Schreiben Sie es auch, wenn der Durchlauf langweilig ist. Gerade dann.

Filter berühren keine alten E-Mails

Das bringt jeden herein, also sagen Sie es dem Besitzer laut:

Ein Gmail-Filter wird nur auf E-Mails angewendet, die nach der Erstellung des Filters eingehen. Er greift niemals zurück. Daher sind die beiden Hälften dieser Aufgabe wirklich getrennt: Filter kümmern sich automatisch um die Zukunft, und der Archiv-Rückstand muss von Hand bearbeitet werden, Durchlauf für Durchlauf, genau wie oben beschrieben.

Was bedeutet: Nach einigen Durchläufen, die die echten Absender mit hohem Volumen entdeckt haben, gehen Sie zurück und fügen Sie auch für diese Filter hinzu. Andernfalls treffen diese Absender weiterhin unlabeliert ein und der Rückstand baut sich hinter Ihnen wieder auf.

Einen Durchlauf rückgängig machen

Lesen Sie den Undo-Protokoll-Eintrag für den Durchlauf, dann führen Sie batch_modify_emails mit removeLabelIds auf denselben Nachrichten-IDs aus. Für alles, was in den Papierkorb verschoben wurde, funktioniert untrash für 30 Tage. Deshalb protokolliert das Protokoll Anzahlen und Begründungen und nicht nur "erledigt".

Verwandte Skills