Fast CLI for Google Play Console, for developers optimized for your agentic development flows
SaferSkills independently audited play-console-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <img src="https://img.shields.io/badge/Go-1.27.3+-00ADD8?style=for-the-badge&logo=go" alt="Go Version"> <img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License"> <img src="https://img.shields.io/badge/Homebrew-compatible-blue?style=for-the-badge" alt="Homebrew"> </p>
gplay is a fast, single-binary CLI for Google Play Console, built for AI coding agents — Claude Code, Codex, Cursor, Gemini CLI — and for humans who script. Release Android apps, create subscriptions, in-app products, and one-time purchases, verify purchases server-side, and monitor crashes and reviews through documented Google APIs.
It replaces Play Console clicking for many day-to-day workflows. Most deployment tools only handle standard AAB uploads — gplay supports 250+ commands across 9 official Google APIs: Android Publisher, Play Developer Reporting, Checks, both Play Games admin APIs, Managed Google Play, Play Integrity, Android Developer ID Status, and Cloud Storage for reports. Initial public-app setup, first upload, ordinary Google-managed Play App Signing enrollment, and legal declarations still require a manual Play Console handoff. Enterprise self-hosted Cloud KMS signing is supported through its separate official API. Gplay does not use private Console endpoints or authenticated browser automation.
# Homebrew (recommended)
brew tap tamtom/tap
brew install tamtom/tap/gplay
# Standalone binary — macOS/Linux
curl -fsSL https://raw.githubusercontent.com/tamtom/play-console-cli/main/install.sh | bash
# Standalone binary — Windows (PowerShell)
irm https://raw.githubusercontent.com/tamtom/play-console-cli/main/install.ps1 | iexUpdate: gplay update verifies the release SHA-256 checksum before replacing a standalone binary. Homebrew and Go installations receive the appropriate update command. Successful interactive commands suggest newer stable releases on stderr, using a 24-hour cache; a failed check waits one hour before the next try. Help, version, completion, CI, piped commands, and development builds (git describe versions) skip automatic checks. Set GPLAY_NO_UPDATE to 1, true, or yes to disable suggestions or run gplay update --check explicitly. Source builds require Go 1.27.3 or newer.
After your first successful metadata push, edit commit, or release with gh installed, gplay prints an optional star suggestion to stderr. It never waits for input or stars automatically: agents must ask you first. Set GPLAY_NO_STAR_PROMPT=1 to suppress the suggestion. See configuration.
gplay authenticates to Google Play with a service account.
#### One-command setup (recommended)
gplay setup --autoThat's it. This will:
gcloud if needed (via Homebrew on macOS, or curl on Linux)Pass --project <id> if gcloud has no default project, --dry-run to preview the commands, or --no-browser for CI/agent runs. Then verify with gplay auth doctor.
Already have a service account key?
gplay auth login --service-account /path/to/service-account.json#### Manual setup
<details> <summary>Set up the service account by hand (full control)</summary>
Step 1: Create a Google Cloud Project
Step 2: Enable the API
Step 3: Create a Service Account
Step 4: Grant Access in Play Console
[email protected])Step 5: Login with gplay
gplay auth login --service-account /path/to/service-account.json
# Verify it works
gplay auth doctor</details>
Profiles for multiple accounts and troubleshooting: [docs/authentication.md](docs/authentication.md)
Once authenticated, you're ready to go:
# Ship a release in one command
gplay release --package com.example.app --track production --bundle app.aab --rollout 0.1
# Create a subscription with base plans and offers
gplay subscriptions create --package com.example.app --json @subscription.json
# Everything outputs minified JSON — built for agents and pipes
gplay reviews list --package com.example.app | jq '.reviews[0]'gplay capabilities distinguishes official, manual, and unsupported workflows; gplay bootstrap plan prepares initial app setup without logging in, contacting Google, or changing an account.gplay search ranks commands, examples, flags, and canonical intents locally; gplay schema embeds all 218 reviewed endpoints and 568 official request/response definitions with no credentials or network access.gplay custom-apps create, straight from the terminal.gplay, import them into RevenueCat.gplay preflight --file app.aab fully decodes AndroidManifest.xml (binary AXML for APKs, aapt2 protobuf for App Bundles) and runs nine scanners with no API calls and no credentials: manifest flags, restricted permissions, 64-bit and 16 KB page alignment, listing text and real screenshot dimensions, secrets, billing, privacy SDKs, target API floor, and size. Catches the rejections before you upload.--help everywhere, --dry-run for every write, no interactive prompts, Agent Skills included.Every command is discoverable via --help, outputs token-efficient JSON, and never blocks on a prompt — so agents can drive the whole Play workflow. Install the ready-made skills:
# Inspect the immutable, checksum-verified install plan (no network or writes)
gplay install-skills --preview
# Install the reviewed skill pack without npm/npx or executing repository code
gplay install-skillsThe installer pins one reviewed Git commit and verifies every skill tree before an atomic install. Existing skills are never replaced unless --force is explicit.
Then ask your agent things like "release this AAB to internal", "create monthly + yearly subscriptions with a 7-day trial and convert prices for all regions", or "summarize this week's crash clusters". Full guide: [docs/ai-agents.md](docs/ai-agents.md)
Versus Fastlane supply and gradle-play-publisher (all three cover AAB/APK upload, tracks, rollouts, and listings equivalently):
| Capability | gplay | Fastlane supply | gradle-play-publisher |
|---|---|---|---|
| Subscriptions, base plans, offers, one-time purchases | ✅ Full | ❌ | ⚠️ Basic (no base plans/offers) |
| Purchase verification, orders, refunds | ✅ | ❌ | ❌ |
| Vitals: crashes, ANRs, performance | ✅ | ❌ | ❌ |
| Reviews: read + reply | ✅ | ❌ | ❌ |
| Financial & statistics reports | ✅ | ❌ | ❌ |
| Users & permission grants | ✅ | ❌ | ❌ |
| Offline preflight (manifest decode, 16 KB alignment, secrets) | ✅ 9 scanners | ❌ | ❌ |
| Managed Google Play (private/custom apps) | ✅ | ❌ | ❌ |
| Google Checks compliance gate | ✅ | ❌ | ❌ |
| AI-agent-friendly output | ✅ JSON default | ❌ Human logs | ❌ Gradle logs |
| Runtime | Single Go binary | Ruby + gems | JVM + Gradle project |
| Guide | What's inside |
|---|---|
| [Command reference (GPLAY.md)](GPLAY.md) | Every command and flag, auto-generated |
| Authentication | Service account setup, profiles, auth doctor |
| Releasing | Releases, rollouts, listings, testers, pre-submission checks, Fastlane interop |
| Monetization | Subscriptions, IAP, one-time purchases, pricing, purchase verification, RevenueCat |
| Monitoring & operations | Vitals, reviews, reports, users, notifications, diagnostics |
| AI agents | Agent setup, skills, example prompts |
| Configuration | Config file, env vars, output formats, shell completion |
| CI/CD | GitHub Actions, GitLab CI, release gates |
| Policy-safe automation | Official API boundary and manual Play Console handoffs |
| Official API audit | Versions, method inventory, gaps, and testing boundary |
| Contributing | Development setup, testing, PR guidelines |
Contributions welcome — see CONTRIBUTING.md. Quick local check: make dev (format + lint + test + build).
MIT — see LICENSE.
<p align="center"> Built with Go and <a href="https://github.com/peterbourgon/ff">ffcli</a> </p>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.