CommunityCodierung & Entwicklunggithub.com

gog

CLI für Google Workspace: Gmail, Kalender, Drive, Kontakte, Sheets und Docs.

Was ist gog?

gog ist ein leistungsstarkes CLI-Tool zur Interaktion mit Google Workspace-Diensten wie Gmail, Kalender, Drive, Kontakten, Sheets und Docs. Es ist besonders nützlich für KI-Agenten und Entwickler, die diese Dienste in Skripte, CI/CD-Pipelines oder automatisierte Workflows einbinden möchten. Die Einrichtung erfordert die OAuth-Authentifizierung mit einem Client-Secret-JSON. gog unterstützt sowohl lokale als auch Remote-Headless-Hosts: Für Headless-Setups stehen mehrere Authentifizierungsmodi zur Verfügung, darunter Callback-Weiterleitung, manuelles Einfügen der Redirect-URL und Remotemodi. Die Plattform unterstützt außerdem die Datei-basierte Schlüsselverwaltung für nicht interaktive Umgebungen. gog wurde für Nicht-Interaktivität konzipiert: Flags wie `--no-input` und `--json` ermöglichen eine einfache Skripterstellung. Zu den typischen Befehlen gehören das Suchen und Senden von E-Mails über Gmail, das Abrufen und Erstellen von Kalenderereignissen, das Hochladen und Suchen von Drive-Dateien, das Lesen und Aktualisieren von Sheets sowie der Export von Docs. gog ist die ideale Wahl für Agenten, die eine konsistente und programmierbare Schnittstelle zu den Google-Cloud-Diensten benötigen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/gog

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht gog?

Verwende gog für Gmail/Kalender/Drive/Kontakte/Sheets/Docs. Erfordert OAuth-Einrichtung.

Bevorzuge ein bereits autorisiertes Host-Konto: Führe zuerst den angeforderten gog-Befehl aus. Beginne mit der Einrichtung erst nach einem Authentifizierungsfehler. Frage niemals in Chat-Nachrichten nach Passwörtern, Client-Secrets oder Aktualisierungstokens.

Einrichtung (einmalig)

  • gog auth credentials /pfad/zu/client_secret.json
  • gog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheets
  • gog auth list

Remote / Headless Gateway-Hosts

Wenn der Gateway-Host keine lokale Browseranzeige hat:

  1. Bevorzuge einen aktiven Callback-Listener auf dem Gateway-Host. Leite vom Rechner mit dem Browser den exakten Callback-Port weiter (ssh -L <port>:127.0.0.1:<port> benutzer@gateway-host), öffne die Autorisierungs-URL, die gog ausgibt, und lasse die Weiterleitung auf diesem weitergeleiteten Port abschließen.
  2. Wenn kein aktiver Listener verfügbar ist, wählt der Bediener einen Einfügemodus in einer vertrauenswürdigen Shell auf dem Gateway-Host. Callback-URLs dürfen niemals in Chat oder Agenteneingaben gelangen:
    • --manual: Der Bediener fügt die vollständige Redirect-URL in die interaktive Eingabeaufforderung von gog ein.
    • --remote --step 1: Gibt auth_url (und state_reused) aus und beendet sich. Nach der Browser-Zustimmung führt der Bediener --remote --step 2 --auth-url <callback-url> in der vertrauenswürdigen Shell aus. Ein fehlgeschlagener Seitenaufruf von localhost nach der Zustimmung ist zu erwarten.
  3. Behalte denselben aufgelösten Kontext bei Remote-Schritten bei: GOG_CONFIG_DIR hat Vorrang vor --home, das Vorrang vor GOG_HOME hat. Behalte auch --client, Dienste/Scopes, Redirect-URI und Zustimmungsoptionen bei. Abgelaufene manuelle Zustände können wiederverwendet werden (state_reused=true).
  4. Wenn die Desktop-Schlüsselverwaltung nicht verfügbar ist, konfiguriere das Datei-Backend (gog auth keyring file) und setze GOG_KEYRING_PASSWORD in der Gateway-Umgebung, damit nicht-interaktive Agent-/--no-input-Läufe Tokens lesen können. gog auth doctor meldet, wenn das Passwort fehlt.
  5. Empfangener Callback ist nicht gleich gespeichertes Token. Wenn der Token-Austausch oder die Identitätssuche hinter einem Proxy fehlschlägt, beginne erneut mit Schritt 1, sobald der Bediener ausgehenden Datenverkehr oder Proxy-Ausnahmen für die erforderlichen Google-Endpunkte genehmigt hat. Umgehe nicht die Host-Netzwerkrichtlinie und verwende keine fehlgeschlagenen oder abgelaufenen Zustände wieder.

Für Diagnosen überprüfe jeden Eintrag, den gog auth list --check meldet; sein Exit-Status beweist nicht, dass jedes gespeicherte Token gültig ist. Überprüfe ebenso den von gog auth doctor gemeldeten Status, anstatt dich nur auf seinen Exit-Code zu verlassen.

