
Gws Install
Authenticate the Google Workspace CLI on a second machine using an existing client_secret.json so agents can call Gmail, Drive, and related APIs.
Overview
gws-install is an agent skill for the Build phase that installs and authenticates the Google Workspace CLI on an additional machine using existing OAuth client_secret.json credentials.
Install
npx skills add https://github.com/jezweb/claude-skills --skill gws-installWhat is this skill?
- Four-step workflow: pre-flight checks, npm global install, credential placement, and auth completion
- Reuses client_secret.json from a prior gws-setup instead of repeating full Cloud Console setup
- Pre-flight covers which gws, version, credential path, and gws auth status
- Documents three ways to supply credentials including paste-to-~/.config/gws/client_secret.json
- Marked claude-code-only in SKILL.md compatibility metadata
- Four-step install workflow from pre-flight through authenticated CLI
- Three credential delivery options documented for client_secret.json
Adoption & trust: 692 installs on skills.sh; 841 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You already have gws OAuth credentials on one machine but need the CLI and tokens working on a new computer without repeating full setup.
Who is it for?
Solo builders cloning an existing gws-setup to a fresh OS, spare laptop, or teammate machine with client_secret.json in hand.
Skip if: First-time Google Cloud OAuth project creation—use gws-setup instead—or users who want a non–Claude Code agent without checking compatibility.
When should I use this skill?
User wants to install gws on a new computer, reinstall after fresh OS, configure a second workstation, or says install gws / gws on new machine / set up gws again, with client_secret.json from prior gws-setup.
What do I get? / Deliverables
You get a version-pinned global gws install with client_secret.json in place and auth status ready so Workspace agent skills can run on the new host.
- Globally installed gws CLI with verified version
- Authenticated gws session with credentials under ~/.config/gws
Recommended Skills
Journey fit
Installing and wiring OAuth for gws is integration tooling you set up while building your agent workspace, not launch marketing. Integrations subphase matches third-party CLI auth, credentials on disk, and Google Workspace API access for agents.
How it compares
Quick reinstall path for existing OAuth—not the full gws-setup Cloud Console onboarding skill.
Common Questions / FAQ
Who is gws-install for?
Claude Code users who already ran gws-setup and need Google Workspace CLI on another machine with the same OAuth client.
When should I use gws-install?
During Build when you say install gws, move to a new workstation, reinstall after a fresh OS, or configure a second computer with existing credentials.
Is gws-install safe to install?
It handles OAuth secrets and global npm installs; review the Security Audits panel on this page and limit client_secret.json to trusted machines.
Workflow Chain
Requires first: gws setup
SKILL.md
READMESKILL.md - Gws Install
# Google Workspace CLI — Quick Install 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. ## Workflow ### Step 1: Pre-flight Checks ```bash which gws && gws --version ls ~/.config/gws/client_secret.json gws auth status ``` If already authenticated with the right scopes, skip to Step 4. ### Step 2: Install the CLI ```bash npm install -g @googleworkspace/cli gws --version ``` ### Step 3: Set Up Credentials 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`: ```bash mkdir -p ~/.config/gws ``` Expected format: ```json { "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): ```bash mkdir -p ~/.config/gws cp /path/to/client_secret.json ~/.config/gws/client_secret.json ``` **Option C — Environment variables:** ```bash export GOOGLE_WORKSPACE_CLI_CLIENT_ID="your-client-id" export GOOGLE_WORKSPACE_CLI_CLIENT_SECRET="your-client-secret" ``` ### Step 4: Authenticate **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: 1. **Run auth in the background** and capture output: ```bash 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. 2. **Extract and open the URL** (run separately after output appears): ```bash 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." 3. **Wait for the user** to approve in their browser, then verify: ```bash gws auth status ``` **Alternative — `--full` for all scopes:** ```bash gws auth login --full ``` The user can check their original machine's scopes with `gws auth status` to see what was granted. ### Step 5: Install Agent Skills ```bash 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. ### Step 6: Verify ```bash gws auth status gws calendar +agenda --today gws gmail +triage ``` --- ## Troubleshooting ### "Auth error — credentials missing or invalid" (exit code 2) - Check `~/.config/gws/client_secret.json` exists and has valid JSON - Re-run `gws auth login` ### Token expired - If the GCP app is in "Testing" status, tokens expire after 7 days - Re-run `gws auth login` to refresh - For permanent tokens, push the app to Production in GCP Console OAuth consent screen ### Skills not appearing in Claude Code - Skills load at session start — restart Claude Code after in