Command Reference
GPC follows a consistent <domain> <action> [options] pattern for every command.
Common Workflows
Most users start with these:
# Full picture — releases, vitals, and reviews in one command
gpc status
# End-to-end: validate, upload, release
gpc publish app.aab --track beta --notes "Bug fixes"
# Upload to a specific track
gpc releases upload app.aab --track internal
# Promote between tracks
gpc releases promote --from beta --to production --rollout 10
# Analyze bundle size
gpc bundle analyze app.aab --threshold 1502
3
4
5
6
7
8
9
10
11
12
13
14
All Commands
Core Workflow
| Command | Description |
|---|---|
status | Releases + vitals + reviews in one unified snapshot |
publish | End-to-end validate, upload, and release |
validate | Pre-submission checks |
releases | Upload, promote, rollout, release notes, diff |
tracks | Track configuration and management |
listings | Store listings, metadata, images |
Monitoring
| Command | Description |
|---|---|
watch | Real-time rollout monitoring with threshold alerts |
reviews | User reviews and ratings |
vitals | Crash rates, ANR, startup, rendering, battery, memory |
anomalies | Automatically detected vitals anomalies |
Monetization
| Command | Description |
|---|---|
subscriptions | Subscriptions, base plans, offers |
one-time-products | One-time products and offers (alias: otp) |
purchase-options | Purchase option management for one-time products |
iap | In-app products (legacy API) |
purchases | Purchase verification, acknowledgment, refunds |
pricing | Regional price conversion |
Reporting & Team
| Command | Description |
|---|---|
reports | Financial and stats report downloads |
testers | Tester management by track |
users | Developer account users and permissions |
Distribution
| Command | Description |
|---|---|
bundle | Local AAB/APK size analysis and comparison |
internal-sharing | Review-free QA distribution |
enterprise | Private apps for Managed Google Play (Play Custom App Publishing API, v0.9.56+) |
generated-apks | Device-specific APK downloads |
device-tiers | Device capability targeting |
Compliance & Recovery
| Command | Description |
|---|---|
preflight | Offline AAB compliance scanner (9 scanners, CI-ready) |
data-safety | Data safety declarations |
recovery | App recovery actions |
external-transactions | External transactions (alternative billing) |
Monetization Extras
| Command | Description |
|---|---|
system-apks | System APK variants for OEM/enterprise deployments |
rtdn | Real-Time Developer Notifications (Pub/Sub webhooks) |
games | Play Games Services: leaderboards, achievements, events |
Release Automation
| Command | Description |
|---|---|
train | Config-driven staged rollout trains with time gates and vitals gates |
quota | View Google Play API quota usage tracked from the local audit log |
Compliance & Verification
| Command | Description |
|---|---|
verify | Developer verification status, signing key audit, readiness checklist |
System
| Command | Description |
|---|---|
setup | Guided first-time setup (auth + config + verify) |
auth | Authentication and profiles |
apps | App info and configuration |
config | CLI configuration |
plugins | Plugin management |
grants | Per-app permission grants for developer users |
migrate | Migrate from Fastlane to GPC |
doctor / docs / completion | Diagnostics, documentation, shell completions |
cache | Manage status, token, and update caches |
audit | Inspect the local audit log of API calls |
quickstart | Guided first-run setup wizard |
update | Self-update to the latest release |
feedback | Open a pre-filled GitHub issue |
install-skills | Install AI agent skills for GPC workflows |
init | Scaffold project config, metadata, CI templates |
diff | Preview release state and pending changes |
changelog | Show GitHub history; generate makes notes from commits |
validate | Dry-run validation of a release before committing |
Global Flags
Every command accepts these flags:
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--output | -o | string | auto | Output format: table, json, yaml, markdown, csv, tsv, junit |
--json | -j | boolean | Shorthand for --output json | |
--ci | boolean | false | CI mode: JSON output, no prompts, strict exit codes | |
--quiet | -q | boolean | false | Suppress non-essential output |
--verbose | -v | boolean | false | Enable debug logging |
--profile | -p | string | Use a named auth profile | |
--app | -a | string | App package name (overrides config) | |
--no-color | boolean | false | Disable colored output | |
--no-interactive | boolean | false | Disable interactive prompts | |
--dry-run | boolean | false | Preview changes without executing | |
--limit | number | Max results per page | ||
--next-page | string | Pagination token for next page | ||
--retry-log | string | Log retry attempts to file (JSONL) | ||
--config | string | Path to config file | ||
--notify | string | Send webhook on completion (slack, discord, custom) | ||
--sort | string | Sort results by field (prefix with - for descending) | ||
--version | -V | boolean | Show version | |
--help | -h | boolean | Show help |
Output Behavior
GPC auto-detects the output environment:
| Context | Default Format | Reason |
|---|---|---|
| TTY (interactive terminal) | table | Human-readable formatted output |
| Non-TTY (pipe, redirect) | json | Machine-parseable for scripting |
CI environment (CI=true) | json | Deterministic for automation |
The --output flag overrides auto-detection in all cases.
Output Formats
GPC supports seven output formats: table, json, yaml, markdown, csv, tsv, and junit.
table
gpc apps info com.example.appPackage Name com.example.app
Title My App
Default Lang en-US2
3
json
gpc apps info com.example.app --output json{
"success": true,
"data": {
"packageName": "com.example.app",
"title": "My App",
"defaultLanguage": "en-US"
},
"metadata": {
"command": "apps info",
"timestamp": "2026-03-09T12:00:00Z",
"duration_ms": 342
}
}2
3
4
5
6
7
8
9
10
11
12
13
yaml
gpc apps info com.example.app --output yamlsuccess: true
data:
packageName: com.example.app
title: My App
defaultLanguage: en-US
metadata:
command: apps info
timestamp: "2026-03-09T12:00:00Z"
duration_ms: 3422
3
4
5
6
7
8
9
markdown
gpc releases status --output markdown >> "$GITHUB_STEP_SUMMARY"Produces a Markdown table suitable for GitHub Actions step summaries.
junit
gpc vitals crashes --output junit > test-results.xmlProduces JUnit XML compatible with CI systems (Jenkins, GitHub Actions, GitLab CI). Threshold breaches appear as <failure> elements.
csv
gpc apps list --output csvpackageName,title,defaultLanguage
com.example.app,"My App",en-US
com.example.other,"Another App, with commas",fr-FR2
3
RFC 4180 compliant comma-separated values. Header row with column names. Fields containing commas, quotes, or newlines are quoted. Double quotes inside fields are escaped as "". Good for spreadsheets, data analysis, and Excel import.
tsv
gpc apps list --output tsvpackageName title defaultLanguage
com.example.app My App en-US
com.example.other Another App fr-FR2
3
Tab-separated values. Header row with column names. Tabs, newlines, and carriage returns in values are backslash-escaped. No quoting needed since tabs are the only delimiter. Good for clipboard paste into spreadsheets and Unix text processing (cut, awk).
CI mode shorthand
# --ci is equivalent to --output json --no-interactive
gpc releases status --ci
# -j / --json is shorthand for --output json
gpc apps info com.example.app -j2
3
4
5
Error Output
All errors follow a consistent JSON structure:
{
"success": false,
"error": {
"code": "AUTH_INVALID_KEY",
"message": "Service account JSON is malformed",
"suggestion": "Download a fresh key from Google Cloud Console"
}
}2
3
4
5
6
7
8
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | General error, config error, or plugin runtime error |
2 | Usage error (bad arguments) |
3 | Authentication error |
4 | API error (rate limit, permission denied) |
5 | Network error |
6 | Threshold breach (vitals CI alerting) |
See Exit Codes Reference for the full error-code catalog.
Environment Variables
| Variable | Description | Default |
|---|---|---|
GPC_SERVICE_ACCOUNT | Service account JSON string or file path | |
GPC_APP | Default package name | |
GPC_PROFILE | Auth profile name | |
GPC_OUTPUT | Default output format | auto |
GPC_NO_COLOR | Disable color output | |
GPC_NO_INTERACTIVE | Disable prompts | Auto in CI |
GPC_NO_UPDATE_CHECK | Suppress passive update check | |
GPC_MAX_RETRIES | Max retry attempts on transient errors | 5 |
GPC_TIMEOUT | Request timeout in milliseconds | 30000 |
GPC_BASE_DELAY | Base retry delay in milliseconds | 1000 |
GPC_MAX_DELAY | Max retry delay in milliseconds | 60000 |
GPC_DEVELOPER_ID | Developer account ID (for user management) | |
GPC_CA_CERT | Custom CA certificate path | |
HTTPS_PROXY | HTTP proxy URL |
See Environment Variables Reference for the full list.
