Google Workspace CLIのコマンドラインインターフェース
45日前原文(github.com)
概要
gwsはGoogle Workspaceの全APIを統一CLIで操作可能にするツール。
人間とAIエージェント双方に最適化された設計。
認証方法や自動コマンド生成、JSON出力など多機能。
Gemini CLI拡張やMCPサーバーによる連携もサポート。
開発中のため今後大きな仕様変更の可能性あり。
gws:Google Workspace統合CLI
- Google Workspace(Drive, Gmail, Calendar等)全APIをCLIから操作可能なツール
- npm install -g @googleworkspace/cliでインストール
- コマンド一覧はGoogle Discovery Serviceから動的生成、API追加時も自動対応
- ゼロボイラープレート設計、全出力が構造化JSON形式
- 40以上のAIエージェントスキルを標準搭載
主な特徴
- 人間向け機能
- curl不要、タブ補完・--help・--dry-run・自動ページネーションなどCLI操作性向上
- AIエージェント向け機能
- すべてのレスポンスがJSON、エージェントスキル連携でLLMから直接操作可能
- APIスキーマのインスペクションやNDJSON形式のストリーム出力も対応
代表的なコマンド例
- 最新10件のファイル一覧取得
gws drive files list --params '{"pageSize": 10}'
- スプレッドシート作成
gws sheets spreadsheets create --json '{"properties": {"title": "Q1 Budget"}}'
- Chatメッセージ送信(dry-run付き)
gws chat spaces messages create --params '{"parent": "spaces/xyz"}' --json '{"text": "Deploy complete."}' --dry-run
- 任意APIメソッドのスキーマ確認
gws schema drive.files.list
認証方法
- 複数の認証ワークフローに対応(ローカル・CI・サーバー等)
- 認証情報はAES-256-GCMで暗号化、OSキーチェーンに保存
- gws auth setupで初回設定(Cloudプロジェクト作成・API有効化・OAuthログイン)
- gcloud CLI連携による認証も可能
- 手動OAuth設定(Google Cloud Consoleでクライアント作成・JSON配置)
- ブラウザアシスト認証(人間orエージェント操作両対応)
- ヘッドレス/CI用途:認証済みJSONをエクスポートし環境変数で指定
- サービスアカウント認証、事前取得アクセストークンにも対応
- 認証優先順位:アクセストークン>認証ファイル>暗号化認証>平文認証
AIエージェントスキルとOpenClaw連携
- 100以上のエージェントスキル(APIごと+汎用ワークフロー・レシピ50本以上)
- 全スキル一括インストール
npx skills add https://github.com/googleworkspace/cli
- 必要なスキルのみ選択インストール
npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive
- OpenClaw用スキル配置(シンボリックリンクまたはコピーで同期)
- gws-sharedスキルでCLI自動インストールにも対応
Gemini CLI拡張
- gws認証後、Gemini CLIに拡張機能をインストール
gemini extensions install https://github.com/googleworkspace/cli
- Gemini CLIエージェントがgwsコマンド・スキルを直接利用可能
- 一度認証すれば拡張側も自動で認証継承
MCPサーバー連携
- gws mcpコマンドでModel Context Protocolサーバー起動
- Drive/Gmail/Calendar等のAPIツールをMCPクライアント(Claude Desktop, Gemini CLI, VS Code等)に提供
- サービスごとに10~80ツール追加、必要なサービスのみ選択可能
- MCPクライアント設定例
"command": "gws", "args": ["mcp", "-s", "drive,gmail,calendar"]
高度な使い方
- マルチパートアップロード
gws drive files create --json '{"name": "report.pdf"}' --upload ./report.pdf
- ページネーション制御
--page-all(全ページ自動取得)、--page-limit、--page-delay
- Model Armor連携によるレスポンスのプロンプトインジェクション対策
gws gmail users messages get --params '...' --sanitize "projects/P/locations/L/templates/T"
アーキテクチャ・開発
- 2段階パース戦略
- 引数からサービス判別→Discovery Document取得→コマンドツリー生成→再パース
- 全出力が構造化JSON
- API未有効時のエラーと対処法
- 403エラー時に有効化URLを案内
gws auth setupで自動有効化可能
- 開発用コマンド
cargo build、cargo clippy -- -D warnings、cargo test、./scripts/coverage.sh
ライセンス・免責事項
- Apache-2.0ライセンス
- Google公式製品ではないことに注意
参考リンク
- GitHubリポジトリ:https://github.com/googleworkspace/cli
- Google Cloud Console:https://console.cloud.google.com/
- API有効化例:https://console.developers.google.com/apis/api/gmail.googleapis.com/overview?project=<プロジェクトID>