with one click
// Use when working with Google Workspace through the shared HermesClaw/OpenClaw team route, including Gmail, Calendar, Drive, Docs, Sheets, Contacts, and GOG OAuth verification.
// Use when working with Google Workspace through the shared HermesClaw/OpenClaw team route, including Gmail, Calendar, Drive, Docs, Sheets, Contacts, and GOG OAuth verification.
| name | |
| description | Use when working with Google Workspace through the shared HermesClaw/OpenClaw team route, including Gmail, Calendar, Drive, Docs, Sheets, Contacts, and GOG OAuth verification. |
| metadata | {"openclaw":{"requires":{"bins":["gog"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gog (brew)"}]}} |
Use gog as the shared Google Workspace bridge for HermesClaw/OpenClaw. Treat this as a team capability: Hermes may plan and summarize, but real Gmail/Calendar/Drive/Docs/Sheets actions must route through OpenClaw local execution and leave ledger evidence.
Run status checks without exposing secrets:
gog status --plain
gog auth list --plain
If gog auth list --json returns {}, fall back to --plain; current gog versions can still list valid OAuth accounts there.
If no account is present, ask the operator to run:
gog auth credentials /path/to/client_secret.json
gog auth add user@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
For Gmail-only:
gog auth add user@gmail.com --services gmail
--account <email> when more than one account exists or when the user names an account.--json for machine parsing, but use --plain for auth-account discovery if JSON is empty.Read/search:
gog gmail search 'newer_than:7d' --max 10 --account user@gmail.com --json
gog gmail messages search 'in:inbox from:example.com' --max 20 --account user@gmail.com --json
gog gmail get <messageId> --account user@gmail.com --json
Draft/send:
gog gmail drafts create --to recipient@example.com --subject "Subject" --body-file ./message.txt --account user@gmail.com
gog gmail send --to recipient@example.com --subject "Subject" --body-file ./message.txt --account user@gmail.com
Use --body-file - for stdin bodies. Use --gmail-no-send or draft commands when proving access without sending.
Calendar:
gog calendar events primary --from <iso> --to <iso> --account user@gmail.com --json
gog calendar create primary --summary "Title" --from <iso> --to <iso> --account user@gmail.com
Drive:
gog drive search "name contains 'report'" --max 10 --account user@gmail.com --json
gog drive download <fileId> --out ./file --account user@gmail.com
Docs and Sheets:
gog docs cat <docId> --account user@gmail.com
gog docs export <docId> --format txt --out ./doc.txt --account user@gmail.com
gog sheets get <sheetId> "Sheet1!A1:D10" --account user@gmail.com --json
When asked whether the team has Gmail access, answer from live bridge evidence:
hooks.gmail.account, hooks.enabled)gog binary availabilitygog auth list --plain OAuth accountsskills/gog or skills/googleDo not treat OpenAI Codex OAuth, Google model API keys, or memory facts as Gmail mailbox access.
[HINT] Download the complete skill directory including SKILL.md and all related files