← Skills
gog
Google Workspace CLI — Gmail, Calendar, Drive, Sheets, Docs
Used by
name: gog description: Google Workspace CLI for Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Forms, Apps Script, Contacts, Tasks, People, Groups, and Keep. homepage: https://gogcli.sh metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"binary","kind":"binary","url":"https://github.com/steipete/gogcli/releases","bins":["gog"],"label":"Install gog (Windows binary from GitHub releases)"}]}}
gog (v0.11.0 — Windows native)
Unified CLI for Google Workspace. JSON-first output, multi-account, least-privilege auth.
Installation (Windows)
- Download
gogcli_<version>_windows_amd64.zipfrom https://github.com/steipete/gogcli/releases - Extract
gog.exeto a directory on PATH (e.g.C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\) - Verify:
gog --version
Setup (once)
gog auth credentials C:\path\to\client_secret.jsongog auth add you@gmail.com --services all --manual(use--manualfor headless/VPS)gog auth list
Global Flags
--account <email>— select account--client <name>— select OAuth client--json— JSON output--plain— TSV output (for scripting)--force— skip confirmations--no-input— fail instead of prompting--max <n>— limit results--page <token>— pagination
Gmail
- Search:
gog gmail search "is:unread from:x@y.com newer_than:7d" --max 10 --json - Message search:
gog gmail messages search "is:unread" --include-body --json - Read thread:
gog gmail thread get <threadId> --json - Read message:
gog gmail get <messageId> --format full --json - Send:
gog gmail send --to a@b.com --subject "Hi" --body "Hello" - Send HTML + attachment:
gog gmail send --to a@b.com --subject "Report" --html "<h1>Hi</h1>" --attach report.pdf - Send tracked:
gog gmail send --to a@b.com --subject "Hi" --body "Hello" --track - Labels:
gog gmail labels list --json - Drafts:
gog gmail drafts list --json - Filters:
gog gmail filters list --json
Calendar
- List calendars:
gog calendar calendars --max 5 --json - Events:
gog calendar events <calendarId> --from <iso> --to <iso> --json - Create event:
gog calendar create <calendarId> --summary "Meeting" --start <iso> --end <iso> - Update event:
gog calendar update <calendarId> <eventId> --summary "Updated" - Free/busy:
gog calendar freebusy <email> --from <iso> --to <iso> --json - Conflicts:
gog calendar conflicts <calendarId> --from <iso> --to <iso>
Drive
- List:
gog drive ls --max 10 --json - Search:
gog drive search "query" --max 10 --json - Upload:
gog drive upload /path/to/file --parent <folderId> - Upload + replace:
gog drive upload /path/to/file --replace <fileId> - Upload + convert:
gog drive upload file.csv --convert-to sheet - Download:
gog drive download <fileId> --out /path/to/output - Share:
gog drive share <fileId> --to user@example.com --role writer - Share to domain:
gog drive share <fileId> --to domain --role reader
Sheets
- Get cells:
gog sheets get <sheetId> "Tab!A1:D10" --json - Update cells:
gog sheets update <sheetId> "Tab!A1:B2" --values-json "[[\"A\",\"B\"],[\"1\",\"2\"]]" --input USER_ENTERED - Append rows:
gog sheets append <sheetId> "Tab!A:C" --values-json "[[\"x\",\"y\",\"z\"]]" --insert INSERT_ROWS - Clear range:
gog sheets clear <sheetId> "Tab!A2:Z" - Metadata:
gog sheets metadata <sheetId> --json
Docs
- Cat:
gog docs cat <docId> - Cat with tabs:
gog docs cat <docId> --all-tabs - Export:
gog docs export <docId> --format txt --out output.txt - Create from markdown:
gog docs create --file input.md --title "My Doc" - List tabs:
gog docs list-tabs <docId> - Write:
gog docs write <docId> --text "Content" - Find/replace:
gog docs find-replace <docId> --find "old" --replace "new"
Slides
- List slides:
gog slides list-slides <presentationId> - Read slide:
gog slides read-slide <presentationId> <slideIndex> - Add slide:
gog slides add-slide <presentationId> - Create from markdown:
gog slides create --file input.md --title "My Deck"
Contacts & People
- List contacts:
gog contacts list --max 20 --json - Get contact:
gog contacts get <resourceName> --json - Update:
gog contacts update <resourceName> --email new@x.com - Directory:
gog people directory --max 50 --json
Tasks
- List task lists:
gog tasks lists --json - List tasks:
gog tasks list <taskListId> --json - Create task:
gog tasks create <taskListId> --title "Do something" - Complete:
gog tasks complete <taskListId> <taskId>
Chat (Workspace only)
- List spaces:
gog chat spaces --json - Send message:
gog chat send <spaceId> --text "Hello" - List messages:
gog chat messages <spaceId> --json
Classroom
- List courses:
gog classroom courses --json - Coursework:
gog classroom coursework <courseId> --json
Notes
- Set
GOG_ACCOUNT=you@gmail.comenv var to avoid repeating--accounton every command. - For scripting/automation, always prefer
--jsonplus--no-input. - Sheets values can be passed via
--values-json(recommended) or as inline rows. - Docs supports create/write/insert/delete/find-replace since v0.11.0.
- Use
--forceto skip confirmations when sending mail or creating events. - Config stored at:
%APPDATA%\gogcli\on Windows. - Tokens stored in Windows Credential Manager (or encrypted file-based keyring).
View raw SKILL.md
---
name: gog
description: Google Workspace CLI for Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Forms, Apps Script, Contacts, Tasks, People, Groups, and Keep.
homepage: https://gogcli.sh
metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"binary","kind":"binary","url":"https://github.com/steipete/gogcli/releases","bins":["gog"],"label":"Install gog (Windows binary from GitHub releases)"}]}}
---
# gog (v0.11.0 — Windows native)
Unified CLI for Google Workspace. JSON-first output, multi-account, least-privilege auth.
## Installation (Windows)
1. Download `gogcli_<version>_windows_amd64.zip` from https://github.com/steipete/gogcli/releases
2. Extract `gog.exe` to a directory on PATH (e.g. `C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\`)
3. Verify: `gog --version`
## Setup (once)
- `gog auth credentials C:\path\to\client_secret.json`
- `gog auth add you@gmail.com --services all --manual` (use `--manual` for headless/VPS)
- `gog auth list`
## Global Flags
- `--account <email>` — select account
- `--client <name>` — select OAuth client
- `--json` — JSON output
- `--plain` — TSV output (for scripting)
- `--force` — skip confirmations
- `--no-input` — fail instead of prompting
- `--max <n>` — limit results
- `--page <token>` — pagination
## Gmail
- Search: `gog gmail search "is:unread from:x@y.com newer_than:7d" --max 10 --json`
- Message search: `gog gmail messages search "is:unread" --include-body --json`
- Read thread: `gog gmail thread get <threadId> --json`
- Read message: `gog gmail get <messageId> --format full --json`
- Send: `gog gmail send --to a@b.com --subject "Hi" --body "Hello"`
- Send HTML + attachment: `gog gmail send --to a@b.com --subject "Report" --html "<h1>Hi</h1>" --attach report.pdf`
- Send tracked: `gog gmail send --to a@b.com --subject "Hi" --body "Hello" --track`
- Labels: `gog gmail labels list --json`
- Drafts: `gog gmail drafts list --json`
- Filters: `gog gmail filters list --json`
## Calendar
- List calendars: `gog calendar calendars --max 5 --json`
- Events: `gog calendar events <calendarId> --from <iso> --to <iso> --json`
- Create event: `gog calendar create <calendarId> --summary "Meeting" --start <iso> --end <iso>`
- Update event: `gog calendar update <calendarId> <eventId> --summary "Updated"`
- Free/busy: `gog calendar freebusy <email> --from <iso> --to <iso> --json`
- Conflicts: `gog calendar conflicts <calendarId> --from <iso> --to <iso>`
## Drive
- List: `gog drive ls --max 10 --json`
- Search: `gog drive search "query" --max 10 --json`
- Upload: `gog drive upload /path/to/file --parent <folderId>`
- Upload + replace: `gog drive upload /path/to/file --replace <fileId>`
- Upload + convert: `gog drive upload file.csv --convert-to sheet`
- Download: `gog drive download <fileId> --out /path/to/output`
- Share: `gog drive share <fileId> --to user@example.com --role writer`
- Share to domain: `gog drive share <fileId> --to domain --role reader`
## Sheets
- Get cells: `gog sheets get <sheetId> "Tab!A1:D10" --json`
- Update cells: `gog sheets update <sheetId> "Tab!A1:B2" --values-json "[[\"A\",\"B\"],[\"1\",\"2\"]]" --input USER_ENTERED`
- Append rows: `gog sheets append <sheetId> "Tab!A:C" --values-json "[[\"x\",\"y\",\"z\"]]" --insert INSERT_ROWS`
- Clear range: `gog sheets clear <sheetId> "Tab!A2:Z"`
- Metadata: `gog sheets metadata <sheetId> --json`
## Docs
- Cat: `gog docs cat <docId>`
- Cat with tabs: `gog docs cat <docId> --all-tabs`
- Export: `gog docs export <docId> --format txt --out output.txt`
- Create from markdown: `gog docs create --file input.md --title "My Doc"`
- List tabs: `gog docs list-tabs <docId>`
- Write: `gog docs write <docId> --text "Content"`
- Find/replace: `gog docs find-replace <docId> --find "old" --replace "new"`
## Slides
- List slides: `gog slides list-slides <presentationId>`
- Read slide: `gog slides read-slide <presentationId> <slideIndex>`
- Add slide: `gog slides add-slide <presentationId>`
- Create from markdown: `gog slides create --file input.md --title "My Deck"`
## Contacts & People
- List contacts: `gog contacts list --max 20 --json`
- Get contact: `gog contacts get <resourceName> --json`
- Update: `gog contacts update <resourceName> --email new@x.com`
- Directory: `gog people directory --max 50 --json`
## Tasks
- List task lists: `gog tasks lists --json`
- List tasks: `gog tasks list <taskListId> --json`
- Create task: `gog tasks create <taskListId> --title "Do something"`
- Complete: `gog tasks complete <taskListId> <taskId>`
## Chat (Workspace only)
- List spaces: `gog chat spaces --json`
- Send message: `gog chat send <spaceId> --text "Hello"`
- List messages: `gog chat messages <spaceId> --json`
## Classroom
- List courses: `gog classroom courses --json`
- Coursework: `gog classroom coursework <courseId> --json`
## Notes
- Set `GOG_ACCOUNT=you@gmail.com` env var to avoid repeating `--account` on every command.
- For scripting/automation, always prefer `--json` plus `--no-input`.
- Sheets values can be passed via `--values-json` (recommended) or as inline rows.
- Docs supports create/write/insert/delete/find-replace since v0.11.0.
- Use `--force` to skip confirmations when sending mail or creating events.
- Config stored at: `%APPDATA%\gogcli\` on Windows.
- Tokens stored in Windows Credential Manager (or encrypted file-based keyring).