2026年3月、Google DevRelから Google Workspace 公式CLI gws がリリースされました(googleworkspace/cli)。Drive・Sheets・Gmail・Calendar・Docs・Meet など27サービスを ターミナルから1行で叩ける OSSツールです。
これを Claude Code に繋いでみたら、 「先週のMeet録画一覧を取得して」「議事録Docを作って」みたいな依頼を日本語1行で投げられる ようになりました。Drive・Sheets・Calendar・Docs・Meet の5機能を実機で疎通確認した記録を共有します。
- 検証バージョン:
gws 0.22.5/ Node.js v18+ / Mac (zsh) と Windows (Git Bash) の両方で動作確認 - 想定読者: Claude Code は触ったことがあるが、Google Workspace 連携はこれから、という人
なぜCLI? GUI / API / CLI を一旦整理
最初に用語だけ揃えておきます(既知の人は読み飛ばしOK)。
- GUI: ブラウザでDriveを開いてクリック。直感的だけど繰り返しに弱い
- API: システム同士の窓口。Google側に既にある「向こう側のドア」
- CLI: ターミナルから1行打って動かす方法。今日の主役
API はレストランのウェイターに例えると分かりやすい。お客(プログラム)→ ウェイター(API)→ 厨房(Google)の3層構造で、人が画面をクリックしなくても、プログラムが「ウェイター」越しに「このシートの値を取って」と直接お願いできる仕組みです。
ここで混乱しがちなのが「CLIとAPIってどう違うの?」という話。GUI と CLI は『あなたの操作方法』、APIは『Googleが用意した窓口』 で、そもそもレイヤーが違います。
業務側から見ると、 AIに任せたいときはCLIが圧倒的に楽 です。GUI操作のAI代行(Computer Use 系)は遅いしコストも高く、現状は確定的に動くCLI一択。「Aシートの売上を抜き出してSlackに流して」が1秒以内・確実に返ります。
gws は このCLI側の役割を担うツール で、内部で Google API を叩いてくれます。AIを介さない素のCLI操作だと、流れはこんな感じ。
GUI / CLI、どっちが業務に向くかの早見表も貼っておきます。1件だけ・直感的な作業はGUIで十分、定期実行・他システム連携・AI連携はCLI、と切り分けるとシンプル。
セットアップ:詰まりやすい認証だけ落ち着いて
1. Node.js を確認
gws は Node.js で動くので、まずバージョン確認します。
node --version # v18 以上を推奨
npm --version
未インストールなら Mac は brew install node、Windows は winget install OpenJS.NodeJS.LTS。
2. gws をインストール
npm install -g @googleworkspace/cli
gws --version
# → gws 0.22.5
3. Google Cloud Console で「自分用の鍵」を作る
ここが詰まりポイントでした。やることは5ステップ。
① Google Cloud Console でプロジェクトを作る
② Drive / Sheets / Calendar / Docs / Meet の API を有効化
③ OAuth 同意画面を設定(Workspaceなら「内部」推奨)
④ OAuth クライアントID(デスクトップアプリ)を作る
⑤ client_secret.json をダウンロード → ~/.config/gws/ に置く
@xxx.co.jp のような Workspace組織アカウントなら同意画面で「内部」を選ぶ のが安全。「外部」だとテストユーザー追加・未確認警告など、ハマり所が増えます。個人 Gmail を使う場合だけ「外部」+テストユーザーに自分を追加する、という運用になります。
クライアントID作成のときの アプリケーション種別は「デスクトップアプリ」。JSONをダウンロードしたら所定パスに置きます。
# Mac / Linux / WSL / Git Bash
mkdir -p ~/.config/gws
mv ~/Downloads/client_secret_*.json ~/.config/gws/client_secret.json
このJSONは 「自分のPCがGoogleとして振る舞える鍵」 です。Gitにコミットしない・Slackに貼らない。漏れたらCloud Consoleから即削除して再発行、を覚えておきます。
4. gws auth login で認証
gws auth login --scopes "https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/documents,https://www.googleapis.com/auth/meetings.space.readonly,https://www.googleapis.com/auth/cloud-platform"
このコマンドは1行 です。改行が混ざると error: a value is required for '--scopes <scopes>' but none was supplied が出るので注意。
ブラウザが開くので業務用アカウントを選び、全権限にチェックが入った状態で「許可」。終わったら確認します。
gws auth status
# token_valid: true と、スコープが6種類以上付いていればOK
サービス名指定(-s drive,sheets,...)よりも --scopes でフルURL指定のほうが、スコープ取り漏れを防げます。
5. --params と --json の使い分け
gws のコマンドで頻出する2つのフラグ。最初に押さえておくと混乱しません。
| フラグ | 何を渡すか | 例 |
|---|---|---|
--params |
URL/クエリ的なパラメータ(ID・range・pageSize・検索クエリ等) | --params '{"spreadsheetId": "X", "range": "A1:E10"}' |
--json |
リクエストボディ(書き込む値・新規作成内容) | --json '{"values": [["a","b"]]}' |
values update のように両方を同時に使うコマンドもあります(「どこに=--params」「何を書く=--json」)。
Claude Codeに「公式スキル」を覚えさせる
ここからが Claude Code との連携。最終的に作りたい構成はこんな3層スタック。
実行時の信号の流れで見ると、人 → Claude Code → gws CLI → Google API → Workspace の5段バケツリレー。Claude Code が「自然言語」と「gws の正しい構文」を変換するハブになります。
このハブを成立させるのが 公式スキル群。Google公式リポジトリには 約95個のAgent Skill が用意されていて、Drive・Sheets・Gmail の細粒度操作から、standup-report のような複合ワークフローまで揃っています。
専用ディレクトリを切って、 プロジェクトスコープで一括インストール します(グローバルでなく)。
mkdir -p ~/gws-handson
cd ~/gws-handson
npx skills add https://github.com/googleworkspace/cli --all
確認:
ls .agents/skills/ | wc -l # → 90個前後
スキルの内訳(執筆時点 v0.22.5):
| カテゴリ | 個数 | 例 |
|---|---|---|
| コアサービス | 約14 |
gws-drive gws-sheets gws-gmail gws-calendar gws-docs gws-meet … |
| 細粒度の操作 | 約20 |
gws-sheets-read gws-gmail-send gws-gmail-reply … |
| ワークフロー(複合) | 6 |
gws-workflow-standup-report gws-workflow-weekly-digest … |
| ペルソナ(職種別) | 10 |
persona-project-manager persona-sales-ops … |
| レシピ(業務シナリオ) | 40+ |
recipe-save-email-attachments recipe-find-free-time … |
| セキュリティ | 4 |
gws-modelarmor-*(プロンプトインジェクション検査) |
このディレクトリで Claude Code を起動すると、 自動的に .agents/skills/ 配下が認識 されます。
cd ~/gws-handson
claude
「今インストールされている gws 系のスキルを一覧して」と頼めば、.agents/skills/ を読んでずらっと並べてくれます。
5機能を実際に動かしてみる
ここからは Claude Code に 日本語で頼む スタイルで。実行は Claude Code 側で勝手にやってくれるので、出てきたコマンドを横目に確認するだけです。
Drive:直近のファイル一覧 と Meet録画フォルダ検索
gws を使って、自分の Drive の最近変更されたファイルを3件だけ表示して
組み立てられたコマンド:
gws drive files list \
--params '{"pageSize": 3, "orderBy": "modifiedTime desc", "fields": "files(id,name,mimeType,modifiedTime)"}' \
--format json
Meet録画は Drive の 「Meet Recordings」 フォルダに自動保存されるので、こんなクエリで探せます。
gws drive files list \
--params '{"q": "name contains \"Meet Recording\"", "pageSize": 5, "fields": "files(id,name,mimeType,modifiedTime,parents)"}' \
--format json
Sheets:作成 → 書き込み → 読み込み → 追記
スプレッドシートまわりは4ステップで一通り触れます。
新しいスプレッドシートを作って。タイトルは「DXタスクリスト」、最初のタブ名は「tasks」にして。spreadsheetId を教えて。
gws sheets spreadsheets create \
--json '{"properties": {"title": "DXタスクリスト"}, "sheets": [{"properties": {"title": "tasks"}}]}' \
--format json
返ってきた spreadsheetId を <SHEET_ID> として、ヘッダと3行のデータを書き込みます。
<SHEET_ID> の tasks!A1:E4 に、タスクID/担当/内容/期限/ステータスの4行を書いて
Claude Code が gws sheets spreadsheets values update を組み立てて実行。 書き込み系は承認画面で範囲を毎回確認 する運用が前提。慣れるまでは題材シート(コピー)で動作確認するのが無難です。
末尾追加は values append で。
tasks シートの末尾に新しいタスクを1行追加して。タスクID: DXAI-4 / 担当: 自分 / 内容: ハンズオン宿題 / 期限: 1週間後 / ステータス: 未着手
Calendar:今日の予定をAIに聞く
gws calendar +agenda --format json
返り値の例:
{
"count": 4,
"events": [
{
"start": "2026-05-12T10:00:00+09:00",
"end": "2026-05-12T11:00:00+09:00",
"summary": "顧客様A"
}
]
}
+agenda の + プレフィックスはヘルパーコマンド の印。素のAPIだと calendar events list を複数カレンダーに対して回す必要があるところを、1コマンドで束ねてくれます。
Docs:議事録メモを新規作成して本文を挿入
gws docs documents create --json '{"title": "DX議事録メモ"}' --format json
本文挿入は gws docs documents batchUpdate の insertText リクエスト。Claude Code に「以下の本文を挿入して」と Markdown ベタ書きで頼めば、内部でJSONに変換してくれます。
⚠️ 403 Google Docs API has not been used in project ... が返るときは、API有効化漏れの可能性が高いです。Cloud Console で docs.googleapis.com を有効化すると即解消します(自分の場合、新規プロジェクトを作らず既存プロジェクトの client_secret を流用していたため Docs/Meet API が有効化されておらず、ここでハマりました)。
Meet:公式APIで会議記録を取得
gws meet conferenceRecords list --params '{"pageSize": 3}' --format json
返り値の例(実機で取得):
{
"conferenceRecords": [
{
"name": "conferenceRecords/...",
"space": "spaces/...",
"startTime": "2026-05-01T00:58:13.285085Z",
"endTime": "...",
"expireTime": "2026-05-31T..."
}
]
}
⚠️ conferenceRecords 系API は Workspace Business Standard 以上のエディションでのみ動作 します。Starter / Individual の場合は、上の Drive セクションで紹介した「Meet Recordings」フォルダ検索で代替できます。
ワークフロースキル:1コマンドで朝会レポを作る
公式スキルの中には 複数APIを束ねた業務直結のヘルパー が6個あります。代表が standup-report。
gws workflow +standup-report --format table
1コマンドで 「今日のカレンダー予定」+「未完了の Google Tasks」 が朝会形式でまとまって返ります(内部は calendar +agenda と tasks list を束ねたもの)。
他にも揃っています。
| 実行コマンド | 何をする |
|---|---|
gws workflow +standup-report |
朝会レポ(今日の予定 + 未完了タスク) |
gws workflow +weekly-digest |
週次まとめ(今週の会議 + 未読メール数) |
gws workflow +meeting-prep |
次の会議の準備(議題・出席者・関連Doc) |
gws workflow +email-to-task |
メール → Google Tasks に変換 |
gws workflow +file-announce |
Drive ファイルを Chat に告知 |
複合タスクも日本語1行で投げられます。
今日のカレンダー予定をもとに、各打ち合わせの議事録テンプレートDocを新規作成して。
タイトルは「議事録_<会議名>_<日付>」で。先週のMeet録画一覧もDocの末尾に添えて。
これで Claude Code が内部で「Calendar から今日の予定を取得 → 各予定について Doc を新規作成 → タイトルを動的生成 → Meet conferenceRecords を取得 → 本文に埋め込み」までを組み立てて実行します。スキル群があると Claude Code側が正しいコマンドの引数を"知っている"前提で会話できる ため、自然言語の指示だけで複合タスクが回せます。
ハマりやすいポイント Top5
実際に詰まった順に整理します。
| # | 症状 | 原因 | 抜け道 |
|---|---|---|---|
| ① | access_denied |
OAuth同意画面のテストユーザー未追加(「外部」モード) | Workspaceなら「内部」に切替、または「外部」のままテストユーザーに自分追加 |
| ② | 403 API has not been used |
既存プロジェクトの client_secret.json を流用していて、必要なAPIが有効化されていない(自分はこれで Docs/Meet が動かないと勘違いした)/本当に有効化直後なら伝播遅延も数分ある |
gcloud services list --enabled --project=<ID> で確認 → 不足は gcloud services enable docs.googleapis.com meet.googleapis.com --project=<ID> で一括有効化 |
| ③ | 403 Insufficient authentication scopes |
スコープ不足 |
gws auth login --scopes "<URL>,<URL>,..." でフルURL指定して再認証 |
| ④ | Meetの conferenceRecords が空 or 動かない |
Workspaceエディション制約(Starter/Individualは不可) | Business Standard以上が必要。下位エディションなら Drive 経由で「Meet Recordings」フォルダを検索 |
| ⑤ | zsh/bash で Sheet1!A1 が壊れる |
! が履歴展開と解釈される |
シングルクォートで囲む(--params '{"range": "tasks!A1:E10"}') |
特に②は、ハンズオン教材だと「新規プロジェクトを作って API 有効化」の流れになっていますが、 既存プロジェクトの認証鍵をそのまま使い回すと、教材通り進めたつもりでも API 有効化漏れが起きる という落とし穴です。gws auth status の enabled_apis を覗くと一発で気づけます。
まとめ
-
gwsは Google DevRel主導のOSS(googleworkspace/cli)。Workspace 27サービスを1ツールでカバー - Claude Code との連携は 公式スキル群(95個)の一括インストールがキモ。AIが gws の正しい構文を"知ってる"状態を作れる
- セットアップで一番詰まるのは OAuth同意画面とAPI有効化の伝播遅延。ここを抜ければあとは日本語で頼むだけ
公式リポジトリ配布なので素性は確かですが、Workspace 製品本体のような有償サポート(SLA)が付く位置付けではない点だけ留意。業務クリティカルな自動化に乗せる前にはチームで動作確認しておきたいところです。
関連記事
- Claude Codeでできること全まとめ──基本操作・MCP・Skills・エージェントを図解 — Claude Code本体の全体像
- 【完全ガイド】Claude Code Skillsの作り方 ― 公式基準で54個診断して分かった設計のコツ — 今回使った公式スキル群を自作するときの設計指針
- 8つの外部ツールを束ねるClaude Code「AI秘書」の設計と実装 — MCP・CLI・サブエージェント並列実行の全体像 — gws と同じ「CLI × Claude Code」の応用例







