Skip to content

What is GPC?

GPC is a command-line tool that gives you access to the entire Google Play Developer API from your terminal. One tool replaces the Play Console UI, Fastlane supply, gradle-play-publisher, and any custom scripts you've been maintaining.

Upload a release, promote to production, check crash rates, reply to reviews, manage subscriptions — all without opening a browser.

bash
gpc releases upload app.aab --track beta
gpc releases promote --from beta --to production --rollout 10
gpc vitals crashes --threshold 2.0    # Exit code 6 if breached
gpc reviews list --stars 1-2 --since 7d

What GPC Covers

187 API endpoints across every Google Play domain:

DomainCommandsWhat it does
Releasesreleases upload, releases promote, releases rollout, publishUpload AAB/APK, promote across tracks, manage staged rollouts
Listingslistings get, listings push, listings pull, listings imagesStore metadata, screenshots, localization, Fastlane format
Reviewsreviews list, reviews reply, reviews exportFilter by stars/language/time, reply, export to CSV
Vitalsvitals crashes, vitals anr, vitals startup, vitals compareCrash rates, ANR, startup times, frame rates, CI quality gates
Subscriptionssubscriptions list, subscriptions create, subscriptions offersBase plans, offers, activation, price migration
In-App Productsiap list, iap create, iap sync, otp list, otp offersManaged products, one-time products, bulk sync from files
Purchasespurchases get, purchases acknowledge, orders refundPurchase verification, consumption, voided purchases
Reportsreports download financial, reports download statsEarnings, installs, crashes, ratings CSV downloads
Testerstesters list, testers add, testers importTrack-scoped tester management, CSV bulk import
Usersusers list, users invite, users updateDeveloper account user and permission management
Bundlebundle analyze, bundle compareAAB/APK size analysis, cross-build comparison, CI size gates

Plus: device tiers, internal sharing, data safety, recovery actions, external transactions, and more. See the full command reference.

Why GPC Over Alternatives?

FeatureGPCFastlane supplygradle-play-publisherConsole UI
API endpoints187~20~15All (manual)
LanguageTypeScript (Node.js)RubyKotlin (Gradle)Browser
Installnpm install -g @gpc-cli/cli or standalone binarygem install fastlaneGradle pluginNone
ReleasesUpload, promote, rollout, halt, resume, completeUpload, promoteUpload, promoteManual
ListingsPull/push, images, Fastlane format compatiblePull/push, imagesListings onlyManual
ReviewsList, filter, reply, export CSVNoneNoneManual
VitalsCrashes, ANR, startup, rendering, battery, memoryNoneNoneView only
CI quality gates--threshold flag, exit code 6NoneNoneNone
SubscriptionsFull CRUD, base plans, offers, price migrationNoneNoneManual
In-app productsCRUD, bulk sync from filesNoneNoneManual
PurchasesVerify, acknowledge, consume, refundNoneNoneManual
ReportsFinancial and stats CSV downloadNoneNoneDownload
PluginsSDK with lifecycle hooksLanes + actionsNoneNone
Output formatstable, json, yaml, markdownStdoutStdoutN/A
Dry runAll write operationsNoneNoneN/A
Auth methodsService account, OAuth, ADC, env varService accountService accountGoogle account
Cold start<500ms2-3s3-5s5-10s

Architecture

GPC is a TypeScript monorepo with 7 publishable npm packages:

gpc/
  packages/cli        CLI entry point (Commander.js)
  packages/core       Business logic and orchestration
  packages/api        Typed Google Play API v3 client
  packages/auth       Service account, OAuth, ADC
  packages/config     Config loading, env vars, profiles
  packages/plugin-sdk Plugin interface and lifecycle hooks
  plugins/plugin-ci   CI/CD helpers (GitHub Actions summaries)

Dependency flow: cli calls core, which calls api, auth, and config. The CLI never touches the API directly.

Each package is independently installable. Use @gpc-cli/api and @gpc-cli/auth as a standalone TypeScript SDK for the Google Play API in your own projects. See SDK Usage.

Key Design Decisions

  • Output-first: Every command returns structured data. TTY gets table format; pipes get json automatically. Override with --output.
  • Idempotent operations: Uploads use checksums. Releases are safe to retry.
  • Fail fast: Inputs are validated before API calls. Auth issues surface immediately. Every error includes a code, message, and actionable suggestion.
  • CI-native: Non-interactive by default in CI. Vitals thresholds exit with code 6. Markdown output for GitHub Actions step summaries.
  • Dry-run everything: Every write operation supports --dry-run. Test your pipeline against real data without shipping anything.

Next Steps

  • Installation — Install via Homebrew, npm, standalone binary, or from source
  • Quick Start — Authenticate, upload, promote, and monitor in 5 minutes
  • Authentication — Set up service accounts, OAuth, or ADC
  • Configuration — Config files, environment variables, and profiles
  • CI/CD Integration — GitHub Actions, GitLab CI, Bitbucket, CircleCI recipes

Released under the MIT License.