Google Workspace CLIが登場したので試してみた

Google Workspace CLIが登場したので試してみた

2026.03.05

はじめに

こんにちは。
クラウド事業本部コンサルティング部の渡邉です。

本日朝Xを見ているとタイムラインでGoogle Workspace CLIがリリースされているとのポストを見ましたので、さっそく調査してみました。

https://github.com/googleworkspace/cli

Google Workspace CLI(gws)とは

Google Workspace CLI(以下、gws)は、Drive、Gmail、Calendar、Sheets、Docs、Chat、Admin等のGoogle Workspace APIをひとつのコマンドラインツールで操作できるCLIツールです。gwsコマンドで実行します。

従来はGoogle WorkspaceのAPIを利用する際に、毎回REST APIのドキュメントを確認し、curlコマンドを利用していた方もいると思います。
Drive、Gmail、Calendar、Sheets、Docs、Chatなどと、Google Workspaceには多くのサービスがありますが、それぞれのAPIを個別に呼び出すのは割と大変だったかと思います。

gwsの最大の特徴は、GoogleのDiscovery Serviceを利用して実行時に動的にコマンドを構築するという点です。
つまり、Google WorkspaceにAPIエンドポイントが追加された場合、gws自体をアップデートしなくても自動的に新しいAPIが利用可能になります。

主な機能

Githubリポジトリにはgwsコマンドを利用する上で、人間向けとAIエージェント向けに機能を提供していると記載がありました。

人間向けの機能

人間向けの機能としては、CLIを利用する上で、必須なタブ補完、ヘルプ機能はもちろんのこと、ドライラン機能が提供されています。

機能 説明
タブ補完 コマンド入力時にタブ補完が利用可能
--help すべてのリソースで--helpが利用可能
--dry-run リクエストを実行せずにプレビューが可能
自動ページネーション 大量のデータを自動的にページ送りして取得
マルチパートアップロード Google Driveへのファイルのアップロードに対応
暗号化されたクレデンシャル管理 OSキーリングを利用したAES-256-GCMによる暗号化保存

AIエージェント向けの機能

昨今、AIエージェントが話題ですが、AIエージェントに対する機能も提供されていました。
エージェントスキルがで提供されているのはかなりアツいと思います。

機能 説明
構造化JSON出力 すべてのレスポンスがJSON形式で返却される
100以上のエージェントスキル 各APIに対応したAgent Skillを同梱
50以上のレシピ Gmail、Drive、Docs、Calendar、Sheetsの厳選レシピ
MCPサーバー Model Context Protocolに対応したサーバー機能

スキルとレシピに関しては、こちらから確認することができます。
https://github.com/googleworkspace/cli/tree/main/skills

インストール

npmでグローバルインストールすることができます。

npm install -g @googleworkspace/cli

ソースからビルドする場合はRustのcargoを利用します。

cargo install --path .

認証設定

gwsは複数の認証方法をサポートしています。用途に応じて最適な方法を選択するのが良いと思います。

インタラクティブセットアップ(ローカル開発向け)

こちらが最も簡単なセットアップ方法です。Google Cloudプロジェクトの作成、APIの有効化、OAuthログインまでを対話形式で案内してくれます。

gws auth setup       # 初回セットアップ(プロジェクト作成・API有効化・ログイン)
gws auth login       # 2回目以降のログイン

クレデンシャルはOSキーリングに保存された鍵を使ったAES-256-GCMで暗号化され、安全に保存されます。

手動OAuthセットアップ(Google Cloud Console)

gws auth setupで自動化できない場合や、明示的に制御したい場合に利用します。

  1. Google Cloud ConsoleでOAuth同意画面を設定(アプリタイプ:外部、テストユーザーに自分のアカウントを追加)
  2. OAuthクライアントを作成(タイプ:デスクトップアプリ)
  3. クライアントJSONをダウンロードし、~/.config/gws/client_secret.jsonに保存
  4. gws auth loginを実行

ヘッドレス / CI環境

ブラウザが利用できない環境では、事前にクレデンシャルをエクスポートして利用します。

# ブラウザが使えるマシンで認証後にエクスポート
gws auth export --unmasked > credentials.json

# ヘッドレスマシンで利用
export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/credentials.json
gws drive files list

サービスアカウント

サーバー間通信の場合はサービスアカウントの鍵ファイルを指定するだけでログイン不要です。

export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/service-account.json
gws drive files list

ドメイン全体の委任を利用する場合は、以下の環境変数も追加します。

