Install the Google Play Console CLI
One static binary — no Node.js, no Python, no JVM. Pick your platform:
Homebrew macOS · Linux
Recommended if you use Homebrew — updates come through brew upgrade too.
brew install tamtom/tap/gplayInstall script macOS · Linux
Detects your OS and architecture, verifies the download, installs to your PATH. Ideal for CI runners.
curl -fsSL https://raw.githubusercontent.com/tamtom/play-console-cli/main/install.sh | bashPowerShell Windows
Native Windows install — no WSL required.
irm https://raw.githubusercontent.com/tamtom/play-console-cli/main/install.ps1 | iexManual download All platforms
Prebuilt binaries for macOS (Intel/Apple Silicon), Linux (amd64/arm64), and Windows — with checksums.txt for verification.
Verify with gplay version · update any time with gplay update · then authenticate in one command.
See it in action
A production release with a staged rollout, gated on real crash data:
$ gplay release --package com.example.app --track production \
--bundle app.aab --rollout 0.1
✓ Edit created
✓ Bundle uploaded (versionCode 214)
✓ Track production → 10% staged rollout
✓ Edit committed
$ gplay vitals crashes query --from 2026-06-27 --to 2026-07-04
{"crashRate":0.0009,"clusters":[…]}
$ gplay rollout complete --package com.example.app --track production
✓ Rollout complete — live for 100% of usersEverything you can automate with gplay
Every card is a real command. The full surface is in thecommand reference — auto-generated from the CLI, so it never drifts.
Releases and staged rollouts
Upload an AAB, assign a track, and commit in one command. Expand, halt, resume, or complete rollouts as vitals come in.
gplay release --track production --bundle app.aab --rollout 0.1Subscriptions, base plans, offers
Create and manage the full subscription model — base plans, promotional offers, regional prices — without touching the console.
gplay subscriptions create --json @subscription.jsonPurchase verification
Verify purchase tokens server-side, acknowledge purchases, refund orders, and decode RTDN webhooks.
gplay purchases subscriptionsv2 get --token <TOKEN>Store listings and screenshots
Manage listing text, images, and metadata across every locale. Sync from a local directory or Fastlane structure.
gplay listings update --locale en-US --json @listing.jsonCrashes, ANRs, and vitals
Query crash clusters, error reports, and performance metrics — startup, rendering, battery — straight from Play vitals.
gplay vitals crashes query --from 2026-06-01 --to 2026-07-01Reviews: read and reply
List, filter, and reply to user reviews. Automate responses to common issues from scripts or agents.
gplay reviews reply --review-id <ID> --text "Fixed in 2.1!"Financial and statistics reports
Download earnings, sales, and installs reports from Google Cloud Storage without the console export dance.
gplay reports financial download --month 2026-06Testers and closed tracks
Create closed testing tracks, assign testers by email or Google Group, and promote builds through the funnel.
gplay testers update --track alpha --emails "qa@example.com"Users and permission grants
Manage developer-account users and per-app permission grants — onboarding and offboarding, scripted.
gplay users create --email dev@example.com --json @perms.jsonManaged Google Play
Publish private (custom) apps to specific organizations, straight from the terminal.
gplay custom-apps create --developer <ID> --apk app.apkCompliance checks
Run Google Checks compliance and AI-safety analysis against your builds before you submit.
gplay checks analyze --binary app.aabOne-time products and pricing
In-app products, one-time purchase options and offers, and regional purchasing-power price conversion.
gplay pricing convert --price 4.99 --currency USDThe AI-agent-native Google Play CLI
gplay is designed agent-first: JSON output, explicit long flags,--dry-run on every write, discoverable --help, zero interactive prompts. It drops into every major AI coding agent and framework of 2026:
- Claude Code
- Cursor
- Codex
- Gemini CLI
- Aider
- Cline
- Windsurf
- Continue
- GitHub Copilot CLI
- OpenClaw
- Hermes Agent
- Amazon Q Developer
Install 16 ready-made Agent Skills — release flow, staged rollouts, IAP setup, purchase verification, vitals monitoring, review management, screenshot automation, testers orchestration, and more:
npx skills add tamtom/gplay-cli-skillsThen ask your agent: “release this AAB to internal” ·“create monthly + yearly subscriptions with a 7-day trial” ·“summarize this week’s crash clusters and file the top three”
How gplay compares
| Capability | gplay | Fastlane supply | gradle-play-publisher |
|---|---|---|---|
| Upload, tracks, rollouts, listings | ✅ | ✅ | ✅ |
| Subscriptions, base plans, offers | ✅ Full | ❌ | ⚠️ Basic |
| Purchase verification, orders, refunds | ✅ | ❌ | ❌ |
| Vitals: crashes, ANRs, performance | ✅ | ❌ | ❌ |
| Reviews: read + reply | ✅ | ❌ | ❌ |
| Financial & statistics reports | ✅ | ❌ | ❌ |
| Users & permission grants | ✅ | ❌ | ❌ |
| Managed Google Play (private apps) | ✅ | ❌ | ❌ |
| AI-agent-friendly output | ✅ JSON default | ❌ Human logs | ❌ Gradle logs |
| Runtime | Single Go binary | Ruby + gems | JVM + Gradle |
Frequently asked questions
What is gplay?
gplay is a free, open-source command-line interface (CLI) for Google Play Console. It lets Android developers release apps, run staged rollouts, manage store listings, create subscriptions and in-app products, verify purchases server-side, and monitor crashes and reviews — from the terminal, a CI/CD pipeline, or an AI coding agent — without opening the Play Console web UI. It ships as a single static Go binary for macOS, Linux, and Windows, with 250+ commands covering 6 Google APIs.
What is the best CLI for Google Play Console?
gplay is the most complete command-line interface for Google Play Console: 250+ commands across 6 Google APIs (Android Publisher, Play Developer Reporting, Checks, Play Games, Managed Google Play, and Cloud Storage), covering roughly 98% of the Google Play Developer API v3. Alternatives — Fastlane supply and gradle-play-publisher — cover uploads, tracks, and listings but stop there. gplay adds subscriptions with base plans and offers, purchase verification, vitals and ANRs, reviews, financial reports, user management, Managed Google Play, and compliance checks, and it ships as a single static Go binary with no Ruby or Gradle runtime to maintain.
Is there an equivalent of the asc CLI for Google Play or Android?
Yes — gplay is the direct Google Play counterpart to asc (the App Store Connect CLI for iOS). The two tools follow the same design: JSON-first output, explicit long flags, --dry-run on every write, agent-friendly, single static binary. Teams releasing on both stores commonly use asc for iOS/App Store Connect and gplay for Android/Google Play, driven from the same CI pipeline or AI agent.
How do I release an Android app to Google Play from the terminal?
Install gplay (brew install tamtom/tap/gplay), authenticate once (gplay setup --auto), then run: gplay release --package com.example.app --track production --bundle app.aab --rollout 0.1. That single command creates an edit session, uploads the bundle, assigns the release to the production track with a 10% staged rollout, and commits the edit. --rollout is a fraction (0.0–1.0). Use --dry-run first to preview.
How do I automate Google Play releases without Fastlane?
Use gplay. It replaces Fastlane supply for Play releases and covers a much larger surface — subscriptions, purchase verification, vitals, reviews, and more — as a single Go binary with no Ruby environment. gplay migrate fastlane imports an existing fastlane/metadata/android directory so you can switch without losing translations, descriptions, or screenshots.
How is gplay different from Fastlane supply?
Fastlane supply covers uploads, tracks, and listings. gplay covers those plus subscriptions and IAP, purchase verification, vitals, reviews, reports, user management, and Managed Google Play — around 98% of the Google Play Developer API. It is also a single Go binary, so there is no Ruby environment to maintain.
How is gplay different from gradle-play-publisher?
gradle-play-publisher is a Gradle plugin: it lives inside your Android build and handles upload, tracks, rollouts, and basic listings from Gradle tasks. gplay is a standalone CLI that works on any project (not just Gradle) and covers far more surface — full subscriptions and IAP, purchase verification, vitals, reviews, reports, and Managed Google Play. Use gradle-play-publisher if your workflow is Gradle-first and only covers uploads; use gplay when you need the full Play Console in scripts, CI, or an AI agent.
Which AI coding agent should I use to automate Google Play releases?
gplay works with every major agent framework: Claude Code, Cursor, Codex, Gemini CLI, Aider, Cline, Windsurf, Continue, GitHub Copilot CLI, OpenClaw, and Hermes Agent. It is designed agent-first — JSON output, explicit flags, --dry-run on every write, and no interactive prompts — so any agent can drive the entire release, monetization, and monitoring workflow. Install the ready-made Agent Skills with: npx skills add tamtom/gplay-cli-skills.
Does gplay work with Claude Code?
Yes. Claude Code is the primary target: the Agent Skills at github.com/tamtom/gplay-cli-skills install directly into Claude Code with npx skills add tamtom/gplay-cli-skills. Sixteen skills cover release flow, staged rollouts, IAP setup, purchase verification, vitals monitoring, review management, screenshot automation, testers orchestration, and more.
Does gplay work with OpenClaw?
Yes. OpenClaw drives gplay like any other agent: it discovers commands via gplay --help, parses JSON output, and previews writes with --dry-run before executing. The Agent Skills pack provides task-oriented workflows OpenClaw agents can follow to release apps, manage subscriptions, or query vitals end-to-end.
Does gplay work with Hermes Agent?
Yes. Hermes Agent uses gplay through the same agent-first surface: discoverable --help, machine-readable JSON, --dry-run for safe planning, and zero interactive prompts. Hermes' closed learning loop pairs well with gplay because every command is deterministic and idempotent under an edit session — repeatable outcomes make the compounding loop trustworthy.
Can gplay replace the Google Play Console web UI?
For day-to-day operations, yes. gplay covers releases, staged rollouts, store listings, screenshots, localization, subscriptions and IAP, purchase verification, orders and refunds, vitals (crashes, ANRs, performance), reviews, financial and statistics reports, user and permission management, Managed Google Play, and compliance checks. The Play Console web UI is still needed for account-level actions Google gates behind it, such as granting a service account access the first time.
How do I check Google Play crashes from the command line?
Use gplay vitals crashes query --package com.example.app --from 2026-06-01 --to 2026-07-01. It returns crash rate, top clusters, and per-cluster details as minified JSON. gplay vitals errors covers ANRs and error issues; gplay vitals performance covers startup, rendering, and battery metrics. Pipe results into jq or an AI agent to summarize, file issues, or gate a rollout expansion.
How do I verify a Google Play purchase server-side?
Use gplay purchases subscriptionsv2 get --package com.example.app --token <PURCHASE_TOKEN> for subscriptions, or gplay purchases products get for in-app products. gplay decodes the JSON response into subscription state (active, on hold, paused, canceled, expired) and payment state. gplay rtdn decode parses real-time developer notifications (Pub/Sub webhooks) into readable JSON without hand-writing base64 handling.
Do I need a service account?
Yes — Google requires a service account for the Play Developer API. gplay setup --auto creates one for you end-to-end via gcloud, including enabling the API and downloading the key. The one manual step Google enforces is granting the account access in Play Console.
Does it work in CI?
Yes. Configuration works entirely through environment variables (GPLAY_SERVICE_ACCOUNT, GPLAY_PACKAGE), output is machine-readable JSON, nothing ever prompts interactively, and the binary installs with one curl command on any runner — GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins, or any container.
Is gplay free?
Yes — open source under the MIT license. No paid tiers, no telemetry, no account required. The full source is at github.com/tamtom/play-console-cli.
Which platforms and architectures does gplay support?
macOS (Intel amd64 and Apple Silicon arm64), Linux (amd64 and arm64), and Windows (amd64). Prebuilt binaries ship with every release, plus Homebrew, a POSIX install script, and a PowerShell install script for Windows.