Skip to main content
skill CX Codex

gws-install — Claude Code skill: quick Google Workspace CLI setup

Installs gws on a second machine using OAuth credentials you already have, so you skip the Google Cloud setup.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jezweb/claude-skills --skill gws-install -a claude-code
Open on GitHub

What gws-install does

The skill walks the agent through the whole sequence: check whether gws and a valid auth session exist, install the CLI with npm install -g @googleworkspace/cli, place client_secret.json in ~/.config/gws/, run gws auth login, then pull in the agent skills with npx skills add googleworkspace/cli -g --agent claude-code --all.

Auth is where it gets fiddly. The OAuth URL carries 30+ scopes, wraps across terminal lines and breaks when copied, so the skill extracts it to a file and opens it from there. One more thing to watch: while the GCP app sits in Testing status, tokens expire after 7 days and gws auth login has to be re-run. Pushing the app to Production in the OAuth consent screen makes them permanent.

You need client_secret.json from an earlier gws-setup or from Google Cloud Console. Without that file the skill has nothing to work with — use gws-setup instead, it creates the GCP project from scratch. Skills load at session start, so restart Claude once the install finishes.

What it helps with

  • set up gws on a second workstation
  • reinstall the CLI after a fresh OS install
  • get OAuth access on a new machine without creating a GCP project
  • wire Google Workspace agent skills into Claude
  • check which scopes the auth session actually granted

Example prompts for the agent

  • install gws on this machine, my client_secret.json is in Downloads
  • set up gws again after I reinstalled the OS
  • run gws auth status and show me the granted scopes

How to install gws-install

1Skills CLI (Vercel)

npx skills add jezweb/claude-skills --skill gws-install -a claude-code

2Manually: put the files in place

~/.claude/skills/gws-install/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/gws-install/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about gws-install

How do I install gws-install in Claude?

Run npx skills add jezweb/claude-skills --skill gws-install -a claude-code. The skill then lives at ~/.claude/skills/gws-install/SKILL.md.

What does gws-install do?

It handles the Google Workspace CLI install on an additional machine: installs the package, writes client_secret.json, runs authentication and adds the agent skills.

How is gws-install different from gws-setup?

gws-install assumes you already have client_secret.json from a previous setup. If you don't, gws-setup is the one that creates the Google Cloud project first.

Source text

SKILL.md · MIT
---
name: gws-install
description: "Quick install of the Google Workspace CLI (gws) on an additional machine using existing OAuth credentials. Requires client_secret.json from a previous gws-setup. Use whenever the user wants to install gws on a new computer, reinstall after a fresh OS, configure a second workstation, or says 'install gws', 'gws on new machine', 'set up gws again'."
compatibility: claude-code-only
---

# 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 installing
- Verify: `ls ~/.claude/skills/gws-* | wc -l` should show 30+ directories

## See Also

- [gws-setup](../gws-setup/SKILL.md) — First-time setup including GCP project creation
- [gws-shared](~/.claude/skills/gws-shared/SKILL.md) — Auth patterns and global flags

© jezweb · MIT · jezweb/claude-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set60

shopify-setup Configures Shopify CLI authentication and a stable Admin API access token for your store. Useful when connecting an agent to Shopify for product and content management. CX Codex +1 1,200installs aussie-business-english This skill guides business writing in Australian English, with a warm, direct tone. Use it to draft or review emails, proposals and other copy for an Australian audience. CX Codex +1 1,200installs google-chat-messages A skill that lets your agent post to Google Chat through an incoming webhook: plain text, cardsV2 cards and threaded replies. CX Codex +1 1,200installs product-showcase This skill turns a running web app into a multi-page site with real screenshots and visual workflow guides. Use it when a static image cannot explain how the app works. CX Codex +1 1,100installs app-docs Navigates a running web application via browser automation, captures consistent screenshots, and generates a structured Markdown user guide. CX Codex +1 1,100installs onboarding-ux This skill walks your app as a first-time user, finds where they get stuck, and writes the copy plus code for empty states, hints and welcome screens. CX Codex +1 1,100installs uk-business-english A skill that gives your agent British business English: EN-GB spelling, understated tone, the right greetings and sign-offs. Useful when a British audience reads the text. CX Codex +1 1,100installs gws-setup Sets up Google Workspace CLI (gws), guides GCP OAuth configuration, and installs 90+ agent skills. Handy for initial setup or auth troubleshooting. CX Codex +1 1,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor