gog-cli
Use this skill whenever the user wants to operate Google Workspace from the command line with gog/gogcli, including Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Apps Script, Chat, Classroom, Contacts, Tasks, People, Groups, Admin, Keep, auth, configuration, scripting, or agent-safe Google automation. Prefer this skill for Google account/file/mail/calendar work when the user mentions gog, gogcli, Google CLI, Gmail search/send, Calendar events, Drive files, Docs/Sheets/Slides editing, Forms, Apps Script, Workspace admin, or command-line Google automation.
What this skill does
# gogcli (gog) `gog` is a fast, script-friendly CLI for Google services. It is JSON-first, supports multiple accounts/OAuth clients, and has explicit guardrails for agent and CI usage. Authoritative upstream: https://github.com/steipete/gogcli This skill was refreshed against upstream `gog` v0.13.0 (2026-04-20). When exact syntax matters, run `gog <command> --help` or `gog schema --json`; the command surface moves quickly, rather inconveniently for anyone fond of stale notes. ## Operating rules - Prefer `gog --json ... | jq ...` for inspection and scripting. - Use `--plain` only when stable TSV is more convenient than JSON. - Use `--dry-run` for supported mutating operations when preparing a change or when user intent is ambiguous. - Use `--no-input` in automation so commands fail instead of prompting. - Use `--force` only when the user asked for the destructive/public/send/admin operation or after you have clearly explained the effect. - Do not repair OAuth, consent, keyring, or Workspace delegation problems silently. Show the exact command the user should run. - Do not export tokens, print secrets, open public shares, add delegates/forwarding, send mail, suspend users, or permanently delete data unless the user explicitly requested that action. - For agent runs that must not send mail, add `--gmail-no-send`, set `GOG_GMAIL_NO_SEND=1`, or configure `gog config no-send set <account>`. ## Install and auth ```bash brew install gogcli gog auth credentials set ~/Downloads/client_secret_....json gog auth add [email protected] --services gmail,calendar,drive gog auth list --check ``` Notes: - Homebrew now uses `brew install gogcli`; old tap examples are obsolete. - `gog auth add` defaults to `--services user`. Request the services needed for the task. - `--services all` is accepted only as a backwards-compatible alias for `user`; do not use it when you need every API. - Use `--readonly`, `--drive-scope readonly|file|full`, and `--gmail-scope readonly|full` for least privilege. - Keep and Admin require Workspace service-account/domain-wide delegation. Google Chat, Groups, directory, and Classroom also have Workspace restrictions. - For headless/CI, consider `--manual`, `--remote`, `--access-token`, or `GOG_AUTH_MODE=adc`. Read `references/authentication.md` for full auth patterns. ## Global flags ```bash --account, -a <email|alias|auto> # account selection --client <name> # named OAuth client/token bucket --access-token <token> # direct short-lived token; also GOG_ACCESS_TOKEN --json, -j # machine-readable JSON --plain, -p # stable TSV --results-only # JSON primary result only --select <fields> # best-effort JSON projection --dry-run, -n # preview supported writes --force, -y # skip confirmations --no-input # never prompt --enable-commands <csv> # allowlist top-level or dotted commands --disable-commands <csv> # denylist top-level or dotted commands --gmail-no-send # block Gmail send operations --verbose, -v # debug logging ``` Useful command aliases: ```bash gog send ... # alias for gog gmail send gog ls # alias for gog drive ls gog search "budget" # alias for gog drive search gog download <fileId> # alias for gog drive download gog upload ./file.pdf # alias for gog drive upload gog me # alias for gog people me gog status # alias for gog auth status gog open <id-or-url> # best-effort Google web URL, offline ``` ## High-value workflows ### Account selection ```bash gog auth alias set work [email protected] gog --account work gmail search 'is:unread newer_than:2d' GOG_ACCOUNT=work gog calendar events primary --today gog --client work auth credentials set ~/Downloads/work-client.json gog --client work auth add [email protected] --services gmail,calendar ``` ### Gmail ```bash gog --json gmail search 'is:unread newer_than:7d' | jq -r '.threads[].id' gog gmail messages search 'from:[email protected] has:attachment' --include-body gog gmail messages search 'subject:report newer_than:30d' --full gog gmail thread get <threadId> --download --out-dir ./attachments gog gmail labels modify <threadId> --add Project --remove INBOX gog gmail messages modify <messageId> --add STARRED gog gmail send --to [email protected] --subject "Hello" --body-file ./body.txt gog gmail forward <messageId> --to [email protected] --note "FYI" ``` For forwarding, autoreply, watch/Pub/Sub, filters, delegates, send-as, label colours, batch operations, and tracking, read `references/gmail.md`. ### Calendar ```bash gog calendar calendars gog calendar events primary --today --weekday gog calendar events --all --from "2026-04-25T00:00:00+02:00" --to "2026-04-26T00:00:00+02:00" gog calendar freebusy --cal primary --from "2026-04-25T09:00:00+02:00" --to "2026-04-25T17:00:00+02:00" gog calendar create primary --summary "Planning" --from "2026-04-25T14:00:00+02:00" --to "2026-04-25T14:30:00+02:00" --attendees "[email protected],[email protected]" --with-meet gog calendar respond primary <eventId> --status accepted --send-updates all ``` Use RFC3339 with timezone offsets for generated datetimes. Read `references/calendar.md` for aliases, subscriptions, secondary calendars, extended properties, Focus Time, OOO, working locations, team calendars, and conflict detection. ### Drive, Docs, Sheets, Slides, Forms, Apps Script ```bash gog drive search "invoice filetype:pdf" --max 20 gog drive upload ./report.md --convert-to doc --parent <folderId> gog drive upload ./deck.pdf --replace <fileId> --name "Board Deck.pdf" gog drive share <fileId> --to user --email [email protected] --role commenter gog docs write <docId> --file ./brief.md --replace --markdown gog docs sed <docId> 's/status/{b c=green}approved/g' --dry-run gog sheets update <spreadsheetId> 'Sheet1!A1' '[["Name","Score"],["Ada",98]]' gog sheets chart list <spreadsheetId> gog slides thumbnail <presentationId> <slideId> --out ./slide.png gog forms responses list <formId> --max 20 gog appscript run <scriptId> myFunction --params '["arg1", 123]' ``` Read `references/drive-docs.md` for current file/content commands. For Docs sed formatting, read `references/sedmat.md`. ### Other services ```bash gog contacts search "Ada" gog tasks lists gog tasks add <tasklistId> --title "Weekly review" --due "2026-04-27" --repeat weekly gog chat messages send spaces/<spaceId> --text "Build complete" gog groups members [email protected] gog admin users list --domain example.com gog keep search "receipt" ``` Read `references/other-services.md` for Chat, Classroom, Contacts, Tasks, People, Groups, Admin, Keep, and time utilities. ## Scripting patterns ```bash # Inspect shape first gog --json gmail search 'is:unread' --max 3 | jq . # Use pagination/all-pages where available gog --json calendar events primary --from today --to tomorrow --all-pages # Fail cleanly when a supported list command has no results gog --json calendar events primary --query "unlikely query" --fail-empty # Batch with xargs after checking output gog --json gmail search 'older_than:1y label:newsletter' --max 200 | \ jq -r '.threads[].id' | \ xargs -n 50 gog gmail labels modify --remove INBOX # Agent-safe command surface GOG_ENABLE_COMMANDS=calendar.events,calendar.freebusy,tasks \ gog --no-input --json calendar events primary --today ``` ## Reference map - `references/command-reference.md` - generated command index from `gog schema --json` - `references/authentication.md` - OAuth clients, service accounts, scopes, keyrings, headless auth - `references/configuration.md` - config keys, environment variables, output modes, safety switches - `references/gmail.md` - Gmail search, read, send, labels, settings, watch, tracking, autoreply - `references
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.