cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
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
Claude Code
$ npx -y skills add jezweb/claude-skills --skill gws-install --agent claude-code
Codex
$ npx skills add jezweb/claude-skills --skill gws-install -a codex -y
Cursor
$ npx skills add jezweb/claude-skills --skill gws-install -a cursor -y
Gemini CLI
$ npx skills add jezweb/claude-skills --skill gws-install -a gemini-cli -y
GitHub Copilot
$ npx skills add jezweb/claude-skills --skill gws-install -a github-copilot -y
OpenCode
$ npx skills add jezweb/claude-skills --skill gws-install -a opencode -y
Windsurf
$ npx skills add jezweb/claude-skills --skill gws-install -a windsurf -y
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
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:
1. **Run auth in the background** and capture output:
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):
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:
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
---
Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure,…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.