mcpField
G
gog

gog

github.com/openclaw生産性393.3k8.5k 回インストール今日更新
リポジトリ

gog について

gog は Google Gmail、Calendar、Drive、Contacts、Sheets、Docs をコマンドで操作する CLI で、これらのサービスを扱う個人やワークフロー向けです。OAuth に対応し、ブラウザー表示のないホストでのリモート認証手順も備えています。

主な機能

  1. 01Gmail メールの検索・送信・管理
  2. 02カレンダー予定の一覧表示と作成
  3. 03Drive ファイルの検索と読み取り
  4. 04連絡先と Sheets データの管理
  5. 05Docs ファイルのエクスポートと表示
  6. 06リモート OAuth 認証への対応

活用シーン

  1. 01最近のメールを探して返信
  2. 02色を指定して予定を作成
  3. 03Drive ファイルの検索やシート範囲の読み取り
  4. 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.json
  • gog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheets
  • gog auth list

リモート / ヘッドレスの Gateway ホスト

Gateway ホストにローカルのブラウザ表示がない場合:

  1. Gateway ホスト上でのライブコールバックリスナーを優先します。ブラウザのあるマシンから、正確なコールバックポートを転送し(ssh -L <port>:127.0.0.1:<port> user@gateway-host)、gog が出力する認可 URL を開き、その転送ポート上でリダイレクトを完了させます。
  2. ライブリスナーが利用できない場合、オペレーターは Gateway ホスト上の信頼できるシェルで、いずれか 1 つのペーストモードの経路を選択します。コールバック URL は決してチャットやエージェントのツール入力に入れてはいけません:
    • --manual:オペレーターが完全なリダイレクト URL を gog の対話型プロンプトに貼り付けます。
    • --remote --step 1:auth_url(および state_reused)を出力して終了します。ブラウザでの同意後、オペレーターは信頼できるシェルで --remote --step 2 --auth-url <callback-url> を実行します。同意後に localhost ページの読み込みが失敗しても想定どおりです。
  3. リモートの各ステップ間で、同じ解決済み設定コンテキストを維持します。GOG_CONFIG_DIR は --home より優先され、--home は GOG_HOME より優先されます。また、--client、サービス/スコープ、リダイレクト URI、同意オプションも維持します。一致する有効期限内の manual state は再利用される場合があります(state_reused=true)。
  4. デスクトップのキーリングが利用できない場合は、ファイルバックエンドを設定し(gog auth keyring file)、Gateway 環境で GOG_KEYRING_PASSWORD を設定して、非対話型のエージェント/--no-input 実行がトークンを読み取れるようにします。gog auth doctor はパスワードが欠落している場合に報告します。
  5. コールバックを受信したことは、トークンが保存されたことと同じではありません。プロキシの背後でトークン交換や 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 を使用してください。

コメント