export GOOGLE_WORKSPACE_CLI_IMPERSONATED_USER=admin@example.com

認証の優先順位

認証時の優先順位についてもGithubリポジトリに記載がありました。認識しておくとトラブルシューティング時に混乱しないと思います。

優先度 認証ソース 設定方法
1 アクセストークン GOOGLE_WORKSPACE_CLI_TOKEN
2 クレデンシャルファイル GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE
3 暗号化クレデンシャル(OSキーリング) gws auth login
4 プレーンテキストクレデンシャル ~/.config/gws/credentials.json

AIエージェントとの連携

gwsは、CLIツールとしてだけでなく、AIエージェントのツールとして利用できることが強みだと思います。

Agent Skills

リポジトリには100以上のAgent Skill(SKILL.mdファイル)が同梱されており、各Google Workspace APIに対応したスキルに加え、よくあるワークフロー向けのヘルパーや、Gmail・Drive・Docs・Calendar・Sheetsの50以上の厳選レシピがデフォルトで含まれています。

スキルのインストールは、すべてを一括で行うことも、個別に行うことも可能です。

# すべてのスキルを一括インストール
npx skills add github:googleworkspace/cli

# 必要なスキルだけを選択してインストール
npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive
npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail

MCPサーバー

gwsではMCPサーバーも用意されています。gws mcpコマンドでMCPサーバーを起動することができ、Claude Desktop、Gemini CLI、VS Code等のMCP対応クライアントからGoogle Workspace APIをツールとして呼び出すことができます。

# 特定のサービスのみ公開
gws mcp -s drive,gmail,calendar

# すべてのサービスを公開
gws mcp -s all

MCP対応クライアントの設定例は以下の通りです。

{
  "mcpServers": {
    "gws": {
      "command": "gws",
      "args": ["mcp", "-s", "drive,gmail,calendar"]
    }
  }
}

Gemini CLI Extension

Google Cloudユーザの方は、Gemini CLIを利用している方も多いと思います。Gemini CLIを利用している場合、拡張機能としてgwsを統合することもできます。

gws auth setup
gemini extensions install https://github.com/googleworkspace/cli

Model Armorによるレスポンスサニタイズ

AIエージェントがGoogle Workspace APIのレスポンスを処理する際、プロンプトインジェクション攻撃のリスクがあります。
Google Cloudには、Model Armorというプロンプト インジェクション、センシティブ データの漏洩、有害なコンテンツに対する包括的な保護を提供してくれるサービスがあり、gwsでは、Model Armorと連携して、APIレスポンスをエージェントに渡す前に入力をスキャンさせることができます。

gws gmail users messages get --params '...' \
  --sanitize "projects/P/locations/L/templates/T"
環境変数 説明
GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE デフォルトのModel Armorテンプレート
GOOGLE_WORKSPACE_CLI_SANITIZE_MODE warn(デフォルト)またはblock

アーキテクチャ

