Help us improve
Share bugs, ideas, or general feedback.
From integrations
Installs Google Workspace CLI (gws) on new machines using existing client_secret.json OAuth credentials. Covers npm install, credential import, and multi-scope browser auth.
npx claudepluginhub jezweb/claude-skills --plugin integrationsHow this skill is triggered — by the user, by Claude, or both
Slash command
/integrations:gws-installThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Install `gws` on an additional machine using OAuth credentials from a previous setup. Produces an authenticated CLI with all agent skills ready to use.
Guides Google Workspace CLI (gws) setup: installs via npm, creates GCP project, configures OAuth and APIs (Gmail/Drive/etc.), authenticates, installs Claude Code skills. For first-time use or auth troubleshooting.
Unified CLI for Google Workspace: manage Drive files, send/read Gmail, query/edit Sheets/Docs, handle Calendar/Chat/Admin via terminal or AI agents.
Provides gws CLI reference for authentication (OAuth, service accounts, multi-account), global flags (--format, --dry-run, --sanitize), output formatting, and method flags. Useful for Google Workspace API scripting.
Share bugs, ideas, or general feedback.
Install gws on an additional machine using OAuth credentials from a previous setup. Produces an authenticated CLI with all agent skills ready to use.
Prerequisite: The user must have client_secret.json from a previous gws-setup (or from Google Cloud Console). If they don't have it, use the gws-setup skill instead.
which gws && gws --version
ls ~/.config/gws/client_secret.json
gws auth status
If already authenticated with the right scopes, skip to Step 4.
npm install -g @googleworkspace/cli
gws --version
Ask the user to provide their client_secret.json. Three options:
Option A — Paste the JSON content:
Ask the user to paste the JSON. Write it to ~/.config/gws/client_secret.json:
mkdir -p ~/.config/gws
Expected format:
{
"installed": {
"client_id": "...",
"project_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"client_secret": "...",
"redirect_uris": ["http://localhost"]
}
}
Option B — File path:
If the user has the file locally (e.g. in Downloads):
mkdir -p ~/.config/gws
cp /path/to/client_secret.json ~/.config/gws/client_secret.json
Option C — Environment variables:
export GOOGLE_WORKSPACE_CLI_CLIENT_ID="your-client-id"
export GOOGLE_WORKSPACE_CLI_CLIENT_SECRET="your-client-secret"
IMPORTANT: This step prints a very long OAuth URL (30+ scopes) that the user must open in their browser. The URL is too long to copy from terminal output — it wraps across lines and breaks. Always extract it to a file and open it programmatically.
Ask which Google account to use, then:
gws auth login -s gmail,drive,calendar,sheets,docs,chat,tasks 2>&1 | tee /tmp/gws-auth-output.txt
Running as a background task is fine — it will complete once the user approves in browser.
grep -o 'https://accounts.google.com[^ ]*' /tmp/gws-auth-output.txt > /tmp/gws-auth-url.txt
cat /tmp/gws-auth-url.txt | xargs open
If open doesn't work, tell the user: "The auth URL is saved at /tmp/gws-auth-url.txt — open that file and copy the URL from there."
gws auth status
Alternative — --full for all scopes:
gws auth login --full
The user can check their original machine's scopes with gws auth status to see what was granted.
npx skills add googleworkspace/cli -g --agent claude-code --all
This installs 90+ skills into ~/.claude/skills/. Safe to re-run if skills are already installed.
gws auth status
gws calendar +agenda --today
gws gmail +triage
~/.config/gws/client_secret.json exists and has valid JSONgws auth logingws auth login to refreshls ~/.claude/skills/gws-* | wc -l should show 30+ directories