Automate Google Play Console with Claude Code: a hands-on tutorial
Claude Code is Anthropic’s terminal-native AI coding agent. Combined with gplay — the AI-agent-native Google Play Console CLI — it’s the closest thing to a “release manager in a chat window” that Android publishing has ever had.
This tutorial shows the setup, the prompts that actually work, and what to watch out for.
Why gplay was built for agents like Claude Code
Section titled “Why gplay was built for agents like Claude Code”Before we plug them together, it’s worth calling out why this pairing is unusually clean:
- gplay’s output is JSON by default. Claude Code parses it directly. No log scraping.
- Every command has
--help. Claude Code reads it when it needs to; the CLI is self-documenting. - Every write has
--dry-run. Claude Code can preview a change before executing. - Explicit long flags —
--package,--track,--rollout. Nothing ambiguous to hallucinate. - No interactive prompts. Destructive operations use
--confirm, so Claude Code never has to answer a Y/N.
The result: Claude Code drives gplay reliably without a wrapper, MCP server, or shim. It’s just a CLI it can call.
One-time setup
Section titled “One-time setup”1. Install gplay
Section titled “1. Install gplay”brew install tamtom/tap/gplay(Install script, Windows PowerShell, and manual binaries at /guides/installation/.)
2. Authenticate
Section titled “2. Authenticate”gplay setup --auto--auto handles the whole service-account dance: installs gcloud if missing, enables the Android Publisher API, creates a service account, downloads its key, invites it to your Play Console developer account. No dashboard-hunting.
3. Install the Agent Skills
Section titled “3. Install the Agent Skills”npx skills add tamtom/gplay-cli-skillsThis gives Claude Code 16 skills — release flow, staged rollouts, IAP setup, subscription localization, purchase verification, vitals monitoring, review management, screenshot automation, testers, metadata sync, Fastlane migration, pre-submission checks, and more.
Each skill is a small markdown file that teaches Claude Code the real Play Console workflow: what a track promotion actually looks like end-to-end, which validation to run before hitting Google, what to do when a rollout gets halted.
Example prompts that just work
Section titled “Example prompts that just work”The pattern is: describe the outcome, not the flags. Claude Code figures out the flags from --help and the skills.
Release an internal build and promote when green
Section titled “Release an internal build and promote when green”Release
app-release.aabto the internal track forcom.example.app. Once it’s live and vitals look clean, promote it to closed alpha at 20% rollout.
Claude Code will:
- Run
gplay apps listto sanity-check access. - Run
gplay release --track internal --bundle app-release.aab --package com.example.app. - Poll
gplay tracks get --package com.example.app --track internaluntil the release status iscompleted. - Query
gplay vitals crashes query --package com.example.app --time-range LAST_7_DAYSand compare against baseline. - If clean, run
gplay tracks promote --package com.example.app --from internal --to alpha --rollout 0.2.
You watch it work. Every write it’s about to make, it says out loud. You approve or interrupt.
Update subscriptions from a spec file
Section titled “Update subscriptions from a spec file”Read
subs.yaml— for each subscription, make sure the base plan exists at the listed price, create it if missing, and localize the offer name foren-US, fr-FR, de-DE, es-ES.
Claude Code will iterate: gplay subscriptions get, diff against the YAML, gplay baseplans create where needed, gplay offers create, gplay subscriptions locales set for each locale.
Fastlane can’t do that. gradle-play-publisher can’t do that. This is the entire monetization surface, driven by natural language.
Triage crash regressions
Section titled “Triage crash regressions”Grab this week’s top crash clusters. Compare user impact vs last week. If any cluster is over 500 users and up more than 30%, file a GitHub issue with the stack trace.
Claude Code chains gplay vitals crashes query, does the math itself, and calls gh issue create. It doesn’t need a separate observability tool — the Play Console API is the observability tool.
Reply to reviews
Section titled “Reply to reviews”List all 1-star reviews from the last 14 days that mention “login”. Draft a reply for each and show me the list to approve before sending.
gplay reviews list --filter → per-review draft → --dry-run reply preview → you approve → gplay reviews reply. Zero clicks in the Play Console web UI.
Guardrails: how to keep it safe
Section titled “Guardrails: how to keep it safe”A few habits that make this pairing feel controlled instead of chaotic:
Use --dry-run in the prompt. For anything you’re not sure about: “…do it as --dry-run first and show me the payload.” gplay intercepts every write HTTP method and logs the request to stderr without executing. Claude Code will echo the payload back to you before actually running.
Give it a scoped service account. Run gplay under a service account that’s granted only the Play permissions it needs (or a per-app grant instead of account-wide). If Claude Code goes off-script, the blast radius is bounded to what that account can touch.
Use an edit session for related changes. gplay edit begin starts a transactional edit; multiple changes commit atomically with gplay edit commit. If Claude Code is doing a multi-step listing update and something looks off, gplay edit cancel throws it all away.
Read the diff. Every write, Claude Code shows you the exact command. Read it before approving. Same rule as reviewing a PR.
What about Cursor, OpenClaw, Hermes Agent, Codex, Gemini CLI…?
Section titled “What about Cursor, OpenClaw, Hermes Agent, Codex, Gemini CLI…?”Same story. gplay’s design isn’t Claude-specific — it works with every major AI coding agent of 2026: Claude Code, Cursor, Codex, Gemini CLI, Aider, Cline, Windsurf, Continue, GitHub Copilot CLI, OpenClaw, Hermes Agent, Amazon Q Developer. The Agent Skills package is the same one-liner for all of them.
The reason we lead with Claude Code in tutorials is that its terminal-native design lets it invoke a CLI directly without an MCP wrapper or plugin layer — the shortest path from prompt to gplay tracks promote.
Getting started
Section titled “Getting started”brew install tamtom/tap/gplaygplay setup --autonpx skills add tamtom/gplay-cli-skillsThen open Claude Code in the project you want to release from and try:
What can you do with gplay for
com.example.app?
It’ll enumerate the surface and offer a starting point. Take it from there.
Full reference at /reference/, guides at /guides/.