Häufige Befehle

  • Gmail-Suche: gog gmail search 'newer_than:7d' --max 10
  • Gmail-Nachrichtensuche (pro E-Mail, ignoriert Threading): gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected]
  • Gmail senden (einfach): gog gmail send --to [email protected] --subject "Hallo" --body "Hallo"
  • Gmail senden (mehrzeilig): gog gmail send --to [email protected] --subject "Hallo" --body-file ./nachricht.txt
  • Gmail senden (stdin): gog gmail send --to [email protected] --subject "Hallo" --body-file -
  • Gmail senden (HTML): gog gmail send --to [email protected] --subject "Hallo" --body-html "<p>Hallo</p>"
  • Gmail-Entwurf: gog gmail drafts create --to [email protected] --subject "Hallo" --body-file ./nachricht.txt
  • Gmail-Entwurf senden: gog gmail drafts send <entwurfId>
  • Gmail antworten: gog gmail send --to [email protected] --subject "Re: Hallo" --body "Antwort" --reply-to-message-id <nachrichtId>
  • Kalender-Ereignisse auflisten: gog calendar events <kalenderId> --from <iso> --to <iso>
  • Kalender-Ereignis erstellen: gog calendar create <kalenderId> --summary "Titel" --from <iso> --to <iso>
  • Kalender mit Farbe erstellen: gog calendar create <kalenderId> --summary "Titel" --from <iso> --to <iso> --event-color 7
  • Kalender-Ereignis aktualisieren: gog calendar update <kalenderId> <ereignisId> --summary "Neuer Titel" --event-color 4
  • Kalender-Farben anzeigen: gog calendar colors
  • Drive-Suche: gog drive search "abfrage" --max 10
  • Kontakte: gog contacts list --max 20
  • Sheets abrufen: gog sheets get <sheetId> "Tab!A1:D10" --json
  • Sheets aktualisieren: gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED
  • Sheets anhängen: gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS
  • Sheets leeren: gog sheets clear <sheetId> "Tab!A2:Z"
  • Sheets Metadaten: gog sheets metadata <sheetId> --json
  • Docs exportieren: gog docs export <docId> --format txt --out /tmp/doc.txt
  • Docs cat: gog docs cat <docId>

Kalenderfarben

  • Verwende gog calendar colors, um alle verfügbaren Ereignisfarben (IDs 1-11) zu sehen.
  • Füge Farben zu Ereignissen mit dem Flag --event-color <id> hinzu.
  • Ereignisfarben-IDs (aus der Ausgabe von gog calendar colors):
    • 1: #a4bdfc
    • 2: #7ae7bf
    • 3: #dbadff
    • 4: #ff887c
    • 5: #fbd75b
    • 6: #ffb878
    • 7: #46d6db
    • 8: #e1e1e1
    • 9: #5484ed
    • 10: #51b749
    • 11: #dc2127

E-Mail-Formatierung

  • Bevorzuge einfachen Text. Verwende --body-file für mehrteilige Nachrichten (oder --body-file - für stdin).

  • Das gleiche --body-file-Muster funktioniert für Entwürfe und Antworten.

  • --body interpretiert \n nicht. Wenn du Zeilenumbrüche benötigst, verwende einen Here-Doc oder $'Zeile 1\n\nZeile 2'.

  • Verwende --body-html nur, wenn du reichhaltige Formatierung benötigst.

  • HTML-Tags: <p> für Absätze, <br> für Zeilenumbrüche, <strong> für Fettdruck, <em> für kursiv, <a href="url"> für Links, <ul>/<li> für Listen.

  • Beispiel (einfacher Text via stdin):

    gog gmail send --to empfä[email protected] \
      --subject "Besprechungsnachbereitung" \
      --body-file - <<'EOF'
    Hallo Name,
    
    Danke für das heutige Treffen. Nächste Schritte:
    - Punkt eins
    - Punkt zwei
    
    Mit freundlichen Grüßen,
    Dein Name
    EOF
    
  • Beispiel (HTML-Liste):

    gog gmail send --to empfä[email protected] \
      --subject "Besprechungsnachbereitung" \
      --body-html "<p>Hallo Name,</p><p>Danke für das heutige Treffen. Hier sind die nächsten Schritte:</p><ul><li>Punkt eins</li><li>Punkt zwei</li></ul><p>Mit freundlichen Grüßen,<br>Dein Name</p>"
    

Hinweise

  • Setze [email protected], um --account nicht wiederholen zu müssen.
  • Für Skripte bevorzuge --json plus --no-input.
  • Sheets-Werte können via --values-json (empfohlen) oder als Inline-Zeilen übergeben werden.
  • Docs unterstützt Export/Kat/Kopie. Bearbeitungen vor Ort erfordern einen Docs-API-Client (nicht in gog).
  • gog gmail search gibt eine Zeile pro Thread zurück; verwende gog gmail messages search, wenn du jede einzelne E-Mail separat erhalten möchtest.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills