- Google Workspace API 全体を単一の CLI で制御できるツールで、Drive・Gmail・Calendar・Sheets・Docs・Chat・Admin などをサポート
- Google Discovery Service を基盤として、ランタイム時にコマンド構成を動的に生成し、新しい API が追加されると自動で反映
- AI エージェント向けのスキルを 100 個以上含み、構造化された JSON 出力を通じて LLM との統合を支援
- OAuth・Service Account・CI 環境 など多様な認証方式を提供し、Model Armor による応答セキュリティ機能をサポート
- 人間と AI の両方に向けた自動化中心の CLI で、Google Workspace エコシステムの 統合管理と自動化効率 を高めるツール
概要
gws は Google Workspace 専用の統合 CLI で、Drive・Gmail・Calendar・Sheets・Docs・Chat・Admin などすべての API を 1 つのコマンドラインから実行可能
- Google Discovery Service を通じてコマンド構成を自動生成し、新しい API エンドポイントが追加されると即座に反映
- すべての出力は 構造化された JSON 形式 で提供されるため、AI エージェントや自動化スクリプトとの連携が容易
- プロジェクトは 活発に開発中 であり、v1.0 以前は大きな変更が発生する可能性あり
主な機能
- タブ補完、--help、--dry-run、自動ページネーション など、人に優しい CLI 機能を提供
- AI エージェント統合 のために、100 個以上の
SKILL.md ベースのスキルを同梱
- Gmail、Drive、Docs、Calendar、Sheets など主要サービス向けの 50 個以上の高度なレシピを含む
- Gemini CLI 拡張 をインストールすると、Gemini エージェントが
gws コマンドとスキルを直接呼び出し可能
- MCP(Model Context Protocol) サーバーモード により、Claude Desktop、Gemini CLI、VS Code などで Workspace API をツールとして公開可能
認証方式
- ローカル対話型認証: AES-256-GCM で暗号化された認証情報を OS キーリングに保存
- 手動 OAuth 設定: Google Cloud Console でクライアントを直接作成可能
- ブラウザ・エージェント補助認証: 手動または自動で OAuth 承認を処理
- CI/サーバー環境向け認証:
gws auth export で認証情報をエクスポートし、環境変数として指定
- Service Account と事前発行トークン をサポートし、優先順位はトークン > 認証ファイル > キーリング保存の順
AI Agent Skills
- リポジトリに含まれる 100 個以上のスキル が、各 API および一般的なワークフローを自動化
npx skills add コマンドで、すべてまたは個別のスキルをインストール可能
- OpenClaw 環境では、シンボリックリンクまたはコピー方式でスキルを同期可能
gws-shared スキルには、CLI 未インストール時の自動インストール機能を含む
Gemini CLI 拡張
MCP サーバー機能
gws mcp コマンドで MCP サーバーを起動し、Workspace API を MCP 対応クライアントに公開
- 例:
gws mcp -s drive,gmail,calendar
- 各サービスは 10〜80 個のツールを追加し、クライアントのツール制限 (50〜100 個) に合わせて選択可能
--workflows, --helpers フラグでワークフローおよびヘルパーツールを公開可能
高度な機能
- Multipart アップロード: ファイルのアップロードとメタデータ作成を同時に実行
- ページネーション制御:
--page-all, --page-limit, --page-delay オプションを提供
- Model Armor 統合: API 応答をスキャンしてプロンプトインジェクションを防止
GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE, GOOGLE_WORKSPACE_CLI_SANITIZE_MODE 環境変数で制御
アーキテクチャ
- 2 段階のパース構造 で動作
- 最初の引数でサービスを識別
- Discovery ドキュメントを取得 (24 時間キャッシュ)
clap::Command ツリーを生成
- 引数を再パースして認証を実行
- HTTP リクエストを実行
- すべての結果 (成功・エラー・メタデータ) は JSON 構造 で出力
トラブルシューティング
- API が有効化されていない場合、
accessNotConfigured エラーが発生
enable_url フィールドのリンクをクリックして API を有効化した後に再試行
gws auth setup コマンドで必要な API を自動的に有効化可能
開発と配布
- Apache-2.0 ライセンス。Rust (99.5%)
- 公式の Google 製品ではなく、非公式オープンソースプロジェクト
2件のコメント
gogとは違って、Google のあらゆる API に対して動的にコマンドを生成するアプローチがユニークですね。開発者が Justin Poehnelt で、Google Workspace の DevRel とのことなので、より信頼できます。
Hacker Newsのコメント
AIとMCPの世界で、突然企業がまともなAPI/CLIツールを構築しようとし始めたように見える
これはWorkspace StudioのCLI版のようだ
Googleが、開発者が実際にアプリを使いたい方法に合わせて動いているのはうれしい
Googleのダッシュボードや雑なサードパーティー製ライブラリよりずっと良いと思う
Googleは公式サポートではないと言っているが、外部より内部のほうが手厚く支援される可能性が高い
GCP Nextは4月22日から24日に開催予定だ
その後もこのプロジェクトが維持されることを願う
rustバイナリをインストールするのに、なぜnpmを使うのか気になる最近はエージェントスキルがCLIを求めているので、こうした流れがトレンドとして定着してほしい
すべてのCTOがこれを自分のOpenClawインスタンスにつなごうとしてそわそわしている様子が目に浮かぶ
利用可能なコマンドが動的に変わるのはアンチパターンに見えるが、AIならそれを処理できるのかもしれない
AppleもiCloudについて同じアプローチを取ってくれたらいいのに
興味深いが少し怖い。これがGoogleの公式製品でないなら、TOS違反の可能性があるかもしれない