Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

gog — Claude Code skill: what it does, how to install

Guides an agent using the gog CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. Use it when Google Workspace tasks need to run from a terminal.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add openclaw/openclaw --skill gog -a claude-code
Open on GitHub

What gog does

This skill gives the agent operating rules for gog. It can search and send Gmail messages, inspect calendars, find Drive files, and list contacts. It also reads, updates, appends, and clears ranges in Sheets.

For Docs, the available actions are viewing, exporting, and copying. The instructions tell the agent to try an already authorized account first, then start OAuth setup after an authentication error. Scripts can use --json with --no-input, while GOG_ACCOUNT sets a default account.

The gog binary and OAuth access are required. Install this skill when an agent needs to operate Google Workspace through a CLI; it is not the right fit for in-place Docs edits, which need a Docs API client outside gog.

What it helps with

  • search Gmail messages from a time period
  • send an email from a file or stdin
  • create a Calendar event with a color
  • update a cell range in Sheets
  • export a Google Doc to a text file

Example prompts for the agent

  • Find Gmail messages from the last 7 days.
  • Create a Calendar event for the requested time and set its color.
  • Export this Docs document to a text file.

How to install gog

1Skills CLI (Vercel)

npx skills add openclaw/openclaw --skill gog -a claude-code

2Manually: put the files in place

~/.claude/skills/gog/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/gog/

From the same set45

The whole set →
summarize openclaw Runs a CLI tool to summarize or transcribe web articles, YouTube videos, podcasts, and local PDF documents directly within your AI assistant. Claude Code CX Codex Cursor +1 26,900installs weather openclaw This skill fetches current conditions and forecasts for a city, region, airport code, or coordinates. Use it to check rain and temperature or plan a trip. Claude Code CX Codex Cursor +1 9,300installs tmux openclaw Lets an agent work with live tmux sessions: read pane output, send keys and text, wait for a prompt line to show up. Claude Code CX Codex Cursor +1 8,400installs openai-whisper openclaw This skill lets your agent call the Whisper CLI to transcribe audio on your own machine. No API key needed. Claude Code CX Codex Cursor +1 7,100installs nano-pdf openclaw Edit PDF pages with plain text instructions through the nano-pdf CLI. Useful when you need to fix a typo or swap a heading without leaving your terminal. Claude Code CX Codex Cursor +1 7,100installs skill-creator openclaw A skill for writing, repairing and reviewing other skills. It splits behaviour into branches, sets the frontmatter and sorts resources into folders. Useful once your skill folder gets crowded. Claude Code CX Codex Cursor +1 6,700installs coding-agent openclaw This skill sends large coding tasks to Codex, Claude Code, or OpenCode as background workers. Use it for refactors, PR reviews, and issue-to-PR work. Claude Code CX Codex Cursor +1 6,500installs obsidian openclaw Interacts with Obsidian vaults through the official obsidian CLI. It helps agents read, search, and update notes or tasks without leaving the chat. Claude Code CX Codex Cursor +1 6,400installs

Similar

recipe-post-mortem-setup official googleworkspace This skill creates a Google Docs post-mortem, schedules a Google Calendar review, and sends a Chat notification. Use it after an incident when the same workflow should run each time. Claude Code CX Codex Cursor +1 29,800installs recipe-log-deal-update official googleworkspace Appends a deal status update to a Google Sheets sales pipeline. Useful for tracking sales updates directly through agent CLI tools. Claude Code CX Codex Cursor +1 29,500installs recipe-create-classroom-course official googleworkspace Creates a Google Classroom course, sends student invites, and lists enrolled members via CLI commands. Claude Code CX Codex Cursor +1 29,400installs pdf official openai A skill for reading, creating and reviewing PDFs where layout matters. Useful when the agent builds a document and needs to see how it renders. Claude Code CX Codex Cursor +1 13,400installs convert-documents-to-markdown firecrawl Converts office documents, spreadsheets, and PDFs into GitHub-Flavored Markdown via anydoc. Useful when an agent must read DOCX or XLSX files without manual copy-pasting. Claude Code CX Codex Cursor +1 12,500installs pptx official anthropics This skill helps create, read, and edit .pptx files and .potx templates. Use it when building a deck or extracting slide text. Claude Code Claude.ai 241,433installs pdf official anthropics This skill lets an agent read, create, and edit PDF files, including forms and scanned documents. Use it when PDF work is part of the task. Claude Code Claude.ai 216,041installs docx official anthropics This skill creates, reads, and edits Word documents and templates. Use it for reports, letters, and files that need headings, tables, or page numbers. Claude Code Claude.ai 206,304installs

