tamtom/gplay-cli-skills

gplay-screenshot-automation

Manage, validate, and upload Google Play listing screenshots and graphics with the gplay CLI. Use when organizing screenshots by locale and device type and pushing them to a Play listing via gplay images upload, sync import-images, or a release.

First seen Feb 15, 2026

Installation

$ npx skills add tamtom/gplay-cli-skills --skill gplay-screenshot-automation

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from tamtom/gplay-cli-skills · top by installs.

npx skills add tamtom/gplay-cli-skills

Browse all from tamtom/gplay-cli-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 45
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,211 B
  • docs SUMMARY.md 280 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 304 installs

SKILL.md

Google Play Screenshot Management

Use this skill to organize, validate, and upload Android screenshots and store graphics to a Google Play listing with gplay. This skill covers the gplay-specific upload/validate flow — not screenshot capture.

Capturing the raw images is standard Android tooling and not gplay-specific: take them with adb shell screencap (then adb pull), or drive state-based captures with an Espresso / UI Automator instrumentation test, switching emulator locale via setprop persist.sys.locale when you need per-language shots. Produce PNGs organized by locale and device type, then use the commands below.

Directory layout

gplay expects a Fastlane-style tree. sync import-images and release --screenshots-dir both read this shape:

metadata/
  en-US/
    images/
      phoneScreenshots/
        1_home.png
        2_search.png
      tenInchScreenshots/
        1_home.png
      featureGraphic.png
  de-DE/
    images/
      phoneScreenshots/
        1_home.png

Screenshots upload in filename order, so prefix with 1, 2, etc. to control ordering on the store.

Image types

Type Usage
phoneScreenshots Phone screenshots (required, 2-8)
sevenInchScreenshots 7-inch tablet screenshots
tenInchScreenshots 10-inch tablet screenshots
tvScreenshots Android TV screenshots
wearScreenshots Wear OS screenshots
featureGraphic Feature graphic (1024x500)
promoGraphic Promo graphic (180x120)
icon App icon (512x512)
tvBanner TV banner (1280x720)

Google Play requires PNG or JPEG (PNG recommended), max 8 MB per image.

1) Validate before uploading

Always validate the directory first — this catches count/dimension/format issues before you spend an upload:

# Validate all locales
gplay validate screenshots --dir ./metadata --output table

# Validate a single locale
gplay validate screenshots --dir ./metadata --locale en-US --output table

2) Upload

Option A — bulk import (preferred)

Imports every image in the Fastlane tree in one command. Requires an open edit:

EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')

gplay sync import-images \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --dir ./metadata          # add --locale en-US to import one locale, --dry-run to preview

gplay edits validate --package com.example.app --edit "$EDIT_ID"
gplay edits commit   --package com.example.app --edit "$EDIT_ID"

Option B — individual images

Use when you need fine control over specific files:

EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')

gplay images upload \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --locale en-US \
  --type phoneScreenshots \
  --file ./metadata/en-US/images/phoneScreenshots/1_home.png

gplay images upload \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --locale en-US \
  --type featureGraphic \
  --file ./metadata/en-US/images/featureGraphic.png

gplay edits validate --package com.example.app --edit "$EDIT_ID"
gplay edits commit   --package com.example.app --edit "$EDIT_ID"

Option C — as part of a release

Upload screenshots alongside a bundle in one release flow:

gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --screenshots-dir ./metadata \
  --release-notes @release-notes.json

3) Replace existing screenshots

delete-all clears a type for a locale before re-uploading. It defaults --confirm to false and will refuse without it, so --confirm is REQUIRED:

EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')

gplay images delete-all \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --locale en-US \
  --type phoneScreenshots \
  --confirm

gplay images upload \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --locale en-US \
  --type phoneScreenshots \
  --file ./metadata/en-US/images/phoneScreenshots/1_home.png

gplay edits validate --package com.example.app --edit "$EDIT_ID"
gplay edits commit   --package com.example.app --edit "$EDIT_ID"

4) Verify what's live

gplay images list \
  --package com.example.app \
  --edit "$EDIT_ID" \
  --locale en-US \
  --type phoneScreenshots \
  --output table

Agent behavior

  • Confirm exact flags with --help before running commands.
  • Always run gplay validate screenshots before uploading.
  • Prefer gplay sync import-images over many individual gplay images upload calls.
  • Every write goes through an edit: create → upload/import → validate → commit.
  • images delete-all needs --confirm; without it the command refuses.
  • Use explicit long flags (--package, --edit, --locale, --type, --file).
  • Default to JSON for machine steps, --output table for human review.