google-pimp
Active router for ALL Google CLI requests — classifies and routes to the correct google-cli skill before any response. Use when anything involves Google Workspace CLI (gogcli/gog), Places CLI (goplaces), Google Ads CLI (gaql/mcc-gaql/google-ads-mcp), or gcloud GCP infra.
| Model | Source |
|---|---|
| sonnet | pack: google-cli |
Full Reference
This is not optional. This is not negotiable. You cannot skip this.
Google Pimp
Section titled “Google Pimp”The orchestration layer for all Google CLI tools. Not documentation — an active router. Every Google CLI request flows through this routing table before any response.
Mandatory Announcement — FIRST OUTPUT before anything else:
┏━ 🌐 google-pimp ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ [one-line description of what request/routing] ┃┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛No exceptions. Box frame first, then route.
Quick Context
Section titled “Quick Context”The google-cli pack covers the CLI execution layer for Google’s ecosystem — complementing the existing google-apis pack (API reference/SDK docs). 8 skills total: 4 deep CLI reference skills with reference/ docs, 2 workflow composition skills, 1 account context manager, plus this router.
| Pack | Focus |
|---|---|
google-cli (this pack) | CLI execution — running gog, goplaces, gaql, gcloud from terminal |
google-apis | API reference — SDK usage, endpoint docs, auth flows for building apps |
Context Detection
Section titled “Context Detection”Before routing, check for active account context:
- Read
google-cli.jsonat project root if it exists - Check
GOOGLE_CLI_CONTEXTenv var — overridesdefaultfield at runtime - Active context determines which account/config to inject per tool
# Active context resolution order:# 1. $GOOGLE_CLI_CONTEXT env var (highest priority)# 2. google-cli.json "default" field# 3. Ambient auth (no context file — tools use their own defaults)If google-cli.json does not exist and the request involves multi-account or account setup → route to google-accounts.
Routing Table
Section titled “Routing Table”Classify the request. Invoke the matching skill. No response before invocation.
| Request Pattern | Skill |
|---|---|
| Set up google-cli.json, add client context, switch active context | google-accounts |
| Check Google account auth status, validate all tool credentials | google-accounts |
| ”google-accounts”, “switch context to”, “add context”, “check accounts” | google-accounts |
Gmail, Calendar, Drive, Contacts, Tasks via CLI, gog command | gogcli |
| Sheets, Docs, Slides, Forms, Apps Script, Chat, Classroom via CLI | gogcli |
| gogcli install, auth, multi-account, keyring, scopes, config | gogcli |
| Places search, nearby search, autocomplete, place details | goplaces |
| Routes, directions, distance matrix, geocoding via CLI | goplaces |
| goplaces install, API key, env vars, global flags | goplaces |
| Google Ads GAQL query, campaign report, metrics, date ranges | google-ads-cli |
| MCC multi-account ops, cross-account reporting, login_customer_id | google-ads-cli |
| gaql-cli REPL, mcc-gaql Rust binary, google-ads-mcp server | google-ads-cli |
| Google Ads developer token, auth, config.toml | google-ads-cli |
| gcloud compute, VMs, instance groups, firewall, SSH/IAP | gcloud |
| GKE clusters, Autopilot, kubectl, node pools, Workload Identity | gcloud |
| Cloud Run deploy, traffic splitting, revisions, secrets | gcloud |
| IAM roles, service accounts, policy bindings, WIF | gcloud |
| gcloud install, auth, named configs, ADC, components | gcloud |
| Workspace automation pipeline (email → sheet → calendar) | google-workspace-workflow |
| Gmail → Sheets, Contacts → Calendar, Forms → Drive pipelines | google-workspace-workflow |
| MCC health check, cross-account ads reports, budget pacing | google-ads-workflow |
| Weekly performance reports, campaign status audits | google-ads-workflow |
| Compare Google CLI tools, “which tool for X”, general help | google-cli-expert agent |
| Google API SDK questions, REST endpoints, building apps | Cross-route → google-apis pack |
Tool Selection Logic
Section titled “Tool Selection Logic”Four distinct CLI tools for four Google domains:
| Tool | Domain | Auth | Install |
|---|---|---|---|
gogcli (gog) | Google Workspace (14+ services) | OAuth2 + keyring | brew install steipete/tap/gogcli |
| goplaces | Places API (New) + Routes | API key | brew install steipete/tap/goplaces |
| gaql-cli / mcc-gaql | Google Ads GAQL | Developer token + OAuth2 | pipx install gaql-cli / cargo |
| gcloud | Google Cloud Platform | OAuth2 + ADC | Google Cloud SDK |
Decision flow:
- Google Workspace operation (email, calendar, drive, docs, sheets)? →
gogcli - Location search, nearby places, route planning? →
goplaces - Google Ads data, campaign management, cross-account MCC? →
google-ads-cli - Cloud infrastructure (VMs, containers, serverless, IAM)? →
gcloud - Multi-step pipeline combining Workspace tools? →
google-workspace-workflow - Cross-account Ads reporting pipeline? →
google-ads-workflow
State Detection
Section titled “State Detection”Before routing, check what’s installed:
| Check | Command | Result |
|---|---|---|
| gogcli installed? | which gog | If missing, suggest brew install steipete/tap/gogcli |
| gogcli authenticated? | gog auth list --check | If failing, guide through gog auth add |
| goplaces installed? | which goplaces | If missing, suggest brew install steipete/tap/goplaces |
| GOOGLE_PLACES_API_KEY set? | echo $GOOGLE_PLACES_API_KEY | Required for goplaces |
| gaql-cli installed? | which gaql | If missing, pipx install gaql-cli |
| mcc-gaql installed? | which mcc-gaql | If missing, cargo install or download binary |
| gcloud installed? | which gcloud | If missing, install Google Cloud SDK |
| gcloud authenticated? | gcloud auth list | If missing, gcloud auth login |
| State | Action |
|---|---|
| Tool missing, task requested | Route to relevant reference/setup.md first |
| Auth missing | Guide auth setup before proceeding |
| Tool available, auth ready | Route directly to target skill |
Cross-Cutting Rules
Section titled “Cross-Cutting Rules”- If request spans multiple tools, invoke the PRIMARY skill first (closest to the core question)
- “Send email from CLI” → always
gogcli, never other tools - “Find restaurants nearby” → always
goplaces - “Report on all ad accounts” →
google-ads-workflow(multi-account) orgoogle-ads-cli(single) - “Deploy my app to Cloud Run” →
gcloud - Google API SDK questions (how to call the REST API in code) → cross-route to
google-apispack - “Which Google tool should I use?” →
google-cli-expertagent
Chaining Patterns
Section titled “Chaining Patterns”| User Says | Chain |
|---|---|
| ”Pull leads from Gmail and log to Sheets” | google-workspace-workflow → gogcli (gmail + workspace) |
| “Search for coffee shops near my office and get directions” | goplaces (search → routes) |
| “Run GAQL query across all MCC accounts” | google-ads-cli → mcc.md |
| ”Deploy Cloud Run with service account” | gcloud → run.md + iam.md |
| ”Build a contact → calendar invite workflow” | google-workspace-workflow → gogcli |
| ”Set up gogcli with multiple Google accounts” | gogcli → reference/setup.md |
| ”Campaign health check across all clients” | google-ads-workflow |
Priority Order (when multiple skills apply)
Section titled “Priority Order (when multiple skills apply)”- google-workspace-workflow — if multi-step Workspace pipeline
- google-ads-workflow — if multi-account Ads pipeline
- gogcli — if Workspace CLI operation (Gmail/Calendar/Drive/Sheets/etc.)
- goplaces — if Places/Routes CLI operation
- google-ads-cli — if Ads GAQL/MCC operation
- gcloud — if GCP infrastructure operation
What This Skill Does NOT Route
Section titled “What This Skill Does NOT Route”- Building apps that call Google APIs (REST endpoints, SDKs) →
google-apispack - Google Analytics 4 API →
ga4-apiskill - Google Ads API SDK →
google-ads-apiskill - Google Business Profile API →
google-business-profile-apiskill - General coding on GCP (writing apps, not infra ops) → shepherd handles
- Non-CLI Google operations → not this pack
Hard Rules
Section titled “Hard Rules”- Never respond about Google CLI tools before invoking the target skill
- No summarizing, planning to invoke, or explaining what you’re about to do
- If two skills apply, invoke the FIRST one — it chains to the next
- If unclear, ask ONE clarifying question, then route
- The skill’s reference docs have the verified facts — always defer to them
- ALWAYS check State Detection before routing (install + auth status first)