gog

CLI do Google Workspace para Gmail, Calendário, Drive, Contatos, Planilhas e Documentos.

O que é gog?

O `gog` é uma ferramenta de linha de comando (CLI) que permite interagir com serviços do Google Workspace, como Gmail, Google Agenda, Google Drive, Contatos, Google Planilhas e Google Documentos. Ela é extremamente útil para desenvolvedores e agentes de IA que precisam automatizar tarefas como enviar e-mails, criar eventos no calendário, pesquisar arquivos no Drive ou manipular planilhas sem depender de uma interface gráfica. A habilidade suporta múltiplos métodos de autenticação OAuth, incluindo autenticação padrão em máquinas com navegador e fluxos manuais/remotos para hosts headless (sem interface gráfica). O agente pode executar comandos diretamente, mas nunca deve solicitar senhas, client secrets ou tokens de atualização via chat. A configuração inicial é feita uma vez com `gog auth`, e o agente deve preferir contas já autorizadas antes de iniciar um novo setup. O `gog` oferece comandos para pesquisa, envio e rascunho de e-mails (suportando HTML e multiline), criação e atualização de eventos no calendário com cores, busca e obtenção de arquivos no Drive, listagem de contatos, e operações completas em planilhas (ler, atualizar, anexar, limpar) e documentos (exportar, exibir). A ferramenta também possui modos `--json` e `--no-input` para fácil integração em scripts e pipelines de CI/CD.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/gog

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que gog faz?

Use gog para Gmail/Calendário/Drive/Contatos/Planilhas/Documentos. Requer configuração OAuth.

Prefira uma conta host já autorizada: execute o comando gog solicitado primeiro. Entre na configuração apenas após um erro de autenticação. Nunca peça senhas, client secrets ou refresh tokens no chat.

Configuração (uma vez)

  • gog auth credentials /caminho/para/client_secret.json
  • gog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheets
  • gog auth list

Hosts Gateway remotos / sem interface gráfica

Quando o host Gateway não possui exibição local do navegador:

  1. Prefira um listener de callback ativo no host Gateway. Da máquina com navegador, encaminhe a porta exata do callback (ssh -L <porta>:127.0.0.1:<porta> usuario@gateway-host), abra a URL de autorização que gog imprime e deixe o redirecionamento completar nessa porta encaminhada.
  2. Quando um listener ativo não estiver disponível, o operador escolhe um caminho de modo de colagem (paste-mode) em um shell confiável no host Gateway. URLs de callback nunca devem entrar no chat ou na entrada de ferramenta do agente:
    • --manual: o operador cola a URL de redirecionamento completa no prompt interativo do gog.
    • --remote --step 1: imprime auth_url (e state_reused) e sai. Após o consentimento no navegador, o operador executa --remote --step 2 --auth-url <callback-url> no shell confiável. Um carregamento de página localhost com falha após o consentimento é esperado.
  3. Mantenha o mesmo contexto de configuração resolvido entre as etapas remotas: GOG_CONFIG_DIR tem precedência sobre --home, que tem precedência sobre GOG_HOME. Preserve também --client, services/scopes, URI de redirecionamento e opções de consentimento. O estado manual não expirado correspondente pode ser reutilizado (state_reused=true).
  4. Se o keyring da área de trabalho não estiver disponível, configure o backend de arquivo (gog auth keyring file) e defina GOG_KEYRING_PASSWORD no ambiente do Gateway para que execuções não interativas do agente/--no-input possam ler tokens. gog auth doctor relata quando a senha está ausente.
  5. Callback recebido não é o mesmo que token armazenado. Se a troca de token ou a consulta de identidade falhar atrás de um proxy, reinicie da etapa 1 após o operador aprovar exceções de escopo de saída ou proxy para os endpoints Google necessários. Não ignore a política de rede do host nem reutilize estado com falha ou expirado.

Para diagnóstico, inspecione cada entrada relatada por gog auth list --check; seu status de saída não prova que cada token armazenado é válido. Da mesma forma, inspecione o status relatado por gog auth doctor em vez de confiar apenas em seu código de saída.

Comandos comuns

  • Pesquisar no Gmail: gog gmail search 'newer_than:7d' --max 10
  • Pesquisar mensagens do Gmail (por e-mail, ignora linhas de assunto): gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected]
  • Enviar e-mail (simples): gog gmail send --to [email protected] --subject "Oi" --body "Olá"
  • Enviar e-mail (multilinha): gog gmail send --to [email protected] --subject "Oi" --body-file ./message.txt
  • Enviar e-mail (stdin): gog gmail send --to [email protected] --subject "Oi" --body-file -
  • Enviar e-mail (HTML): gog gmail send --to [email protected] --subject "Oi" --body-html "<p>Olá</p>"
  • Rascunho de e-mail: gog gmail drafts create --to [email protected] --subject "Oi" --body-file ./message.txt
  • Enviar rascunho: gog gmail drafts send <draftId>
  • Responder e-mail: gog gmail send --to [email protected] --subject "Re: Oi" --body "Resposta" --reply-to-message-id <msgId>
  • Listar eventos do Calendário: gog calendar events <calendarId> --from <iso> --to <iso>
  • Criar evento no Calendário: gog calendar create <calendarId> --summary "Título" --from <iso> --to <iso>
  • Criar evento com cor: gog calendar create <calendarId> --summary "Título" --from <iso> --to <iso> --event-color 7
  • Atualizar evento no Calendário: gog calendar update <calendarId> <eventId> --summary "Novo Título" --event-color 4
  • Mostrar cores do Calendário: gog calendar colors
  • Pesquisar no Drive: gog drive search "consulta" --max 10
  • Contatos: gog contacts list --max 20
  • Obter dados de Planilha: gog sheets get <sheetId> "Tab!A1:D10" --json
  • Atualizar Planilha: gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED
  • Anexar à Planilha: gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS
  • Limpar Planilha: gog sheets clear <sheetId> "Tab!A2:Z"
  • Metadados da Planilha: gog sheets metadata <sheetId> --json
  • Exportar Documento: gog docs export <docId> --format txt --out /tmp/doc.txt
  • Exibir Documento: gog docs cat <docId>

Cores do Calendário

  • Use gog calendar colors para ver todas as cores de evento disponíveis (IDs 1-11)
  • Adicione cores aos eventos com a flag --event-color <id>
  • IDs das cores de evento (da saída de gog calendar colors):
    • 1: #a4bdfc
    • 2: #7ae7bf
    • 3: #dbadff
    • 4: #ff887c
    • 5: #fbd75b
    • 6: #ffb878
    • 7: #46d6db
    • 8: #e1e1e1
    • 9: #5484ed
    • 10: #51b749
    • 11: #dc2127

Formatação de E-mail

  • Prefira texto simples. Use --body-file para mensagens com vários parágrafos (ou --body-file - para stdin).

  • O mesmo padrão --body-file funciona para rascunhos e respostas.

  • --body não interpreta \n. Se você precisar de quebras de linha inline, use um heredoc ou $'Linha 1\n\nLinha 2'.

  • Use --body-html apenas quando precisar de formatação rica.

  • Tags HTML: <p> para parágrafos, <br> para quebras de linha, <strong> para negrito, <em> para itálico, <a href="url"> para links, <ul>/<li> para listas.

  • Exemplo (texto simples via stdin):

    gog gmail send --to [email protected] \
      --subject "Acompanhamento de Reunião" \
      --body-file - <<'EOF'
    Olá Nome,
    
    Obrigado pela reunião de hoje. Próximos passos:
    - Item um
    - Item dois
    
    Atenciosamente,
    Seu Nome
    EOF
    
  • Exemplo (lista HTML):

    gog gmail send --to [email protected] \
      --subject "Acompanhamento de Reunião" \
      --body-html "<p>Olá Nome,</p><p>Obrigado pela reunião de hoje. Aqui estão os próximos passos:</p><ul><li>Item um</li><li>Item dois</li></ul><p>Atenciosamente,<br>Seu Nome</p>"
    

Notas

  • Defina [email protected] para evitar repetir --account.
  • Para scripts, prefira --json mais --no-input.
  • Valores de planilhas podem ser passados via --values-json (recomendado) ou como linhas inline.
  • Documentos suporta exportar/exibir/copiar. Edições no local requerem um cliente da API de Documentos (não disponível no gog).
  • gog gmail search retorna uma linha por thread; use gog gmail messages search quando precisar de cada e-mail individual retornado separadamente.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Habilidades Relacionadas