gws2段階パース戦略を採用しているそうです。

  1. argv[1]からサービス名を特定(例:drive
  2. そのサービスのDiscovery Document(24時間キャッシュ)を取得
  3. ドキュメントのリソースとメソッドからclap::Commandツリーを構築
  4. 残りの引数を再パース
  5. 認証してHTTPリクエストを実行

すべての出力(成功、エラー、ダウンロードメタデータ)は構造化JSONで返却されます。
この設計により、Google側でAPIが追加・変更されてもgws自体の更新なしに対応できるのが大きなメリットです。

Google Workspace CLIを利用してみた

インストール

npmコマンドを利用してインストールしてみます。

npm install -g @googleworkspace/cli

私の場合は、0.3.2がインストールされました。

$ gws --version
gws 0.3.2

認証

認証方法として、インタラクティブセットアップを採用して実行してみたいと思います。

gws auth setup

を実行すると、以下の順番で対話的に認証設定が行われていきます。

  • Step1 : gcloud CLI
  • Step2 : Authentication
  • Step3 : GCP Project
  • Step4 : Workspace API
  • Step5 : OAuth Credentials

Step1 : gcloud CLI

すでに私のローカル環境では、gcloud cliはインストール済みだったので、こちらはスキップされました。
gcloud cliが未インストールの方はこちらで案内されると思います。

Step2 : Authentication

Authenticationステップでは、Googleアカウントの選択が求められました。複数のGoogleアカウントを所有している方は、複数のGoogleアカウントが表示されるので、自身が使用しているGoogle WorkspaceドメインのGoogleアカウントを選択してください。

alt text

Step3 : GCP Project

GCP Projectステップでは、Google Cloud Projectを選択する必要があります。こちらも自身のGoogleアカウントでアクセス権限のあるプロジェクトの一覧が表示され、プロジェクトを1つ選択することが求められます。
こちらで選択したプロジェクトでGoogle Workspace APIの有効化設定や、OAuth関連の設定を行っていきます。

alt text

Step4 : Workspace API

Workspace APIステップでは、Step3で選択したGoogle Cloud Project内で、どのGoogle WorkspaceサービスのAPIを有効化するのか選択します。
有効化したGoogle Workspace APIのサービスのみ、Google Workspace CLIで利用することができます。
私はGoogle Calendar APIをすでに有効化していますが、今回はGoogle DriveGoogle SheetsGoogle DocsGoogle Slidesを有効化してみます。

alt text

現状以下の、Google Workspace APIが利用可能でした。

API名 エンドポイント ステータス
Google Drive drive.googleapis.com -
Google Sheets sheets.googleapis.com -
Gmail gmail.googleapis.com -
Google Calendar calendar-json.googleapis.com already enabled
Google Docs docs.googleapis.com -
Google Slides slides.googleapis.com -
Google Tasks tasks.googleapis.com -
People (Contacts) people.googleapis.com -
Google Chat chat.googleapis.com -
Google Vault vault.googleapis.com -
Groups Settings groupssettings.googleapis.com -
Reseller reseller.googleapis.com -
Licensing licensing.googleapis.com -
Apps Script script.googleapis.com -
Admin SDK admin.googleapis.com -
Classroom classroom.googleapis.com -
Cloud Identity cloudidentity.googleapis.com -
Alert Center alertcenter.googleapis.com -
Google Forms forms.googleapis.com -
Google Keep keep.googleapis.com -
Google Meet meet.googleapis.com -
Cloud Pub/Sub pubsub.googleapis.com -

Step5 : OAuth Credentials

OAuth Credentialsステップでは、OAuth同意画面と、OAuthクライアントのセットアップを行っていきます。

alt text

ターミナル上に案内が表示されるので、案内に従って設定してください。ここからGoogle Cloudでの操作が必要になります。

OAuth同意画面の設定は外部テスト中に設定します。

alt text

また、テストユーザには、自身のGoogleアカウントで使用しているメールアドレスを設定してください。

alt text

次に、OAuthクライアントを作成していきます。

  • 【Google Auth Platform】-> 【クライアント】を選択
  • 【クライアントを作成】をクリック

alt text

OAuthクライアントIDの作成画面で以下を入力して作成をクリックします。

  • アプリケーションの種類:デスクトップアプリ
  • 名前:Google Workspace CLI

alt text

OAuthクライアントが作成されるので、以下をメモしておきます。

  • クライアントID
  • クライアントシークレット

alt text

メモしたクライアントIDとクライアントシークレットをターミナル上に入力したらセットアップとしては完了です。
セットアップ完了後は以下の情報が出力されます。

$ gws auth setup
{
  "account": "****@****.jp",
  "apis_enabled": 0,
  "apis_failed": 0,
  "apis_skipped": 5,
  "client_config": "/home/****/.config/gws/client_secret.json",
  "message": "Setup complete! Run `gws auth login` to authenticate.",
  "project": "****",
  "status": "success"
}

 Setup complete! Run `gws auth login` to authenticate.

セットアップが完了したので、gws auth loginコマンドでログインしていきます。

gws auth login

コマンド実行後、ターミナル上に認証URLが表示されるので、アクセスして、アカウントの認証、OAuthの認証を行います。
OAuth Scopeの設定をここで行います。

alt text

認証完了後は、以下のような出力が得られます。

{
  "credentials_file": "/home/****/.config/gws/credentials.enc",
  "encryption": "AES-256-GCM (key secured by OS Keyring or local `.encryption_key`)",
  "message": "Authentication successful. Encrypted credentials saved.",
  "scopes": [
    "https://www.googleapis.com/auth/drive.meet.readonly",
    "https://www.googleapis.com/auth/drive.metadata.readonly",
    "https://www.googleapis.com/auth/drive.readonly",
    "https://www.googleapis.com/auth/drive.apps.readonly",
    "https://www.googleapis.com/auth/calendar",
    "https://www.googleapis.com/auth/drive.appdata",
    "https://www.googleapis.com/auth/drive.file",
    "https://www.googleapis.com/auth/presentations",
    "https://www.googleapis.com/auth/spreadsheets",
    "https://www.googleapis.com/auth/cloud-platform"
  ],
  "status": "success"
}

これで、認証フェーズは完了です。

実際にCLIを実行してみる

それでは、実際にGoogle Workspace CLIを試してみたいと思います。

Google Drive

Google Drive内のファイルのリストをGoogle Workspace CLIで取得してみました。

$ gws drive files list --params '{"pageSize": 3}'
{
  "files": [
    {
      "id": "****",
      "kind": "drive#file",
      "mimeType": "application/vnd.google-apps.spreadsheet",
      "name": "****"
    },
    {
      "id": "****",
      "kind": "drive#file",
      "mimeType": "application/vnd.google-apps.spreadsheet",
      "name": "****"
    },
    {
      "id": "****",
      "kind": "drive#file",
      "mimeType": "application/vnd.google-apps.spreadsheet",
      "name": "****"
    }
  ],
  "incompleteSearch": false,
  "kind": "drive#fileList",
  "nextPageToken": "****"
}

CLI操作でGoogle Driveのファイルのリストが表示できました。

Googleカレンダー

今度は、自身のGoogleカレンダーの情報を取得してみたいと思います。

$ gws calendar +agenda --today
calendar    end                        location                                start                      summary                             
──────────  ─────────────────────────  ──────────────────────────────────────  ─────────────────────────  ────────────────────────────────────
****@****.jp  2026-03-06                                                         2026-03-05                 ****
****@****.jp  2026-03-06                                                         2026-03-05                 ****
****@****.jp  2026-03-05T11:00:00+09:00                                          2026-03-05T08:00:00+09:00  ****
****@****.jp  2026-03-05T12:30:00+09:00  ****                                    2026-03-05T09:00:00+09:00  ****
****@****.jp  2026-03-05T12:00:00+09:00                                          2026-03-05T11:00:00+09:00  ****
****@****.jp  2026-03-05T13:00:00+09:00                                          2026-03-05T12:00:00+09:00  ****
****@****.jp  2026-03-05T14:30:00+09:00                                          2026-03-05T13:00:00+09:00  ****
****@****.jp  2026-03-05T15:00:00+09:00                                          2026-03-05T14:30:00+09:00  ****
****@****.jp  2026-03-05T16:00:00+09:00                                          2026-03-05T15:00:00+09:00  ****
****@****.jp  2026-03-05T16:50:00+09:00  ****                                    2026-03-05T16:00:00+09:00  ****
****@****.jp  2026-03-05T21:00:00+09:00                                          2026-03-05T18:00:00+09:00  ****
****@****.jp  2026-03-07                                                         2026-03-06                 ****
****@****.jp  2026-03-06T07:30:00+09:00                                          2026-03-06T07:30:00+09:00  ****
****@****.jp  2026-03-06T10:00:00+09:00  ****                                    2026-03-06T09:00:00+09:00  ****

取得することができました。(一部明日の予定も混ざっちゃっていますが...)

gws calendar +agenda --week --format tableで週次のカレンダー情報を取得することも可能です。

最後に

今回は、本日リリースされたGoogle Workspace CLI(gws)について紹介と簡単なCLI操作を実行しました。

個人的に特に魅力的だと感じたのは以下の点です。

  • Discovery Serviceを利用した動的なコマンド構築により、CLI自体のアップデートなしに新しいAPIへ対応できる点
  • SkillsやMCPサーバー機能により、Claude DesktopやGemini CLI等のAIエージェントからGoogle Workspaceを直接操作できる点
  • Model Armorとの連携により、AIエージェント利用時のセキュリティリスクにも配慮されている点

まだv1.0に向けて開発中ではありますが、Google Workspaceを日常的に利用しているエンジニアやAIエージェントの活用を検討している方にとって、非常に注目すべきツールだと思います。

一方、Google Workspace CLIの認証準備に、Google Cloudの操作も一部含まれてくるので、Google Workspaceの作業をCLIで自動化したいけど、Google Cloudは利用していないユーザの方には導入のハードルになるのかなと感じました。

今回は、簡単なCLI操作だけでしたが、Claude CodeなどのAIエージェントからSkillsを利用してGoogle Workspace CLIを操作することでGoogle Workspaceで自動化できる幅がかなり広がると思うので、Claude CodeとGoogle Workspace CLIのSkillsを検証してみた記事も出していきたいと思います。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部コンサルティング部の渡邉でした!

この記事をシェアする

FacebookHatena blogX

関連記事