Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,69 @@ Using GPC to ship your app? Get featured here!

---

## 🤖 Agent Skills

Supercharge your coding agent with Play Console CLI skills. Works with [Claude Code](https://claude.ai/claude-code), [Cursor](https://cursor.sh), [Codex](https://openai.com/codex), and [37+ more agents](https://skills.sh).

### Install All Skills

```bash
npx skills add AndroidPoet/playconsole-cli
```

### Install Specific Skills

```bash
# Release management (upload, tracks, promote, rollouts)
npx skills add AndroidPoet/playconsole-cli --skill gpc-release

# Store presence (listings, images, availability)
npx skills add AndroidPoet/playconsole-cli --skill gpc-store

# Reviews (list, filter, reply)
npx skills add AndroidPoet/playconsole-cli --skill gpc-reviews

# Monetization (products, subscriptions, offers, orders)
npx skills add AndroidPoet/playconsole-cli --skill gpc-monetization

# Vitals & analytics (crashes, ANR, performance, devices)
npx skills add AndroidPoet/playconsole-cli --skill gpc-vitals

# Testing (internal sharing, testers, test tracks)
npx skills add AndroidPoet/playconsole-cli --skill gpc-testing

# Setup & auth (authentication, config, doctor, team)
npx skills add AndroidPoet/playconsole-cli --skill gpc-setup
```

### Install to a Specific Agent

```bash
npx skills add AndroidPoet/playconsole-cli -a claude-code
npx skills add AndroidPoet/playconsole-cli -a cursor
npx skills add AndroidPoet/playconsole-cli -a codex
```

### Install Globally

```bash
npx skills add AndroidPoet/playconsole-cli -g
```

### Available Skills

| Skill | Description |
|-------|-------------|
| `gpc-release` | Upload bundles, manage tracks, promote releases, staged rollouts |
| `gpc-store` | Store listings, screenshots, images, country availability |
| `gpc-reviews` | List, filter, and reply to user reviews |
| `gpc-monetization` | In-app products, subscriptions, offers, orders, refunds |
| `gpc-vitals` | Crash rates, ANR, performance, battery, device stats |
| `gpc-testing` | Internal sharing, testers, tester groups, test tracks |
| `gpc-setup` | Authentication, project config, doctor, team management |

---

## 🤝 Contributing

PRs welcome! Please open an issue first to discuss major changes.
Expand Down
89 changes: 89 additions & 0 deletions skills/gpc-monetization/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
name: gpc-monetization
description: Manage in-app products, subscriptions, offers, purchases, orders, and external transactions using the Play Console CLI (gpc).
---

# GPC Monetization

Use this skill when the user wants to manage in-app purchases, subscriptions, subscription offers, verify purchases, handle orders/refunds, or manage external transactions for alternative billing.

## Prerequisites

- `gpc` CLI installed and authenticated (`gpc auth login`)
- Package name configured via `--package`, `.gpc.yaml`, or `GPC_PACKAGE` env var

## In-App Products (One-Time Purchases)

```bash
gpc products list
gpc products get --product-id coins_100
gpc products create --product-id coins_100 --file product.json
gpc products update --product-id coins_100 --file product.json
gpc products delete --product-id coins_100
```

## Subscriptions

```bash
gpc subscriptions list
gpc subscriptions get --product-id monthly_pro
gpc subscriptions create --product-id monthly_pro --file subscription.json

# Base plans
gpc subscriptions base-plans list --product-id monthly_pro

# Pricing
gpc subscriptions pricing --product-id monthly_pro --base-plan monthly
```

## Subscription Offers

```bash
gpc offers list --product-id monthly_pro --base-plan monthly
gpc offers get --product-id monthly_pro --base-plan monthly --offer-id free_trial
gpc offers create --product-id monthly_pro --base-plan monthly --file offer.json
gpc offers update --product-id monthly_pro --base-plan monthly --offer-id free_trial --file offer.json
gpc offers delete --product-id monthly_pro --base-plan monthly --offer-id free_trial
gpc offers activate --product-id monthly_pro --base-plan monthly --offer-id free_trial
gpc offers deactivate --product-id monthly_pro --base-plan monthly --offer-id free_trial
```

## Purchase Verification

```bash
# Verify a one-time purchase
gpc purchases verify --product-id premium --token "purchase_token_here"

# Check subscription status
gpc purchases subscription-status --product-id monthly_pro --token "sub_token_here"

# Acknowledge a purchase
gpc purchases acknowledge --product-id premium --token "purchase_token_here"

# List voided purchases
gpc purchases voided
```

## Orders

```bash
gpc orders get --order-id GPA.1234-5678
gpc orders batch-get --order-ids GPA.1234,GPA.5678
gpc orders refund --order-id GPA.1234-5678 --confirm
```

The `--confirm` flag is required for refunds as a safety measure.

## External Transactions (Alternative Billing)

Alias: `ext-tx`

```bash
gpc external-transactions create --file tx.json
gpc external-transactions get --external-transaction-id "ext_123"
gpc external-transactions refund --external-transaction-id "ext_123" --file refund.json
```

## Global Flags

All commands support: `--package/-p`, `--output/-o` (json/table/tsv/csv/yaml/minimal), `--pretty`, `--quiet/-q`, `--debug`, `--dry-run`, `--timeout`, `--profile`.
113 changes: 113 additions & 0 deletions skills/gpc-release/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
---
name: gpc-release
description: Upload Android app bundles, manage release tracks, promote releases, and handle staged rollouts using the Play Console CLI (gpc).
---

# GPC Release Management

Use this skill when the user wants to upload an Android app bundle, manage release tracks, promote a release between tracks, perform staged rollouts, halt a release, or upload deobfuscation/mapping files.

## Prerequisites

- `gpc` CLI installed and authenticated (`gpc auth login`)
- Package name configured via `--package`, `.gpc.yaml`, or `GPC_PACKAGE` env var

## Commands

### Upload a Bundle

```bash
gpc bundles upload --file <path-to-aab> --track <track>
```

- `--file` (required): Path to the `.aab` file
- `--track`: Target track (internal, alpha, beta, production). Defaults to internal if omitted.

### Find a Bundle by Version Code

```bash
gpc bundles find --version-code <code>
```

### Wait for Bundle Processing

```bash
gpc bundles wait --version-code <code> --timeout 5m
```

Polls until Google Play finishes processing. Useful in CI pipelines after upload.

### List Bundles

```bash
gpc bundles list
```

### List Tracks

```bash
gpc tracks list
```

### Get Track Details

```bash
gpc tracks get --track <track>
```

### Promote Between Tracks

```bash
gpc tracks promote --from <source-track> --to <target-track> --rollout <percentage>
```

- `--rollout`: Percentage (1-100) for staged rollout. Omit for full rollout.

### Update Rollout Percentage

```bash
gpc tracks update --track <track> --rollout <percentage>
```

### Halt a Release (Emergency)

```bash
gpc tracks halt --track <track>
```

Immediately stops the rollout on the specified track.

### Complete a Rollout

```bash
gpc tracks complete --track <track>
```

### Upload Deobfuscation Files

```bash
# ProGuard/R8 mapping file
gpc deobfuscation upload --version-code <code> --file mapping.txt

# Native debug symbols
gpc deobfuscation upload --version-code <code> --file native-debug-symbols.zip --type nativeCode
```

### Upload Legacy APK

```bash
gpc apks upload --file <path-to-apk>
```

## Typical Release Flow

1. Upload: `gpc bundles upload --file app.aab --track internal`
2. Wait: `gpc bundles wait --version-code 42`
3. Test internally, then promote: `gpc tracks promote --from internal --to beta`
4. Staged production: `gpc tracks promote --from beta --to production --rollout 10`
5. Increase rollout: `gpc tracks update --track production --rollout 50`
6. Complete: `gpc tracks complete --track production`

## Global Flags

All commands support: `--package/-p`, `--output/-o` (json/table/tsv/csv/yaml/minimal), `--pretty`, `--quiet/-q`, `--debug`, `--dry-run`, `--timeout`, `--profile`.
73 changes: 73 additions & 0 deletions skills/gpc-reviews/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
name: gpc-reviews
description: List, filter, and reply to Google Play user reviews using the Play Console CLI (gpc).
---

# GPC Reviews Management

Use this skill when the user wants to read app reviews, filter by rating, or reply to user reviews on Google Play.

## Prerequisites

- `gpc` CLI installed and authenticated (`gpc auth login`)
- Package name configured via `--package`, `.gpc.yaml`, or `GPC_PACKAGE` env var

## Commands

### List Reviews

```bash
gpc reviews list
```

Options:
- `--min-rating <n>`: Filter reviews with rating >= n (1-5)
- `--max-rating <n>`: Filter reviews with rating <= n (1-5)
- `--translation-lang <code>`: Get translated review text (e.g., `en`)
- `--max-results <n>`: Limit number of results

### Get a Specific Review

```bash
gpc reviews get --review-id "gp:AOqpT..."
```

### Reply to a Review

```bash
gpc reviews reply --review-id "gp:AOqpT..." --text "Thank you for the feedback!"
```

## Common Patterns

### Find Negative Reviews

```bash
gpc reviews list --min-rating 1 --max-rating 2
```

### Find 5-Star Reviews

```bash
gpc reviews list --min-rating 5
```

### Filter Reviews with jq

```bash
gpc reviews list | jq '[.[] | select(.rating == 1)]'
```

### Reply to All 1-Star Reviews (Scripting)

```bash
gpc reviews list --min-rating 1 --max-rating 1 -o json | \
jq -r '.[].reviewId' | \
while read id; do
gpc reviews reply --review-id "$id" --text "We're sorry about your experience. Please contact support@example.com"
done
```

## Global Flags

All commands support: `--package/-p`, `--output/-o` (json/table/tsv/csv/yaml/minimal), `--pretty`, `--quiet/-q`, `--debug`, `--dry-run`, `--timeout`, `--profile`.
Loading