gpc-setup
GPC Setup
When to use
Use this skill when the task involves:
- Installing GPC (
npm install -g @gpc-cli/clior standalone binary) - Authenticating with Google Play Developer API (service account, OAuth, ADC)
- Managing auth profiles (
gpc auth profiles,gpc auth switch) - Configuring GPC (
.gpcrc.json, env vars,gpc config init) - Diagnosing setup issues (
gpc doctor) - Setting up GPC in a new project or CI environment
Inputs required
- Whether this is local development or CI/CD setup
- Auth method: service account JSON, OAuth, or Application Default Credentials
- Package name of the Android app (e.g.,
com.example.app) - If CI: which CI platform (GitHub Actions, GitLab, etc.)
Procedure
0) Install GPC
Via npm (recommended):
npm install -g @gpc-cli/cli
Via npx (zero-install trial):
npx @gpc-cli/cli --version
Via standalone binary (no Node.js needed):
curl -fsSL https://raw.githubusercontent.com/yasserstudio/gpc/main/scripts/install.sh | bash
1) Authenticate
Three auth strategies, in order of recommendation:
A) Service Account (recommended for CI/CD)
New to Google Cloud or setting up for the first time? Use the interactive GCP setup guide:
gpc auth setup-gcp
This fully interactive wizard walks through every step required to connect GPC to the Play Developer API:
- Enabling the Google Play Developer API in your GCP project
- Creating a service account in the GCP Console
- Granting the service account access in Google Play Console (Settings → API access)
- Downloading the JSON key file to your machine
- Running
gpc auth loginwith the downloaded key
No flags needed -- just run the command and follow the prompts. Ideal for first-time setup on any machine.
Already have a key file? Skip the wizard with --key:
gpc auth setup-gcp --key /path/to/service-account.json
This validates the JSON, authenticates, and saves to config in one step.
Once the wizard completes, or if you already have a key file:
gpc auth login --service-account path/to/key.json
Or via environment variable (preferred in CI):
export GPC_SERVICE_ACCOUNT=path/to/key.json
# or inline JSON:
export GPC_SERVICE_ACCOUNT='{"type":"service_account","project_id":"..."}'
Read:
references/service-account.md
B) OAuth (for local development)
Interactive OAuth device flow — no key file needed:
gpc auth login
Tokens are cached in the OS keychain (macOS Keychain, Linux libsecret) or file fallback.
C) Application Default Credentials (for GCP environments)
Works automatically in Cloud Build, Cloud Run, GKE — no configuration needed:
# ADC is auto-detected when no other auth is configured
gpc apps list
1b) One-command guided setup (v0.9.68+)
For new users or new machines, gpc setup is the fastest path to a working configuration:
gpc setup
This interactive wizard covers the full onboarding flow in a single command:
- Authenticates (service account, OAuth, or ADC — prompted interactively)
- Picks a default app from your Play Console (lists available apps)
- Writes
.gpcrc.jsonwith the chosen app, profile, and output format - Installs shell completion for your current shell (bash/zsh/fish)
- Runs
gpc doctorautomatically to verify the result
CI/headless mode — skip all prompts with --auto:
gpc setup --auto
In --auto mode, gpc setup uses GPC_SERVICE_ACCOUNT + GPC_APP env vars and skips interactive steps. Ideal for bootstrapping a fresh CI runner from a single pipeline step.
2) Configure defaults
Interactive setup wizard:
gpc config init
Guided wizard that:
- Selects auth method (
service-account/adc/skip) - For service account: validates the file exists (retries if path is wrong)
- Prompts for default package name (warns if format is invalid)
- Writes
.gpcrc.jsonand prints a post-init summary - Ends with:
Run \gpc doctor` to verify your setup.`
Manual config file (.gpcrc.json in project root or ~/.config/gpc/config.json):
{
"app": "com.example.myapp",
"output": "table",
"profile": "default"
}
Environment variables:
| Variable | Description |
|---|---|
GPC_APP |
Default package name |
GPC_OUTPUT |
Default output format (table/json/yaml/markdown/csv/tsv) |
GPC_PROFILE |
Auth profile name |
GPC_NO_COLOR |
Disable color output |
GPC_NO_INTERACTIVE |
Disable interactive prompts |
GPC_SKIP_KEYCHAIN |
Skip OS keychain, use file storage |
Read:
references/configuration.md
3) Manage auth profiles
For managing multiple Google Play accounts:
gpc auth profiles # List profiles
gpc auth switch production # Switch active profile
gpc auth whoami # Show current identity
gpc auth status # Show auth state details
Use --profile flag to override per-command:
gpc apps list --profile staging
4) Verify setup
gpc doctor
Checks (22 total):
- Node.js version (≥ 20)
- Configuration loaded
- Default app set and valid Android package name format
- Authentication valid
- API connectivity (googleapis.com + playdeveloperreporting.googleapis.com)
- Proxy configuration (if set)
- GPC version (suggests update if outdated)
- HTTPS probe
- App access verification
- Service account key age
- Unknown config keys
- Token cache health
- Disk space
- CI detection
- Developer verification status
- API quota proximity (warns at >80% daily or per-minute usage, v0.9.71+)
- Plugin health (discovers, loads, reports each configured plugin, v0.9.71+)
Use gpc doctor --fix to auto-remediate fixable issues (version, auth, config keys).
JSON output is supported: gpc doctor --json or gpc doctor --output json.
5a) Check developer verification (v0.9.66+)
gpc verify # Account-aware status with app info, signing enrollment, days until enforcement
gpc verify --open # Open verification page in browser
gpc verify checklist # Interactive 7-step readiness walkthrough (markdown report for CI)
Google's Android developer verification enforcement begins September 30, 2026 for BR, ID, SG, TH. gpc doctor includes this as a verification-deadline check.
Signing key verification
gpc doctor --verify # API-side signing cert check
gpc doctor --verify --keystore release.jks --store-pass x # Compare local keystore against API cert
gpc preflight signing # Cert consistency across two most recent bundles
gpc doctor --verify pulls your app's signing certificate from Google Play via generatedApks and optionally compares it against a local keystore (requires keytool from JDK). gpc preflight signing compares certs across your two most recent bundle versions and exits 6 on mismatch (CI-friendly).
5b) Browse documentation from CLI (v0.9.64+ embedded docs)
Since v0.9.64, GPC ships 99 documentation pages embedded in the binary. No network required.
gpc docs list # List all 99 embedded topics
gpc docs show authentication # Render a guide in the terminal (ANSI-formatted)
gpc docs show auth # Fuzzy slug matching
gpc docs search "staged rollout" # Full-text search across all pages
gpc docs init # Write GPC.md quick-reference into repo (for AI agents)
gpc docs web # Open docs site in browser (previous default behavior)
gpc docs show pipes through $PAGER for long pages. gpc docs list --json and gpc docs search --json for machine-readable output.
5) Network configuration (if needed)
For corporate proxies or custom CA certificates:
export HTTPS_PROXY=http://proxy.example.com:8080
export GPC_CA_CERT=/path/to/ca-bundle.crt
Retry configuration:
export GPC_MAX_RETRIES=3
export GPC_TIMEOUT=30000
export GPC_BASE_DELAY=1000
export GPC_MAX_DELAY=60000
Shell completion (v0.9.58+ walker, v0.9.60+ dynamic values)
GPC ships shell completion for bash, zsh, fish, and PowerShell. The completion tree is introspection-based (v0.9.58+) -- new commands and plugin-registered commands auto-complete without generator edits. Flags declared with .choices() surface their candidate list at TAB time.
# One-time setup (macOS/Linux)
gpc completion bash >> ~/.bash_completion # or source in ~/.bashrc
gpc completion zsh >> ~/.zshrc
gpc completion fish > ~/.config/fish/completions/gpc.fish
# Homebrew auto-installs completion files -- no eval step needed
brew install yasserstudio/tap/gpc
Dynamic values (v0.9.60+)
The completion scripts fill in live values for several flags at TAB time, backed by a hidden gpc __complete <ctx> subcommand. No API call -- reads your config and ~/.cache/gpc/status-*.json cache, returns in under 150ms cold.
| Flag | Source |
|---|---|
--profile |
Profile names from ~/.config/gpc/config.json |
--app / --apps |
Package names from config + status cache |
--track |
Track names for the current app (from status cache) |
If your package/track completions are stale, run any command that touches gpc status (or gpc status directly) to refresh the cache.
Verification
gpc doctorshows all checks passinggpc auth statusshows authenticated identitygpc apps listreturns real app datagpc config showdisplays resolved configuration
Failure modes / debugging
| Symptom | Likely Cause | Fix |
|---|---|---|
AUTH_EXPIRED |
Access token expired | gpc auth login to re-authenticate |
AUTH_INVALID |
Wrong service account or missing permissions | Check Google Play Console → Settings → API access |
NETWORK_ERROR |
Proxy or firewall blocking | Set HTTPS_PROXY and/or GPC_CA_CERT |
CONFIG_NOT_FOUND |
No config file | Run gpc config init or set GPC_APP env var |
| Doctor fails on "API connectivity" | Service account not granted Play Console access | Add service account in Play Console API access settings |
Read:
references/troubleshooting.md
Escalation
- For Google Play Console API access setup, refer to: https://developers.google.com/android-publisher/getting_started
- For service account creation, refer to: https://cloud.google.com/iam/docs/service-accounts-create
More from yasserstudio/gpc-skills
gpc-sdk-usage
Use when building applications that programmatically interact with the Google Play Developer API using GPC's TypeScript SDK packages. Make sure to use this skill whenever the user mentions @gpc-cli/api, @gpc-cli/auth, PlayApiClient, createApiClient, resolveAuth, Google Play API client, TypeScript SDK, programmatic access, API client, HTTP client, rate limiter, pagination, edit lifecycle in code, Node.js Google Play, server-side Play Store, backend integration — even if they don't explicitly say 'SDK.' Also trigger when someone wants to build a backend service, custom dashboard, automation script, or any TypeScript/JavaScript application that interacts with Google Play programmatically rather than through the CLI. For CLI usage, see other gpc-* skills. For building plugins, see gpc-plugin-development.
12gpc-release-flow
Use when uploading, releasing, promoting, or managing rollouts on Google Play. Make sure to use this skill whenever the user mentions gpc releases, upload AAB, upload APK, staged rollout, promote to production, halt rollout, gpc publish, release notes, track management, internal testing, beta release, production rollout, version code, rollout percentage, gpc bundles, bundle list, bundle wait, wait for bundle processing, in-app update priority, retain version codes, versioned changelogs, or wants to ship an Android app to any Play Store track. Also trigger when someone asks about the Google Play edit lifecycle, release validation, or how to do a phased rollout — even if they don't mention GPC by name. For metadata and listings, see gpc-metadata-sync. For CI/CD integration, see gpc-ci-integration.
12gpc-security
Use when dealing with GPC credential security, secret management, audit logging, or access control. Make sure to use this skill whenever the user mentions credentials, service account key, secret rotation, key rotation, credential storage, audit log, audit trail, security best practices, .gpcrc.json security, secrets in CI, GPC_SERVICE_ACCOUNT safety, keychain, token cache, credential leak, key compromise, secure deployment — even if they don't explicitly say 'security.' Also trigger when someone asks about where GPC stores credentials, how to rotate service account keys, how to audit who did what with GPC, how to securely pass credentials in CI/CD, or how to handle a compromised service account key. For auth setup, see gpc-setup. For CI configuration, see gpc-ci-integration.
12gpc-multi-app
Use when managing multiple Google Play apps with GPC. Make sure to use this skill whenever the user mentions multiple apps, multi-app, monorepo, white-label, batch operations, bulk upload, several apps, --app flag, app switching, profiles for different apps, fleet management, app portfolio, multiple package names — even if they don't explicitly say 'multi-app.' Also trigger when someone has more than one Android app and wants to manage them efficiently, when they need different configurations per app, when they're running the same command across multiple apps, or when they have a monorepo with multiple Android modules. For single-app setup, see gpc-setup. For CI automation, see gpc-ci-integration.
11gpc-monetization
Use when managing in-app purchases, subscriptions, pricing, or Real-Time Developer Notifications in Google Play. Make sure to use this skill whenever the user mentions gpc subscriptions, gpc iap, gpc purchases, gpc pricing, gpc rtdn, in-app products, base plans, subscription offers, one-time products, consumable products, purchase verification, purchase acknowledgement, purchase token, subscription cancellation, subscription deferral, voided purchases, refunds, regional pricing, currency conversion, price migration, SKU management, monetization, revenue, billing, subscription analytics, churn, trial conversion, subscriber count, RTDN, Real-Time Developer Notifications, Pub/Sub notifications, subscription events, purchase events — even if they don't explicitly say 'monetization.' Also trigger when someone wants to create or update subscriptions, manage base plan lifecycle (activate/deactivate), set up introductory offers, verify server-side purchases, handle refunds, convert prices across regions, sync IAP products from files, migrate subscribers to new prices, view subscription analytics, decode Pub/Sub notification payloads, or check RTDN topic configuration. For release management, see gpc-release-flow. For CI automation, see gpc-ci-integration.
11gpc-metadata-sync
Use when managing Google Play store listings, metadata, screenshots, or images. Make sure to use this skill whenever the user mentions gpc listings, store listing, metadata sync, screenshots, Fastlane metadata, localization, app description, pull listings, push listings, feature graphic, Play Store images, app title, short description, full description, changelogs, image sync, image dedup, listings images sync, or wants to update any text or visual content on their Play Store page. Also trigger when someone asks about migrating from Fastlane supply, syncing metadata to/from local files, managing multi-language listings, or bulk-updating store content — even if they don't mention GPC explicitly. For releases and uploads, see gpc-release-flow.
11