gogcliをWindows11で使えるようにしてみよう

GitHub - steipete/gogcli: Google Suite CLI: Gmail, GCal, GDrive, GContacts. · GitHub
この記事では、Gmail、カレンダー、ドライブなどのGoogle Workspace(旧G Suite)サービスをターミナルから一括操作できるオープンソースの強力なコマンドラインツールである gogcli(gog) の操作環境をWindows11で構築しみようというものです。
Windows11のWSL(Ubuntu)上に構築して、使用することができるかどうかを確認してみます。
参考
- gog — Google in your terminal
- GitHub - steipete/gogcli: Google Suite CLI: Gmail, GCal, GDrive, GContacts. · GitHub
- gog入門:Google Workspaceを完全制御するCLIツールの決定版|アイドリ | AI-Driven Lab
gog cli(gogcli)とは
「gog cli(gogcli)」は、Gmail、カレンダー、ドライブなどのGoogle Workspace(旧G Suite)サービスをターミナルから一括操作できるオープンソースの強力なコマンドラインツールです。
ブラウザを開く手間を省き、単一のバイナリで複数のGoogleサービスを高速かつスクリプトフレンドリーに制御できるのが最大の特徴です。
主な特徴と機能
- 広範なサービス対応: Gmail, Calendar, Drive, Contacts, Sheets, Docs, Slidesなど、主要サービスに対応しています
- JSON出力対応: 全コマンドで --json フラグを使用でき、jq やAIエージェントとの連携が容易です
- API・AI連携: 全コマンドでJSON出力をサポートし、jq やAIエージェントと連携可能です
- マルチアカウント: 複数アカウントの切り替えが容易で、OS標準のキーリングを利用したセキュアな設計です
- 独自機能: sedmat を使用し、コマンドラインからGoogleドキュメントの書式設定(太字、色、テーブル追加など)を編集可能です
- 高度な編集機能: sedmat を使用し、コマンドラインからGoogleドキュメントの書式設定(太字、色、テーブル追加など)を編集可能です
WSL上でUbuntuの環境を構築する
# WSL本体と標準のUbuntuをまとめてインストールする(初回のみ・要再起動)
wsl --install
# インストール済みのLinux一覧と、現在の動作状態・WSLバージョンを確認する
wsl -l -v
# 名前を指定して特定のUbuntu(この場合は 'Ubuntu')を起動する
wsl -d Ubuntu
Homebrewをインストールする
Homebrew(ホームブリュー)は、macOSやLinuxで動作する「パッケージ管理システム」です。
AppleやLinux標準では提供されていない便利な開発ツールやアプリ(パッケージ)を、コマンド一つで簡単にインストール・管理できるようになります。
主な特徴
- 一括管理: ソフトウェアのインストール、更新、削除をターミナルから一括で行えます
- 依存関係の自動解決: あるソフトを動かすのに別のソフトが必要な場合、それらも自動で一緒にインストールしてくれます
- GUIアプリも対応: ブラウザやエディタなどの一般的なアプリも brew install --cask で管理可能です
基本的な使い方
ターミナルを開き、以下のコマンドを入力して操作します。
| 操作 | コマンド |
|---|---|
| 検索 | brew search <パッケージ名> |
| インストール | brew install <パッケージ名> |
| アプリのインストール | brew install --cask <アプリ名> |
| 更新(リスト更新) | brew update |
| 一括アップグレード | brew upgrade |
| アンインストール | brew uninstall <パッケージ名> |
| インストール済一覧 | brew list |
Ubuntuへのインストール手順
インストールには、Homebrew公式サイトから提供されているスクリプトを使用します。
以下の作業は、WSL上に構築したUbuntu上で行ってください。
Windows11にインストール済みの環境一覧と起動するコマンドを以下に示します。
# インストール済みのLinux一覧と、現在の動作状態・WSLバージョンを確認する
wsl -l -v
# 名前を指定して特定のUbuntu(この場合は 'Ubuntu')を起動する
wsl -d Ubuntu
1. 必要なツールのインストール
まず、Homebrewの動作に必要な基本ツールを apt でインストールします。
sudo apt update
sudo apt install build-essential procps curl file git -y
2. インストールスクリプトの実行
次に、Homebrew本体をインストールします。rootユーザーではなく、一般ユーザーで実行してください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3. パスを通す(環境変数の設定)
インストール完了後、ターミナルの出力に従い、brew コマンドが使えるようにパスを通します。以下のようなコマンドが表示されるので、ターミナルにコピー&ペーストして実行してください(パスは環境によって異なる場合があります)。
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
4. 動作確認
正しくインストールされたか確認します。
brew doctor
Your system is ready to brew. と表示されれば、Homebrewが正常にインストールされています。
gogcliのインストール
Homebrewを使って、gogをインストールします。
brew install gogcli
確認
gog version
バージョン情報が表示されれば、gogcliが正常にインストールされています。
OAuth認証をセットアップする
gogcliを使用するには、Google Cloud ConsoleでOAuthクライアントを作成し、認証情報を登録する必要があります。この設定は初回のみで、一度完了すれば以降は不要です。
1. プロジェクトの作成
https://console.cloud.google.com/projectcreate にアクセスし、新しいプロジェクトを作成します。
- プロジェクト名:任意
- 例:gogcli
- リソース:組織なし
2. APIの有効化
gogから操作するAPIを有効にします。
1. 画面左のメニューからAPIとサービスを選択→「有効なAPIとサービス」を選択→「ライブラリ」を選択
2. gogcliから使用したいサービスのAPIを選択
- 使用できるAPIの例
- Gmail API
- メールの送信、受信、検索、ラベル管理など、Gmailのメールボックス操作をプログラムから実行できます
- Calendar API
- 予定の作成・編集やカレンダーの共有、リマインダーの設定など、Googleカレンダーの機能を統合できます
- Drive API
- Googleドライブ内のファイルのアップロード、ダウンロード、検索、およびフォルダ構造の管理が可能です
- Sheets API
- スプレッドシートのデータの読み書き、書式設定、グラフの作成などを直接操作し、データ処理を自動化できます
- Classroom API
- クラスの作成、課題の配信、成績の管理など、Google Classroom上の学習管理ワークフローを制御できます
- Tasks API
- ToDoリスト(Google Tasks)のタスク作成、期限設定、完了状況の更新といったタスク管理機能を操作できます
- Gmail API
例として、Google Classroom APIを有効にしてみます。
APIとサービスから「ライブラリ」をクリック
3. OAuth同意画面の設定
アプリ名やサポートメールを設定します。個人利用の場合は「外部」を選択し、テスト状態のままで問題ありません。
- 開始をクリック
- プロジェクト構成
- アプリ情報:アプリ名とユーザサポートメール(メールアドレス)を入力→次へ
- 対象:内部を選択→次へ
- 連絡先情報(これらのメールアドレスは、プロジェクトの変更について Google からお知らせするために使用します。):メールアドレスを入力→次へ
- 終了:「同意します」をチェック→続行
- 作成:作成をクリック
4. OAuthクライアントの作成
- アプリケーションの種類:デスクトップアプリを選択
- 名前:任意で設定 例:gogcliアプリ
- この名前はコンソールでクライアントを識別するためにのみ使用され、エンドユーザーには表示されません
- 作成をクリック
- 注: 設定が有効になるまで 5 分から数時間かかることがあります
- JSON(クライアントシークレット)をダウンロード
4. gogcliへの認証情報登録
ダウンロードしたJSONファイル(クライアントシークレット)をgogに登録します。
# 認証情報を保存
gog auth credentials ~/Downloads/client_secret_xxxxx.json
# Googleアカウントを認証(ブラウザが自動で開く)
gog auth add you@gmail.com
Enter passphrase to unlock "/home/username/.config/gogcli/keyring":
# パスワードを空に設定するために、何も入力せずにEnterを押す
# 認証状態の確認
gog auth status
認証が完了すると、トークンはOSのキーリング(macOSならKeychain、LinuxならSecret Service、WindowsならCredential Manager)に安全に保存されます。
5. デフォルトアカウントの設定
毎回--accountの指定やPassphraseを入力する手間を省くために、環境変数を設定しておくと便利です。.bashrcや.zshrcに以下の設定を追加しましょう。
この作業は、セキュリティホールになる可能性があります。
- パスフレーズを平文で設定ファイルに記載する
自己責任でお願いします。
# echoコマンドで.bashrcに設定を追加
#デフォルトアカウントの指定
echo 'export GOG_ACCOUNT=you@gmail.com' >> ~/.bashrc
# passphraseの指定
# で指定したパスフレーズ(この資料では空白(パスフレーズなし))
echo 'export GOG_KEYRING_PASSWORD="あなたのパスフレーズ"' >> ~/.bashrc
gogcliの動作を確認する
Gmail API
Gmail APIを利用して、2週間以内の未読メールを最大20件まで表示します。
gog gmail search 'is:unread newer_than:14d' --max 20
その他のコマンドは以下を参考にしてください。



