playstore-cli
v1.1.9
Published
AI-assisted Play Store copy, mockups, and device capture with built-in MCP server
Maintainers
Readme
Google Play Store Automation CLI
For vibe coders who want the Play Store page to feel finished before the momentum disappears.
PlayStore CLI turns a mobile app folder into store copy, screenshots, mockups, and MCP tools while keeping the public install tiny and your Python source out of the published package.
The built-in MCP server keeps that same flow inside Claude, Codex, Cursor, Kilo, Cline, and Antigravity, so your editor can generate copy, inspect project structure, tweak mockup YAML, review templates, and pull ADB screenshots without breaking context.
Quick Start
npm install -g playstore-cli
cd your_project_folder
playstore structure
playstore git
playstore analyze
playstore setup
playstore generate -n "My App"Features
- Project Insights -
playstore structuremaps your architecture into readable Markdown. - Git Automation -
playstore git,git status,git log, and commit helpers reduce terminal churn. - MCP-Native Workflow - Includes
playstore-mcp-serverplus short aliases liketext,generate,screenshots, andsetup. - Local Key Storage - Save your Gemini key once with
playstore setup; MCP and CLI both reuse~/.playstore/config.json. - No-Key Fallback - Text copy still generates usable output even when no API key is configured.
- Store Copy - App title, short description, long description, keywords, and What's New.
- Real Device Capture -
playstore adbpulls screenshots directly from a connected Android device. - Mockups and Graphics - Phone screenshots, tablet screenshots, icons, and feature graphics.
- HTML Preview - Browse generated assets in
preview.html. - JSON Report - Character limits and output metadata are saved in
playstore_summary.json.
Release Model
This project is set up so the public install stays small and the source stays private:
- The npm package contains only the JS launchers, install script, and docs.
postinstalldownloads a compiled engine bundle for the current OS from GitHub Releases.- The public releases repo receives compiled archives only; your
.pysource does not ship there. - Local build outputs stay under
.build/, which is already gitignored.
Current release asset naming:
- macOS / Linux:
playstore-<platform>-<arch>.tar.gz - Windows:
playstore-<platform>-<arch>.zip - MCP server uses the same pattern with
playstore-mcp-server-*
Examples:
playstore-darwin-arm64.tar.gzplaystore-linux-x64.tar.gzplaystore-win32-x64.zipplaystore-mcp-server-win32-x64.zip
How the installer chooses the right asset:
flowchart TD
A["User runs `npm install -g playstore-cli`"] --> B["`scripts/postinstall.js` runs"]
B --> C["Detect `process.platform` and `process.arch`"]
C --> D{"OS / arch"}
D -->|darwin / arm64| E["Download `playstore-darwin-arm64.tar.gz`"]
D -->|darwin / x64| F["Download `playstore-darwin-x64.tar.gz`"]
D -->|linux / x64| G["Download `playstore-linux-x64.tar.gz`"]
D -->|win32 / x64| H["Download `playstore-win32-x64.zip`"]
E --> I["Extract engine bundle"]
F --> I
G --> I
H --> I
I --> J["Write MCP config for supported editors"]
J --> K["`playstore` starts with local engine"]Multi-Platform Release Automation
A GitHub Actions workflow is included at .github/workflows/release-assets.yml.
- It builds release bundles on macOS, Linux, and Windows.
- On
v*tags, it uploads.build/release-assets/*torichprofessor/playstore-cli-releases. - It uses
PLAYSTORE_RELEASES_TOKENso the source repo can stay private while the release repo stays public. - npm publishing still happens from the generated sibling folder
../playstore-cli-dist.
Mockup Templates
43 Beautifully Designed Templates (Phone & Tablet)
Browse the full preview of all templates in the showcases/ folder on our GitHub repo: Showcases Directory
15 fonts available: sans, sans_bold, serif, serif_bold, mono, inter, roboto, roboto_bold, poppins, poppins_bold, montserrat, playfair, nunito, oswald, raleway
# List all templates + fonts
playstore mockup list
# Single template with a specific font
playstore mockup generate -s screenshot.png --template gradient_minimal --font poppins
# Multiple templates at once
playstore mockup generate -s screenshot.png --template dark_neon --template material --font inter
# All phone templates at once
playstore mockup generate -s screenshot.png --template all --device phone
# Batch: apply template to every screenshot in a folder
playstore mockup batch --screenshots-dir output/raw --phone-template glass_card --tablet-template showcase --device both
# Preview all 15 fonts on one template
playstore mockup preview-fonts -s screenshot.png --template materialCommands
generate — Full generation (recommended)
playstore generate --project /path/to/your/app --output ./outputOptions:
--project/-p— Path to your app project (default:.)--output/-o— Output directory (default:output)--name/-n— Override app name--color/-c— Theme hex color (e.g.4338cafor indigo)--phone-count— Number of phone screenshots (1-8, default: 8)--tablet-count— Number of tablet screenshots (1-8, default: 8)--no-ai-images— Use procedural image generation (faster, no API cost)--skip-screenshots— Skip screenshot generation--skip-copy— Skip LLM copy generation--adb— Use ADB to pull screenshots from connected Android device
text — Generate only text copy
playstore text --project /path/to/your/app --output ./outputMCP aliases
If you are calling PlayStore through an MCP client, these short aliases are available too:
text→ generate text copy and save filesgenerate→ full pipelinescreenshots→ screenshot/mockup generationsetup→ save or update the Gemini API key
The MCP tools also expose the longer names:
generate_store_copygenerate_full_pipelinegenerate_screenshotssave_gemini_api_key
When no API key is present, text generation falls back to local generation so files can still be created. The MCP config is written automatically during install, but editors still need a restart or refresh to load the new server entry.
screenshots — Generate only screenshots
playstore screenshots --app-name "MyApp" --color 4338ca --output ./outputadb — ADB Screenshot Fetcher
playstore adb
# Or run generate with ADB:
playstore generate --adbConnects to your android device over ADB and pulls live layout screenshots perfectly sized for mockups.
structure — Visualize Project Structure
playstore structureGenerates a highly readable emoji-based filesystem layout of your workspace while skipping standard ignore folders (like node_modules or .git). Let's you save the raw overview straight to a Markdown file.
git — Smart Git Helper
playstore git
playstore git log
playstore git statusInteractive prompt to handle standard git operations safely. Allows simple commits, pushes, and easily outputs Git history.
analyze — Analyze project metadata
playstore analyze --project /path/to/your/appOutput Structure
output/
├── title.txt # App title (max 50 chars)
├── short_description.txt # Short description (max 80 chars)
├── long_description.txt # Long description (max 4000 chars)
├── keywords.txt # 30 SEO keywords
├── whats_new.txt # What's New section (max 500 chars)
├── feature_graphic.png # 1024×500 feature graphic
├── icon_512x512.png # 512×512 app icon
├── phone/
│ ├── phone_screenshot_01.png ... phone_screenshot_08.png
├── tablet/
│ ├── tablet_screenshot_01.png ... tablet_screenshot_08.png
├── preview.html # Browse all generated assets in a visual grid!
└── playstore_summary.json # Detailed JSON report with character limit validationsSupported Project Types
The tool auto-detects metadata from:
- React Native / Expo —
package.json,app.json,app.config.js/ts - Flutter —
pubspec.yaml - Android Native —
AndroidManifest.xml,build.gradle - Any project with a
README.md