Questions about gog

How do I install gog in Claude Code?

Install the skill with npx skills add openclaw/openclaw --skill gog -a claude-code. Running its operations also requires the gog binary and configured OAuth access.

What does gog do?

gog gives an agent instructions for a CLI that works with Gmail, Calendar, Drive, Contacts, Sheets, and Docs. It covers email search and sending, calendar actions, spreadsheet operations, and document export.

Can gog edit Google Docs in place?

gog can view, export, and copy Docs. Editing a document in place requires a Docs API client, which is outside gog.

Source text

SKILL.md · MIT
---
name: gog
description: "Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs."
homepage: https://gogcli.sh
metadata:
  {
    "openclaw":
      {
        "emoji": "🎮",
        "requires": { "bins": ["gog"] },
        "install":
          [
            {
              "id": "brew",
              "kind": "brew",
              "formula": "gogcli",
              "bins": ["gog"],
              "label": "Install gog (brew)",
            },
          ],
      },
  }
---

# 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 [email protected] --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 <port>:127.0.0.1:<port> 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 `auth_url` (and `state_reused`) then exits. After browser consent, the operator runs `--remote --step 2 --auth-url <callback-url>` in the trusted shell. A failed `localhost` page load after consent is expected.
3. Keep the same resolved config context across remote steps: `GOG_CONFIG_DIR` takes precedence over `--home`, which takes precedence over `GOG_HOME`. Also preserve `--client`, services/scopes, redirect URI, and consent options. Matching unexpired manual state may be reused (`state_reused=true`).
4. If desktop keyring is unavailable, configure the file backend (`gog auth keyring file`) and set `GOG_KEYRING_PASSWORD` in the Gateway environment so non-interactive agent/`--no-input` runs can read tokens. `gog auth doctor` reports when the password is missing.
5. 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 [email protected]`
- Gmail send (plain): `gog gmail send --to [email protected] --subject "Hi" --body "Hello"`
- Gmail send (multi-line): `gog gmail send --to [email protected] --subject "Hi" --body-file ./message.txt`
- Gmail send (stdin): `gog gmail send --to [email protected] --subject "Hi" --body-file -`
- Gmail send (HTML): `gog gmail send --to [email protected] --subject "Hi" --body-html "<p>Hello</p>"`
- Gmail draft: `gog gmail drafts create --to [email protected] --subject "Hi" --body-file ./message.txt`
- Gmail send draft: `gog gmail drafts send <draftId>`
- Gmail reply: `gog gmail send --to [email protected] --subject "Re: Hi" --body "Reply" --reply-to-message-id <msgId>`
- Calendar list events: `gog calendar events <calendarId> --from <iso> --to <iso>`
- Calendar create event: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso>`
- Calendar create with color: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> --event-color 7`
- Calendar update event: `gog calendar update <calendarId> <eventId> --summary "New Title" --event-color 4`
- Calendar show colors: `gog calendar colors`
- Drive search: `gog drive search "query" --max 10`
- Contacts: `gog contacts list --max 20`
- Sheets get: `gog sheets get <sheetId> "Tab!A1:D10" --json`
- Sheets update: `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED`
- Sheets append: `gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS`
- Sheets clear: `gog sheets clear <sheetId> "Tab!A2:Z"`
- Sheets metadata: `gog sheets metadata <sheetId> --json`
- Docs export: `gog docs export <docId> --format txt --out /tmp/doc.txt`
- Docs cat: `gog docs cat <docId>`

Calendar Colors

- Use `gog calendar colors` to see all available event colors (IDs 1-11)
- Add colors to events with `--event-color <id>` 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
  - 10: #51b749
  - 11: #dc2127

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: `<p>` for paragraphs, `<br>` for line breaks, `<strong>` for bold, `<em>` for italic, `<a href="url">` for links, `<ul>`/`<li>` for lists.
- Example (plain text via stdin):

  ```bash
  gog gmail send --to [email protected] \
    --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):
  ```bash
  gog gmail send --to [email protected] \
    --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 `[email protected]` 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.

© openclaw · MIT · openclaw/openclaw

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor