gog について
gog は Google Gmail、Calendar、Drive、Contacts、Sheets、Docs をコマンドで操作する CLI で、これらのサービスを扱う個人やワークフロー向けです。OAuth に対応し、ブラウザー表示のないホストでのリモート認証手順も備えています。
主な機能
- 01Gmail メールの検索・送信・管理
- 02カレンダー予定の一覧表示と作成
- 03Drive ファイルの検索と読み取り
- 04連絡先と Sheets データの管理
- 05Docs ファイルのエクスポートと表示
- 06リモート OAuth 認証への対応
活用シーン
- 01最近のメールを探して返信
- 02色を指定して予定を作成
- 03Drive ファイルの検索やシート範囲の読み取り
- 04ローカルブラウザーのないホストで認証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openclaw/ openclaw --skill gogインストール後、Claude Code で/gogを入力して読み込まれたか確認します。
詳細
gog
Gmail/Calendar/Drive/Contacts/Sheets/Docs には gog を使用します。OAuth のセットアップが必要です。
すでに認可済みのホストアカウントを優先してください。まず要求された gog コマンドを実行します。セットアップに進むのは認証エラーが発生した後だけにしてください。チャットでパスワード、クライアントシークレット、リフレッシュトークンを尋ねてはいけません。
セットアップ(1 回のみ)
gog auth credentials /path/to/client_secret.jsongog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheetsgog auth list
リモート / ヘッドレスの Gateway ホスト
Gateway ホストにローカルのブラウザ表示がない場合:
- Gateway ホスト上でのライブコールバックリスナーを優先します。ブラウザのあるマシンから、正確なコールバックポートを転送し(
ssh -L <port>:127.0.0.1:<port> user@gateway-host)、gogが出力する認可 URL を開き、その転送ポート上でリダイレクトを完了させます。 - ライブリスナーが利用できない場合、オペレーターは Gateway ホスト上の信頼できるシェルで、いずれか 1 つのペーストモードの経路を選択します。コールバック URL は決してチャットやエージェントのツール入力に入れてはいけません:
--manual:オペレーターが完全なリダイレクト URL をgogの対話型プロンプトに貼り付けます。--remote --step 1:auth_url(およびstate_reused)を出力して終了します。ブラウザでの同意後、オペレーターは信頼できるシェルで--remote --step 2 --auth-url <callback-url>を実行します。同意後にlocalhostページの読み込みが失敗しても想定どおりです。
- リモートの各ステップ間で、同じ解決済み設定コンテキストを維持します。
GOG_CONFIG_DIRは--homeより優先され、--homeはGOG_HOMEより優先されます。また、--client、サービス/スコープ、リダイレクト URI、同意オプションも維持します。一致する有効期限内の manual state は再利用される場合があります(state_reused=true)。 - デスクトップのキーリングが利用できない場合は、ファイルバックエンドを設定し(
gog auth keyring file)、Gateway 環境でGOG_KEYRING_PASSWORDを設定して、非対話型のエージェント/--no-input実行がトークンを読み取れるようにします。gog auth doctorはパスワードが欠落している場合に報告します。 - コールバックを受信したことは、トークンが保存されたことと同じではありません。プロキシの背後でトークン交換や ID ルックアップが失敗した場合は、オペレーターが必要な Google エンドポイントへのスコープ付きの外向き通信またはプロキシの例外を承認したうえで、ステップ 1 から再開します。ホストのネットワークポリシーを回避したり、失敗したまたは期限切れの state を再利用したりしないでください。
診断では、gog auth list --check が報告するすべてのエントリを検査してください。その終了ステータスは、保存されているすべてのトークンが有効であることを証明するものではありません。同様に、gog auth doctor が報告するステータスを検査し、終了コードだけに頼らないでください。
一般的なコマンド
- Gmail 検索:
gog gmail search 'newer_than:7d' --max 10 - Gmail メッセージ検索(メールごと、スレッドを無視):
gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected] - Gmail 送信(プレーンテキスト):
gog gmail send --to [email protected] --subject "Hi" --body "Hello" - Gmail 送信(複数行):
gog gmail send --to [email protected] --subject "Hi" --body-file ./message.txt - Gmail 送信(stdin):
gog gmail send --to [email protected] --subject "Hi" --body-file - - Gmail 送信(HTML):
gog gmail send --to [email protected] --subject "Hi" --body-html "<p>Hello</p>" - Gmail 下書き:
gog gmail drafts create --to [email protected] --subject "Hi" --body-file ./message.txt - Gmail 下書き送信:
gog gmail drafts send <draftId> - Gmail 返信:
gog gmail send --to [email protected] --subject "Re: Hi" --body "Reply" --reply-to-message-id <msgId> - カレンダー 予定一覧:
gog calendar events <calendarId> --from <iso> --to <iso> - カレンダー 予定作成:
gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> - カレンダー 色付きで作成:
gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> --event-color 7 - カレンダー 予定更新:
gog calendar update <calendarId> <eventId> --summary "New Title" --event-color 4 - カレンダー 色一覧表示:
gog calendar colors - Drive 検索:
gog drive search "query" --max 10 - 連絡先:
gog contacts list --max 20 - Sheets 取得:
gog sheets get <sheetId> "Tab!A1:D10" --json - Sheets 更新:
gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED - Sheets 追加:
gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS - Sheets クリア:
gog sheets clear <sheetId> "Tab!A2:Z" - Sheets メタデータ:
gog sheets metadata <sheetId> --json - Docs エクスポート:
gog docs export <docId> --format txt --out /tmp/doc.txt - Docs cat:
gog docs cat <docId>
カレンダーの色
- 利用可能な予定の色(ID 1〜11)を確認するには
gog calendar colorsを使用します。 --event-color <id>フラグで予定に色を追加します。- 予定の色 ID(
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
メールの書式設定
-
プレーンテキストを優先してください。複数段落のメッセージには
--body-fileを使用します(stdin の場合は--body-file -)。 -
同じ
--body-fileのパターンは下書きや返信にも使用できます。 -
--bodyは\nをアンエスケープしません。インラインで改行が必要な場合は、ヒアドキュメントまたは$'Line 1\n\nLine 2'を使用してください。 -
リッチな書式設定が必要な場合にのみ
--body-htmlを使用してください。 -
HTML タグ: 段落には
<p>、改行には<br>、太字には<strong>、斜体には<em>、リンクには<a href="url">、リストには<ul>/<li>を使用します。 -
例(stdin 経由のプレーンテキスト):
gog gmail send --to [email protected] \ --subject "Meeting Follow-up" \ --body-file - <<'EOF' Hi Name, Thanks for meeting today. Next steps: - Item one - Item two Best regards, Your Name EOF -
例(HTML リスト):
gog gmail send --to [email protected] \ --subject "Meeting Follow-up" \ --body-html "<p>Hi Name,</p><p>Thanks for meeting today. Here are the next steps:</p><ul><li>Item one</li><li>Item two</li></ul><p>Best regards,<br>Your Name</p>"
注意事項
--accountを繰り返さないようにするには、[email protected]を設定してください。- スクリプト化する場合は、
--jsonと--no-inputを優先してください。 - Sheets の値は
--values-json(推奨)またはインラインの行として渡すことができます。 - Docs はエクスポート/cat/copy をサポートしています。インプレース編集には Docs API クライアントが必要です(gog には含まれていません)。
gog gmail searchはスレッドごとに 1 行を返します。個々のメールをすべて個別に取得する必要がある場合はgog gmail messages searchを使用してください。