npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

playstore-cli

v1.1.9

Published

AI-assisted Play Store copy, mockups, and device capture with built-in MCP server

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 structure maps 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-server plus short aliases like text, generate, screenshots, and setup.
  • 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 adb pulls 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.
  • postinstall downloads a compiled engine bundle for the current OS from GitHub Releases.
  • The public releases repo receives compiled archives only; your .py source 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.gz
  • playstore-linux-x64.tar.gz
  • playstore-win32-x64.zip
  • playstore-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/* to richprofessor/playstore-cli-releases.
  • It uses PLAYSTORE_RELEASES_TOKEN so 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 material

Commands

generate — Full generation (recommended)

playstore generate --project /path/to/your/app --output ./output

Options:

  • --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. 4338ca for 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 ./output

MCP aliases

If you are calling PlayStore through an MCP client, these short aliases are available too:

  • text → generate text copy and save files
  • generate → full pipeline
  • screenshots → screenshot/mockup generation
  • setup → save or update the Gemini API key

The MCP tools also expose the longer names:

  • generate_store_copy
  • generate_full_pipeline
  • generate_screenshots
  • save_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 ./output

adb — ADB Screenshot Fetcher

playstore adb
# Or run generate with ADB:
playstore generate --adb

Connects to your android device over ADB and pulls live layout screenshots perfectly sized for mockups.

structure — Visualize Project Structure

playstore structure

Generates 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 status

Interactive 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/app

Output 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 validations

Supported Project Types

The tool auto-detects metadata from:

  • React Native / Expopackage.json, app.json, app.config.js/ts
  • Flutterpubspec.yaml
  • Android NativeAndroidManifest.xml, build.gradle
  • Any project with a README.md