エンジニアの思い立ったが吉日

このブログでは、「あ、これ面白い!」「明日から仕事で使えそう!」と感じたIT関連のニュースやサービスを、難しい言葉を使わずに分かりやすく紹介しています。ITに詳しくない方にも楽しんでもらえるような情報を発信していくので、ぜひ「継続的な情報収集」の場としてご活用ください。

Google Workspace CLIツール「gws」完全ガイド|ターミナルからGmail・Drive・カレンダーをAIで自動操作する方法

毎朝の業務はこんな流れではないでしょうか。ブラウザを開いてGmailの未読チェック、次にGoogleカレンダーで今日の予定を確認、そしてDriveで昨日の資料を探す…。それぞれのタブを行き来するコンテキストスイッチに、知らず知らずのうちに時間とエネルギーを消費しています。

2026年3月、GoogleのGitHubオーガニゼーション(googleworkspace)から、まさにそのストレスを解消するCLI(コマンドラインインターフェース)ツール「gws」が公開されました。Gmail・Drive・カレンダーといったGoogle Workspaceのサービスを、ターミナルのコマンド1行で操作できるツールです。さらに、Claude CodeやGemini CLIといったAIエージェントと連携させることで、「今日の空き時間に会議を入れて」と自然言語で指示するだけで、Googleカレンダーが自動更新される、そんな未来が今まさに現実になりつつあります。

本記事では、gwsの全機能から導入手順、競合ツールとの比較、そして実際の業務自動化ユースケースまでを徹底解説します。

gwsとは?Google Workspaceを1つのCLIで統合操作するツール

gwsの概要と誕生背景

gws(コマンド名はgws)は、googleworkspaceというGitHubオーガニゼーション配下で公開されているオープンソースのCLIツールです。リポジトリURL github.com/googleworkspace/cli として公開されており、2026年3月5日時点でGitHubスターは5,100以上を獲得しています。

ただし、一点重要な注意事項があります。リポジトリには明示的に「This is not an officially supported Google product.」と記載されています。つまり、Googleの公式オーガニゼーション配下にあるものの、Googleが公式サポートを保証する製品ではありません。現在もv0.3.5(2026年3月5日リリース)とv1.0に向けて活発に開発が続いている段階です。

このツールが目指すコンセプトは明快です。

"One CLI for all of Google Workspace — built for humans and AI agents."

Gmail・Drive・カレンダー・Sheets・Docs・Chat・Admin、その他すべてのWorkspace APIを、1つのコマンド体系で操作することを目標としています。

gwsの最大の特徴:動的コマンド生成

gwsが他の類似ツールと根本的に異なるのは、コマンド体系を静的に実装していない点です。

従来のCLIツールは、開発者がコマンドを1つずつ手書きで実装します。するとGoogle Workspaceが新しいAPIを追加するたびに、ツールのアップデートが必要になります。

gwsは全く異なるアプローチを取ります。GoogleのDiscovery Service(Googleが提供するAPIスキーマ情報の自動配信サービス)を実行時にリアルタイムで読み込み、コマンド体系を動的に構築します。Google Workspaceに新しいAPIエンドポイントが追加されれば、gwsのアップデートを待たずとも自動的に対応コマンドが生成されます。

技術的には以下のプロセスで動作します。

  1. argv[1](最初の引数)からサービスを特定(例: drive
  2. 該当サービスのDiscovery Documentを取得(24時間キャッシュ)
  3. そのドキュメントからコマンド体系を動的に構築
  4. 残りの引数を解析してHTTPリクエストを生成・実行

すべての出力はJSON形式で返却されます。これがAIエージェント連携を強力にサポートする鍵となっています。

対応サービスと主要機能一覧

gwsでは、Drive、Gmail、Calendar、Sheets、Docs、Chat、Admin、Cloud Identity、Classroom、Vault、Apps Scriptなど、ほぼ全てのGoogle Workspace APIが単一のCLIでカバーされています。各サービスに対して10〜80個程度のツール(コマンド)が利用可能です。

サービス 主要操作
Gmail メール一覧・検索・送信・返信・ラベル管理
Google Drive ファイル一覧・検索・アップロード・ダウンロード
Google Calendar 予定確認・作成・更新・削除・空き時間確認
Google Sheets スプレッドシート作成・データ取得・更新
Google Docs ドキュメント作成・テキスト取得
Google Chat メッセージ送信・スペース管理
Admin(管理者機能) ユーザー管理・組織設定

インストール方法と初期設定手順

インストール

gwsのインストールは非常にシンプルです。Node.jsのパッケージマネージャnpmを使って1行で完了します。

npm install -g @googleworkspace/cli

Rustのツールチェーンがある場合はソースからビルドすることも可能です。

cargo install --path .

NixユーザーはNix flakeからも利用できます。

nix run github:googleworkspace/cli

認証設定(初回のみ)

gwsを使うには、Google Cloud Platform(GCP)のプロジェクトとOAuth認証の設定が必要です。初回はセットアップウィザードを使うのが最もスムーズです。

gws auth setup

このコマンドを実行すると、GCPプロジェクトの作成・API有効化・OAuth認証のログインまでをガイド付きで一括セットアップできます。なお、このコマンドはgcloud CLI(Google Cloud SDKのコマンドラインツール)のインストールと認証済み状態が前提となります。

手動でGoogle Cloud Consoleから設定する場合の流れは次のとおりです。

  1. GCPコンソールで新規プロジェクトを作成
  2. 使用するサービスのAPIを有効化(Gmail API、Drive API等)
  3. OAuthクライアントID(デスクトップアプリ用)を作成
  4. ダウンロードしたJSONファイルを ~/.config/gws/client_secret.json に配置
  5. gws auth login を実行してブラウザ認証を完了

認証情報はAES-256-GCMで暗号化されてOSのキーリング(macOS Keychain、Linux Secret Service、Windows Credential Manager)に安全に保存されます。

マルチアカウント対応

個人アカウントと仕事用アカウントを使い分けるエンジニアにとって嬉しいのが、マルチアカウント対応です。

# 複数アカウントを登録
gws auth login --account work@corp.com
gws auth login --account personal@gmail.com

# デフォルトアカウントを設定
gws auth default work@corp.com

# 特定のコマンドだけ別アカウントで実行
gws --account personal@gmail.com drive files list

基本的なコマンド操作とAI連携の実践

日常業務で使える基本コマンド

まず日常的によく使うコマンドを見てみましょう。

Driveのファイル操作

# 最近のファイル10件を一覧表示
gws drive files list --params '{"pageSize": 10}'

# 名前でファイルを検索
gws drive files list --params '{"q": "name contains \"議事録\""}'

# ファイルをダウンロード
gws drive files get --params '{"fileId": "FILE_ID"}' --download output.pdf

# スプレッドシートを作成
gws sheets spreadsheets create --json '{"properties": {"title": "2026年Q2予算"}}'

Calendarの操作

# 今後のイベントを確認
gws calendar events list --params '{"calendarId": "primary", "maxResults": 10}'

# 会議を作成
gws calendar events insert \
  --params '{"calendarId": "primary"}' \
  --json '{"summary": "チームレビュー", "start": {"dateTime": "2026-03-10T10:00:00+09:00"}, "end": {"dateTime": "2026-03-10T11:00:00+09:00"}}'

特に便利なdry-runオプション

--dry-runフラグを付けると、実際の操作を実行せずリクエスト内容をプレビューできます。誤操作防止に非常に有用です。

gws chat spaces messages create \
  --params '{"parent": "spaces/xyz"}' \
  --json '{"text": "デプロイ完了しました"}' \
  --dry-run

AIエージェントとのワークフロー連携

gwsが真価を発揮するのは、AIエージェントとの連携です。すべてのレスポンスが構造化JSONで返却されるため、付属のエージェントスキルと組み合わせることでLLMがカスタムツールなしでWorkspaceを管理できるようになります。

Claude CodeやGemini CLIとの連携

gws mcp コマンドはstdio経由でModel Context Protocolサーバーを起動し、Google Workspace APIをClaude Desktop、Gemini CLI、VS Codeなどあらゆる MCP対応クライアントから呼び出せる構造化ツールとして公開します。

MCP(Model Context Protocol:AIとツールを繋ぐ標準インターフェース)の設定は以下のとおりです。

# DriveとGmailとCalendarのみ公開(ツール数を絞ることが推奨)
gws mcp -s drive,gmail,calendar

Claude Desktop等のMCPクライアント設定ファイルへの追記例:

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

Gemini CLI拡張機能としてのインストール

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

これを設定すれば、Gemini CLIのターミナル上で「Driveの最新ファイル5件を教えて」と日本語で指示するだけで、gwsが裏側で実行されて結果が返ってきます。

100以上のAIエージェントスキルが同梱

リポジトリにはGmail、Drive、Docs、Calendar、Sheetsの一般的なワークフロー向けの50のレシピを含む100以上のエージェントスキル(SKILL.mdファイル)が同梱されており、スキルのインストールは以下のコマンドで行えます。

# 全スキルを一括インストール
npx skills add https://github.com/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

gws vs gogcli vs 従来手法:ツール徹底比較

Google Workspaceをターミナルから操作するツールはgwsだけではありません。先行して人気を集めてきたgog(gogcli)との違いや、従来のGUIブラウザ操作と比較してみましょう。

ツール比較表

項目 gws gog (gogcli) GUIブラウザ
開発主体 googleworkspaceオーガニゼーション Peter Steinberger氏(個人) Google公式
言語 Rust(約19,000行) Go(約120,000行)
コマンド体系 Discovery Serviceから動的生成 サービスごとに静的実装
主な対象 AIエージェント+人間 人間+スクリプト 一般ユーザー
出力形式 JSON(デフォルト) テーブル/JSON(切替可) 画面表示
MCPサポート ✅ 標準搭載 △ 非標準
Gemini CLI拡張 ✅ 対応
エージェントスキル ✅ 100以上同梱
人間向けUX △ JSON中心で読みにくい ✅ テーブル表示が見やすい
自動化・CI/CD ✅ 得意 ✅ 得意
学習コスト 中(JSONの記述が必要) 低(自然言語的フラグあり) 最低
ライセンス Apache-2.0 MIT

どちらを選べばよいか?

AIエージェント基盤としてはgwsが明確にリードしています。gwsはAIエージェントが自律的にWorkspaceを操作するための設計を持っており、gogの--enable-commandsによるサンドボックスはあくまで制限のための機能です。

一方で、日常のターミナル操作では、gogの方が明らかに快適です。gogには--today、--tomorrow、--week、--days 3といった日付の自然言語的なフラグがあり、テーブル形式のデフォルト出力も見やすく、freebusy・conflicts検出・チームカレンダー表示といった高レベルなコマンドも揃っています。

選択指針のまとめ

  • AIエージェント(Claude Code、Gemini CLI等)と連携させたいgws
  • ターミナルで人間が日常的に操作したいgog
  • 両方のユースケースがある → 併用が最適解
  • スクリプトで軽量に自動化したい → どちらも適している

実際の業務自動化ユースケース5選

ユースケース1:朝の業務チェックを3秒で完了(エンジニア向け)

AIエージェント経由でgwsに次の指示を出すだけで、朝のルーティンが自動化されます。

「今日の予定と未読メールの重要なものを3件ずつ教えて。
また昨日Driveに追加されたファイルも確認して。」

バックグラウンドでgwsが以下のコマンドを実行します。

gws calendar events list --params '{"calendarId": "primary", "timeMin": "today"}'
gws gmail users messages list --params '{"q": "is:unread is:important", "maxResults": 3}'
gws drive files list --params '{"orderBy": "createdTime desc", "pageSize": 3}'

ユースケース2:会議調整の完全自動化(マネージャー・チームリーダー向け)

複数人のスケジュール調整は管理職にとって時間のかかる業務の1つです。

「来週中に田中さん(tanaka@corp.com)と1時間の打ち合わせを入れたい。
お互いの空き時間を確認して、火曜か水曜の午後に設定して。」

AIエージェントがgwsを使って空き時間を確認し、そのまま会議を作成します。

ユースケース3:CI/CDパイプラインでの自動レポート配信(開発チーム向け)

デプロイ完了後に自動でGoogle Chatに通知を送り、スプレッドシートにログを記録するパイプラインが構築できます。

#!/bin/bash
# デプロイ完了通知スクリプト
DEPLOY_STATUS=$1
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')

# Google Chatに通知
gws chat spaces messages create \
  --params '{"parent": "spaces/SPACE_ID"}' \
  --json "{\"text\": \"✅ デプロイ完了 [$TIMESTAMP] Status: $DEPLOY_STATUS\"}"

# Sheetsにログ記録
gws sheets spreadsheets values append \
  --params '{"spreadsheetId": "SHEET_ID", "range": "A:C", "valueInputOption": "USER_ENTERED"}' \
  --json "{\"values\": [[\"$TIMESTAMP\", \"Deploy\", \"$DEPLOY_STATUS\"]]}"

ユースケース4:Model Armorによるセキュアなメール処理(セキュリティ重視の企業向け)

Google Cloud Model Armorを統合して、エージェントに届く前にAPIレスポンスのプロンプトインジェクションをスキャンすることができます。これにより、悪意あるメール本文がAIエージェントへの不正命令として実行されるリスクを軽減できます。

gws gmail users messages get \
  --params '{"userId": "me", "id": "MESSAGE_ID"}' \
  --sanitize "projects/PROJECT/locations/LOCATION/templates/TEMPLATE"

ユースケース5:ヘッドレスサーバー環境でのバッチ処理(インフラ・SRE向け)

ブラウザが使えないサーバー環境でも、ローカルマシンで一度認証してエクスポートすることでCI/CD環境に組み込めます。

# ローカルで認証後、認証情報をエクスポート
gws auth export --unmasked > credentials.json

# CI/CDサーバー側の設定
export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/credentials.json
gws drive files list   # 認証不要で即動作

注意点・デメリット・セキュリティリスク

非公式サポートであることのリスク

最も重要な注意点として、gwsはGoogleの公式サポート製品ではありません。これが意味することは以下のとおりです。

  • Googleとしてのサポート窓口はない
  • v1.0に向けた開発中のため、破壊的な変更(Breaking Changes)が起こりうる
  • 本番環境への本格導入は慎重な評価が必要

在職中に公式Google Drive CLIが2回も開発中止になったという声もあり、今回も期待しないという意見も存在します。

初回セットアップのハードル

GCPプロジェクトの作成とOAuth認証の設定は、エンジニア以外には難易度が高い作業です。誤って本番GCPプロジェクトに不要なAPIを有効化したり、広範な権限スコープを付与しすぎたりするリスクもあります。

セキュリティ上の考慮事項

gwsはGoogleアカウントへの強力なアクセス権限を持ちます。以下の点を必ず守ってください。

  • OAuth認証情報のJSONファイルは絶対に第三者に渡さない・公開リポジトリにコミットしない
  • サービスアカウントキーをCI/CDに使用する場合はシークレット管理ツール(GitHub Actions Secrets等)に格納
  • 必要最小限のOAuthスコープのみ有効化する(Gmail全権限より、読み取りのみの権限が望ましい)
  • MCPで公開するサービスは-s all(全サービス公開)ではなく、実際に使うサービスだけに限定

ツール数の上限問題

各サービスはおよそ10〜80のツールを追加します。MCPクライアントのツール制限(一般的に50〜100ツール)に収まるよう、実際に必要なサービスのみを指定することが推奨されます。

gws mcp -s all で全サービスを公開すると、AIエージェントが数百のツールを受け取ることになり、コンテキストウィンドウの圧迫と処理速度の低下を招く可能性があります。


まとめ:gwsが切り開く「AIネイティブな業務」への第一歩

gwsは、Google Workspaceを人間とAIエージェントの両方が効率よく操作するための、新しい標準を提案するツールです。

gwsのポジションを一言で言えば、「AIエージェントとのGoogle Workspace連携に最適化されたCLI」です。Discovery Serviceベースの動的コマンド生成、100以上の同梱エージェントスキル、MCPサポート、Gemini CLI拡張機能対応——これらはすべて、AIが自律的にGoogleサービスを操作することを前提に設計されています。

一方で、まだv1.0前の開発段階であり、初回セットアップの手間や非公式サポートという制約もあります。個人・チームでの実験的利用から始め、セキュリティポリシーや運用ルールを整備した上で、段階的に本格活用していくのが現実的なアプローチです。

AIエージェントにGoogleカレンダーを操作させる時代が来た今、まずnpm install -g @googleworkspace/cliの1行から試してみてください。朝の業務ルーティンが変わる体験が、きっと待っています。

当サイトは、アフィリエイト広告を使用しています。