MCP.Market

gog skill

by openclaw·openclaw/openclaw·394k stars·MIT

Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.

A100/100content scan

Is the gog skill safe?

Clean: nothing in its files matched our rules. We read 1 file in the folder on 2026-10-25.

No findings.

Install the gog skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/openclaw/openclaw.git /tmp/openclaw
mkdir -p ~/.claude/skills
cp -r /tmp/openclaw/skills/gog ~/.claude/skills/gog
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

gog

Use gog for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.

Prefer an already-authorized host account: run the requested gog command first. Enter setup only after an authentication error. Never ask for passwords, client secrets, or refresh tokens in chat.

Setup (once)

  • gog auth credentials /path/to/client_secret.json
  • gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
  • gog auth list

Remote / headless Gateway hosts

When the Gateway host has no local browser display:

  1. Prefer a live callback listener on the Gateway host. From the machine with the browser, forward the exact callback port (ssh -L :127.0.0.1: user@gateway-host), open the authorization URL gog prints, and let the redirect complete on that forwarded port.
  2. When a live listener is unavailable, the operator picks one paste-mode path in a trusted shell on the Gateway host. Callback URLs must never enter chat or agent tool input:
  • --manual: the operator pastes the full redirect URL into gog's interactive prompt.
  • --remote --step 1: prints authurl (and statereused) then exits. After browser consent, the operator runs --remote --step 2 --auth-url in the trusted shell. A failed localhost page load after consent is expected.
  1. Keep the same resolved config context across remote steps: GOGCONFIGDIR takes precedence over --home, which takes precedence over GOGHOME. Also preserve --client, services/scopes, redirect URI, and consent options. Matching unexpired manual state may be reused (statereused=true).
  2. If desktop keyring is unavailable, configure the file backend (gog auth keyring file) and set GOGKEYRINGPASSWORD in the Gateway environment so non-interactive agent/--no-input runs can read tokens. gog auth doctor reports when the password is missing.
  3. Callback received is not the same as token stored. If token exchange or identity lookup fails behind a proxy, restart from step 1 after the operator approves scoped egress or proxy exceptions for the required Google endpoints. Do not bypass host network policy or reuse failed or expired state.

For diagnostics, inspect every entry reported by gog auth list --check; its exit status does not prove every stored token is valid. Likewise, inspect the status reported by gog auth doctor rather than relying only on its exit code.

Common commands

  • Gmail search: gog gmail search 'newer_than:7d' --max 10
  • Gmail messages search (per email, ignores threading): gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account you@example.com
  • Gmail send (plain): gog gmail send --to a@b.com --subject "Hi" --body "Hello"
  • Gmail send (multi-line): gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt
  • Gmail send (stdin): gog gmail send --to a@b.com --subject "Hi" --body-file -
  • Gmail send (HTML): gog gmail send --to a@b.com --subject "Hi" --body-html "Hello"
  • Gmail draft: gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt
  • Gmail send draft: gog gmail drafts send
  • Gmail reply: gog gmail send --to a@b.com --subject "Re: Hi" --body "Reply" --reply-to-message-id
  • Calendar list events: gog calendar events --from --to
  • Calendar create event: gog calendar create --summary "Title" --from --to
  • Calendar create with color: gog calendar create --summary "Title" --from --to --event-color 7

Calendar Colors

  • Use gog calendar colors to see all available event colors (IDs 1-11)
  • Add colors to events with --event-color flag
  • Event color IDs (from gog calendar colors output):
  • 1: #a4bdfc
  • 2: #7ae7bf
  • 3: #dbadff
  • 4: #ff887c
  • 5: #fbd75b
  • 6: #ffb878
  • 7: #46d6db
  • 8: #e1e1e1
  • 9: #5484ed

Email Formatting

  • Prefer plain text. Use --body-file for multi-paragraph messages (or --body-file - for stdin).
  • Same --body-file pattern works for drafts and replies.
  • --body does not unescape \n. If you need inline newlines, use a heredoc or $'Line 1\n\nLine 2'.
  • Use --body-html only when you need rich formatting.
  • HTML tags: for paragraphs, for line breaks, for bold, for italic, for links, / for lists.
  • Example (plain text via stdin):
gog gmail send --to recipient@example.com \
    --subject "Meeting Follow-up" \
    --body-file - <<'EOF'
  Hi Name,

  Thanks for meeting today. Next steps:
  - Item one
  - Item two

  Best regards,
  Your Name
  EOF
  • Example (HTML list):
gog gmail send --to recipient@example.com \
    --subject "Meeting Follow-up" \
    --body-html "<p>Hi Name,</p><p>Thanks for meeting today. Here are the next steps:</p><ul><li>Item one</li><li>Item two</li></ul><p>Best regards,<br>Your Name</p>"

Notes

  • Set GOG_ACCOUNT=you@gmail.com to avoid repeating --account.
  • For scripting, prefer --json plus --no-input.
  • Sheets values can be passed via --values-json (recommended) or as inline rows.
  • Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog).
  • gog gmail search returns one row per thread; use gog gmail messages search when you need every individual email returned separately.

More skills from openclaw/openclaw

  • A1passwordSet up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
  • Aacp-routerRoute 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.
  • Aadd-model-providerAdd and live-prove a model provider with non-interactive config one-liners, without exposing credentials.
  • Aagent-transcriptRequested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
  • Aapple-notesCreate, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.
  • Aapple-remindersList, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.
  • Aauto-qaRun OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.
  • AautoreviewStructured code review through the shared OpenClaw agent-skills installation.
  • Abear-notesCreate, search, and manage Bear notes via grizzly CLI.
  • Ablock-kitUse proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.
  • AblogwatcherMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
  • AblucliBluOS CLI (blu) for discovery, playback, grouping, and volume.

All agent skills → · MCP servers