{"skill":{"slug":"google-sheets-gog","displayName":"Google Sheets via gog","summary":"Use this skill when you need to create, inspect, update, append to, or reorganize Google Sheets from a locally installed `gog` CLI. It is for local Google ac...","description":"---\nname: google-sheets-gog\ndescription: Use this skill when you need to create, inspect, update, append to, or reorganize Google Sheets from a locally installed `gog` CLI. It is for local Google account auth and direct spreadsheet operations such as reading ranges, appending rows, updating cells, creating spreadsheets or tabs, and managing named ranges with confirmation before destructive changes.\nhomepage: https://github.com/steipete/gogcli\nmetadata: {\"openclaw\":{\"emoji\":\"📊\",\"homepage\":\"https://github.com/steipete/gogcli\",\"skillKey\":\"gogSheets\",\"requires\":{\"bins\":[\"gog\"],\"config\":[\"skills.entries.gogSheets.config.login\",\"skills.entries.gogSheets.config.password\"]},\"install\":[{\"id\":\"brew\",\"kind\":\"brew\",\"formula\":\"gogcli\",\"bins\":[\"gog\"],\"label\":\"Install gog (Homebrew)\"}]}}\n---\n\n# Google Sheets via gog\n\nUse this skill to operate on Google Sheets through the local `gog` CLI instead of a hosted API bridge. It is intended for spreadsheet CRUD work on the user's own Google account with local OAuth.\n\n## Prerequisites\n\n- `gog` must be installed locally.\n- OpenClaw only loads this skill when `skills.entries.gogSheets.config.login` and `skills.entries.gogSheets.config.password` are both set.\n- The user must have a Google Cloud Desktop OAuth client JSON.\n- The Google Sheets API must be enabled in that Google Cloud project.\n- The agent should prefer the exact spreadsheet ID, tab name, and A1 range before running commands.\n\n## OpenClaw Config\n\nUse `gogSheets` as the OpenClaw config key:\n\n```json5\n{\n  skills: {\n    entries: {\n      gogSheets: {\n        enabled: true,\n        config: {\n          login: \"you@gmail.com\",\n          password: \"app-specific-or-local-secret\"\n        }\n      }\n    }\n  }\n}\n```\n\n`login` and `password` are load-time gating requirements for OpenClaw. They make the skill eligible to load, but the sheet operations below still use local `gog` OAuth unless you later add separate automation around those config values.\n\nIf you do not want to store raw secrets directly in `config`, prefer using `skills.entries.gogSheets.env` or `apiKey` alongside this config and keep prompts free of secrets.\n\n## Setup\n\n1. Store the OAuth client credentials:\n\n```bash\ngog auth credentials ~/Downloads/client_secret_....json\n```\n\n2. Authorize the account for Sheets:\n\n```bash\ngog auth add you@gmail.com --services sheets\n```\n\n3. If Sheets access is being added later to an existing account and Google does not return a refresh token, re-run with consent forced:\n\n```bash\ngog auth add you@gmail.com --services sheets --force-consent\n```\n\n4. Select the account for subsequent commands:\n\n```bash\nexport GOG_ACCOUNT=you@gmail.com\n```\n\nOr pass `--account you@gmail.com` on each command.\n\n## Working Rules\n\n- Prefer `--json` for reads when the result will be parsed or summarized.\n- Prefer precise spreadsheet IDs over titles.\n- Prefer exact A1 ranges such as `Sheet1!A1:D20`.\n- If a subcommand or flag is uncertain, inspect help with `gog sheets --help` or `gog <subcommand> --help` before executing.\n- Keep commands scoped to Sheets by default. If sandboxing is needed, use `GOG_ENABLE_COMMANDS=sheets`.\n- Remember that OpenClaw gating checks `gog` on the host at skill load time; sandboxed runs also need `gog` installed inside the container.\n- For read-only inspection sessions, prefer re-auth with `--readonly` instead of assuming write scopes are acceptable.\n\n## Safety Policy\n\nBefore any destructive or broad write, explicitly state:\n\n- target spreadsheet ID\n- target tab or named range\n- exact range or object being changed\n- operation being performed\n\nAsk for confirmation before:\n\n- `clear` on any range\n- `find-replace` across a whole spreadsheet or large tab\n- deleting tabs\n- deleting named ranges\n- broad formatting, merge, unmerge, resize, or freeze changes\n- insert operations that shift existing rows or columns\n- overwriting a large existing range with `update`\n\nDirect reads and narrowly scoped appends or cell updates can proceed without a separate confirmation when the user request is already explicit.\n\n## Common Tasks\n\n### Read spreadsheet data\n\n- Inspect metadata for spreadsheet structure.\n- Read a specific A1 range.\n- Read a named range when the spreadsheet already defines one.\n- Use JSON output when the data will be transformed or summarized.\n\nSee [references/gog-sheets.md](references/gog-sheets.md) for command patterns.\n\n### Create and extend spreadsheets\n\n- Create a new spreadsheet with one or more tabs.\n- Add a new tab to an existing spreadsheet.\n- Rename a tab when requested.\n\n### Update and append data\n\n- Use `update` for direct cell or range replacement.\n- Use `append` for new rows.\n- If the sheet relies on data validation, preserve it with `--copy-validation-from` when appropriate.\n\n### Organize structure\n\n- Manage named ranges when the user refers to stable data blocks by name.\n- Insert rows or columns only after checking whether data shifting is intended.\n- Use formatting commands only when formatting itself is part of the task.\n\n## Failure Handling\n\n- If auth fails, verify credentials were stored with `gog auth credentials` and inspect account state with `gog auth status`.\n- If a command fails due to insufficient scopes, re-auth with the needed service and `--force-consent`.\n- If the spreadsheet target is ambiguous, stop and resolve the spreadsheet ID before mutating anything.\n- If the requested operation may require broader Google access than Sheets alone, inspect `gog` help first rather than guessing.\n\n## References\n\n- Command examples: [references/gog-sheets.md](references/gog-sheets.md)\n- Upstream docs: https://github.com/steipete/gogcli/blob/main/README.md\n","tags":{"latest":"1.1.0"},"stats":{"comments":0,"downloads":632,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1774001410604,"updatedAt":1778492060163},"latestVersion":{"version":"1.1.0","createdAt":1774003523020,"changelog":"Added auth requirements","license":"MIT-0"},"metadata":{"setup":[{"key":"skills.entries.gogSheets.config.login","required":true},{"key":"skills.entries.gogSheets.config.password","required":true}],"os":null,"systems":null},"owner":{"handle":"kvarts","userId":"s17880xq54wzjt106w60b04ash8849x9","displayName":"Ivan Kochergin","image":"https://avatars.githubusercontent.com/u/6749451?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089997575}}